feat: replace activity markers with typed sites

This commit is contained in:
2026-07-07 13:27:02 +02:00
parent e5bd93d705
commit 4c090f1635
19 changed files with 308 additions and 126 deletions
+20 -8
View File
@@ -10,7 +10,7 @@
| **4a** | Wood target selection (NPC) | ✅ Complete |
| **4b** | Player parity (extraction contract) | ✅ Complete |
| **5** | Jajce world placement and runtime integration | ✅ Complete |
| **6** | Replace remaining activity markers | 🔶 Resource zones removed; activity targets pending |
| **6** | Replace remaining activity markers | ✅ Storage and activity sites authored |
### Key divergences from the original plan
@@ -61,9 +61,9 @@ environment is integrated. It is easier to debug target selection, reservation,
depletion, and task completion without terrain and navigation changes happening
at the same time.
The old resource zones have been removed. Temporary activity markers remain
only for actions whose real target type does not exist yet. They are not
fallbacks and are not part of the target architecture.
The old resource zones and temporary activity markers have been removed. Food
transfer targets `StorageNode`; rest, study, and patrol target `ActivitySite`.
These are not resource fallbacks and are not resource-search areas.
## Why this is the next systems step
@@ -522,10 +522,10 @@ Remove each old zone only when its replacement has:
- debug visibility;
- save representation.
**Progress:** the `TaskZone` container and obsolete `FarmZone`/`ForestZone`
nodes have been deleted from `main.tscn`. The surviving nodes live under
`LegacyActivityMarkers` to make their transitional role explicit. Task-to-marker
mapping still exists for rest, study, and patrol, so this phase is not complete.
**Progress:** the `TaskZone` container, obsolete `FarmZone`/`ForestZone` nodes,
and final `LegacyActivityMarkers` container have been deleted from `main.tscn`
and `JajceWorld`. Task-to-marker mapping has been replaced by typed site
queries.
The former `FoodZone`/`PantryMarker` is now an authored `StorageNode` at
`JajceWorld/WorldObjects/StorageSites/VillagePantry`, backed by
@@ -533,9 +533,21 @@ simulation-owned `StorageStateRecord` state and explicit deposit/withdraw/eat
transactions. Successful food transfers emit serializable economic events, and
an active NPC visibly carries food between source, pantry, and consumption.
Guard, study, and rest are now authored `ActivitySite` instances at
`JajceWorld/WorldObjects/ActivitySites`. The adapter chooses the nearest loaded
site that supports the requested action. Capacity is currently presentation
metadata; reservation/enforced occupancy can be added when multiple NPCs
compete for the same social/workstation site.
**Exit:** temporary activity markers and task-to-marker mapping are deleted,
not merely unused.
**Status: complete for the marker-removal migration.** Future work should
extend target scoring rather than reintroducing zones: resources can be spread
as many finite `ResourceNode` instances across foliage, animal camps, berry
patches, and village stockpiles, then ranked by distance, reachability, safety,
profession, and NPC comfort range.
## Test scenarios
At minimum, exercise: