diff --git a/v2/CLAUDE.md b/v2/CLAUDE.md index e64cf40..257caa2 100644 --- a/v2/CLAUDE.md +++ b/v2/CLAUDE.md @@ -984,15 +984,22 @@ (14: герой и 3 NPC манекенами со скинами, дерево ×3/куст ×2/валун, дом/колодец/башня/Машина, олень), клик — вьювер-оверлей `#devview` (канвас + статы + ⏸/⏵ клипа + чекбокс поворота + селект скинов — - перекраска манекена другой палитрой «посмотреть скин»). Мир стоит, - пока открыта панель/вьювер (как в диалоге). Мост: `devInfo` - (каталог), `devOpen`/`devOpenEntry(id)`/`devClose`, `devStats`. + перекраска манекена другой палитрой «посмотреть скин»). Время суток + (трек 31): секция сверху панели — метка, слайдер 0..1439 и пресеты + (8:00/12:00/18:54/22:00); перемотка дёргает `clock.set` + `lighting.update` + (свет сразу, не дожидаясь тика); панель — мир на паузе, время течёт после + закрытия. Мир стоит, пока открыта панель/вьювер (как в диалоге). Мост: + `devInfo` (каталог + метка часов), `devOpen`/`devOpenEntry(id)`/`devClose`, + `devSetClock(m)`, `devStats`. Олень — VoxelModel из `deerVoxels` покоя (`gridFromVoxels`: список - [x,y,z,цвет] → сетка с палитрой по уникальным цветам). -- Гейт `tools/checks/panels.mjs` (21 проверка — 17-й гейт игры): + [x,y,z,цвет] → сетка с палитрой по уникальным цветам). Грабля: список + объектов выталкивал секцию времени за край панели — панель flex-колонка, + время сверху, `#dev-list` скроллится (`flex:1; min-height:0`). +- Гейт `tools/checks/panels.mjs` (24 проверки — 17-й гейт игры): лоад-скрин, 4 слота + автосейв, saveTo/loadFrom/saveDelete, восстановление позиции, сумка (мир стоит, «Пусто.»), каталог ≥14, - статы манекена/оленечья, кадр вьювера не пустой, закрытие. + статы манекена/оленечья, кадр вьювера не пустой, закрытие, + время суток (метка 18:54, закат 0.45 сразу). Все 6 старых гейтов игры + 11 демок зелёные, **303 теста** (+2: орбита и статы ModelViewer). - Эффекты в вьювере (частицы/свет у объекта) — не делались, открытый diff --git a/v2/apps/game/index.html b/v2/apps/game/index.html index 5f6959e..cd6ba7f 100644 --- a/v2/apps/game/index.html +++ b/v2/apps/game/index.html @@ -160,10 +160,11 @@ border-left: 1px solid #44454e; z-index: 14; font: 14px monospace; - overflow-y: auto; + display: flex; /* время сверху всегда видно, объекты скроллятся */ + flex-direction: column; } #dev h2 { margin: 0 0 8px; color: #d99a32; font-size: 15px; letter-spacing: 1px; } - #dev-list { display: flex; flex-direction: column; gap: 4px; } + #dev-list { display: flex; flex-direction: column; gap: 4px; flex: 1 1 auto; min-height: 0; overflow-y: auto; } #dev-list button { text-align: left; padding: 5px 8px; @@ -175,6 +176,16 @@ cursor: pointer; } #dev-list button:hover { border-color: #d99a32; color: #fff; } + /* Время суток: метка + слайдер + пресеты */ + #dev-time { display: flex; flex-direction: column; gap: 6px; } + #dev-clock { color: #c9c9d2; font: 14px monospace; } + #dev-clock-slider { width: 100%; accent-color: #d99a32; } + #dev-presets { display: flex; gap: 4px; flex-wrap: wrap; } + #dev-presets button { + background: none; border: 1px solid #44454e; color: #c9c9d2; + font: 12px monospace; padding: 2px 6px; cursor: pointer; + } + #dev-presets button:hover { border-color: #d99a32; color: #fff; } #devview { position: fixed; inset: 0; @@ -302,7 +313,18 @@