Батч 7: декор-слой (микро-кусты, камни, проплешины)
- engine: DecorData + TileMapData.decor; decorLayer между землёй и объектами;
  addDecor (возвращает спрайт, один на тайл, повторный заменяет) / clearDecor;
  setTile декор не трогает
- engine: MapFileV1.decor + validateDecor (границы, целые, dx/dy — числа)
- game: DECOR-реестр (tuft/stone/bald, id 15-17), buildDecor на createRng(seed+7919)
  (~10% наземных тайлов, только GRASS/ASH, смещение не по сетке);
  mulberry32 заменён на движковый createRng
- art: decor_tuft/stone/bald 16×16 (рисунок в ромб 16×8, палитра G/P)
- фикс fresh-теста: Math.round -> -0 теряется в JSON, нормализация +0
- тесты: порядок слоёв, addDecor/clearDecor, границы, round-trip + валидация decor
- доки: maps.md (раздел «Декор»), art-style.md, practices.md (ситуация
  «меняю генераторы арта или карт», грабля -0)

Co-Authored-By: Claude Code <noreply@anthropic.com>
1 parent 5f7c4db commit 7113ac42d041bf20d54681a8ffb27174cec6cb4f
@root root authored 15 hours ago
Showing 18 changed files
View
apps/game/assets/maps/meadows.map
View
apps/game/assets/maps/ponds.map
View
apps/game/assets/maps/zvenets.map
View
apps/game/assets/tiles/decor_bald.png 0 → 100644
View
apps/game/assets/tiles/decor_stone.png 0 → 100644
View
apps/game/assets/tiles/decor_tuft.png 0 → 100644
View
apps/game/src/Game.ts
View
apps/game/src/data/map.ts
View
apps/game/src/scenes/LocationScene.ts
View
apps/game/tools/pixelart/gen.mjs
View
docs/art-style.md
View
docs/engine/maps.md
View
docs/engine/practices.md
View
packages/engine/src/index.ts
View
packages/engine/src/map/IsometricTileMap.ts
View
packages/engine/src/map/__tests__/isometricMap.test.ts
View
packages/engine/src/map/__tests__/mapFormat.test.ts
View
packages/engine/src/map/mapFormat.ts