Summary
When trees moved from terrain tiles to BuildingKind::TreeNode entities (c28184b), all trees were hardcoded to a single sprite: TileSpec::Single(13, 9). The old terrain renderer used 6 tree sprites (tiles 13-18, row 9) per commit 9ad196d. Every forest looks uniform and boring now.
Spec Doc
Spec: self-contained in issue body
Context
rust/src/constants/buildings.rs:705 -- TreeNode def uses TileSpec::Single(13, 9)
rust/src/world/mod.rs:611-616 -- TERRAIN_TILES still references Forest A-E (tiles 13-17, row 9)
- The tileset has at least 5 distinct tree sprites available at row 9, cols 13-17
- LOD box color can stay the same -- this is about the close-up sprite only
Behavior
- At worldgen spawn time (or via the BuildingDef), each TreeNode should randomly select one of the available tree sprite variants (tiles 13-17 at row 9, minimum)
- The variant should be deterministic per-position (seeded from world position) so trees don't change on reload
- LOD color remains unchanged
Acceptance criteria
Summary
When trees moved from terrain tiles to BuildingKind::TreeNode entities (c28184b), all trees were hardcoded to a single sprite:
TileSpec::Single(13, 9). The old terrain renderer used 6 tree sprites (tiles 13-18, row 9) per commit 9ad196d. Every forest looks uniform and boring now.Spec Doc
Spec: self-contained in issue body
Context
rust/src/constants/buildings.rs:705-- TreeNode def usesTileSpec::Single(13, 9)rust/src/world/mod.rs:611-616-- TERRAIN_TILES still references Forest A-E (tiles 13-17, row 9)Behavior
Acceptance criteria