f2a1811a364fe6ee203fd15576ffc31a35252f0b
Previously FOREST and ROCK tile types were always impassable, making 30 % of forest floor and 50 % of rocky terrain permanently blocked even with no object on them. - Remove FOREST + ROCK from IMPASSABLE in types.ts - Add RESOURCE_TERRAIN set (FOREST, ROCK) for tiles that need resource check - WorldSystem: add resourceTiles Set<number> as O(1) spatial index - initResourceTiles() builds index from state on create() - addResourceTile() / removeResourceTile() keep it in sync at runtime - isPassable() now: impassable tiles → false | RESOURCE_TERRAIN → check index | else → true - GameScene: call addResourceTile() when SPAWN_RESOURCE fires (seedling matures) - VillagerSystem: call removeResourceTile() after chop / mine completes Side effect: trees fully enclosed by other trees are now reachable once an adjacent tree is cleared; the hasAdjacentPassable() guard in pickJob still correctly skips resources with zero passable neighbours. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Description
A peaceful settlement simulation focused on inhabitants
Languages
TypeScript
99.5%
HTML
0.5%