docs: update README for generic digging, drop tables, revised architecture

- Add generic digging + drop tables to implemented list
- Rabbit digging: now using Digger component, not debug code
- Building and construction: updated to reflect generic system in place
- Architecture: added digging to shared_systems, drop_table to tiles
This commit is contained in:
2026-03-21 15:41:20 +00:00
parent ce3746366c
commit f03651e0cf
+9 -4
View File
@@ -14,13 +14,13 @@ src/
├── entities/ # Dorfs, pigs, rabbits — ambulatory entities ├── entities/ # Dorfs, pigs, rabbits — ambulatory entities
│ ├── sentient/ │ ├── sentient/
│ ├── livestock/ │ ├── livestock/
│ └── shared_*/ # Ambulatory, pathfinding, occupancy systems │ └── shared_*/ # Ambulatory, pathfinding, occupancy, digging systems
├── game.rs # ZIndex resource, frame timing ├── game.rs # ZIndex resource, frame timing
├── main.rs # Bevy app bootstrap ├── main.rs # Bevy app bootstrap
└── world/ └── world/
├── chunks/ # ChunkMap, chunk loading/unloading, connectivity ├── chunks/ # ChunkMap, chunk loading/unloading, connectivity
├── generation/ # Terrain blobs, forestry, foliage (stub), fauna (stub) ├── generation/ # Terrain blobs, forestry, foliage (stub), fauna (stub)
└── tiles/ # TileMap, TileRegistry, rendering, visibility, tile change events └── tiles/ # TileMap, TileRegistry, rendering, visibility, tile change events, drop tables
``` ```
### Chunk Architecture ### Chunk Architecture
@@ -95,7 +95,12 @@ Mobile entities (dorfs, pigs, rabbits) are **not** in `chunk_entity_index`. They
- [x] Render chunk dirty-tracking for incremental rebakes - [x] Render chunk dirty-tracking for incremental rebakes
- [x] Stage 2 collision resolution (convoy, E/S yield, W/N right-of-way) - [x] Stage 2 collision resolution (convoy, E/S yield, W/N right-of-way)
- [x] TileChangedEvent + path invalidation on tile change - [x] TileChangedEvent + path invalidation on tile change
- [x] Rabbit digging (debug) — removes floor tile, replaces with air, fires occlusion + path invalidation - [x] Generic tile digging — `Digger` component on any entity, `dig_system` handles
tile removal, item drops via drop tables, occlusion refresh, path invalidation
- [x] Drop tables — tiles carry `DropTable` defining item drops on dig (grass=5% coin,
rock=10% coin, dirt/air=none). Pseudo-RNG per position until WyRand is accessible.
- [x] Rabbit digging — `Digger::new(5.0)` on rabbits; removes floor tile, drops items,
fires occlusion + path invalidation
### Stubs (exist as empty functions, wired into schedules) ### Stubs (exist as empty functions, wired into schedules)
- [ ] Foliage generation per chunk (`generate_chunk_foliage`) - [ ] Foliage generation per chunk (`generate_chunk_foliage`)
@@ -106,7 +111,7 @@ Mobile entities (dorfs, pigs, rabbits) are **not** in `chunk_entity_index`. They
- [ ] Crafting, stockpiles, resource gathering - [ ] Crafting, stockpiles, resource gathering
- [ ] Needs, mood, stress systems - [ ] Needs, mood, stress systems
- [ ] Job assignment and task automation - [ ] Job assignment and task automation
- [ ] Building and construction (beyond debug rabbit digging) - [ ] Building and construction (generic digging in place; no task system yet)
- [ ] Combat and squad management - [ ] Combat and squad management
- [ ] Item persistence and inventory - [ ] Item persistence and inventory
- [ ] Dynamic chunk loading (player/NPC-centered, not just radius-at-startup) - [ ] Dynamic chunk loading (player/NPC-centered, not just radius-at-startup)