Трек 15: карты и области — игра «Пепельные луга» на v2 (apps/game)
...
Новое приложение v2/apps/game (демка не тронута — её 11 гейтов завязаны
на сценку): воспроизведение демо-среза v1 по референсу.
- tools/convertMaps.mjs — конвертация карт v1 (RLE) → src/data/maps.json;
раскладка тайлов v1 переносится данными (позиции NPC/переходов сходятся)
- src/areas.ts — генератор мира области: 1 тайл v1 = 3×3 вокселя,
земля y0-1, вода слоем y=2 (непроходима, как v1 blocked), штампы
объектов — компактные генераторы строго в тайл 3×3 (mapTree/mapBush/
mapBoulder — крона не вылезает на соседей) + дома/колодец/башня/
машина/рельсы/стены/декор; всё детерминировано
- src/data/areas.ts — 8 областей с переходами v1 1:1: step (вход на
тайл-триггер), click («E» у двери/колодца), 'return' — стек возврата
- src/main.ts — мир области пересоздаётся на переходе, герой-манекен,
фейд out→swap→in (#fade), подсказка «E — …» (#hint), камера follow
- мост: setManual/stepTicks/heroInfo/heroTeleport/setInput/setFollow/
setSun/areaInfo/gotoArea/solidAt/interact/interactInfo
- гейт tools/checks/areas.mjs — 16 проверок: детерминизм пересборки,
blocked (3×3 под-колонки), зажим у грани воды, step-переходы
луга⇄Звенец/луга⇄пруды, люк→зал→return по стеку, click «E», интерьер
- доки: v2/CLAUDE.md (game-блок, грабли: экранная ось (1,0) — диагональ
мира и срез триггера; штампы шире тайла), plan.md (трек 15 закрыт)
check:fast: 261 тест, typecheck engine+demo+game.
Co-Authored-By: Claude Code <noreply@anthropic.com>
Eugene Sukhodolskiy
committed
2 days ago