feat: surface player routes for village needs

This commit is contained in:
Rijad Zuzo
2026-07-16 12:36:50 +02:00
parent d6e6a63048
commit 4f88d15e12
15 changed files with 417 additions and 47 deletions
+7 -3
View File
@@ -48,7 +48,10 @@ would otherwise obscure that lifecycle:
work wood consumers. It also derives one ephemeral `OpportunityHelperResult`
from knowledge, directed relationships, inventory, action definitions, and
finite-resource state without changing resources or assigning tasks. The
ordinary action selector consumes that result only for the matching idle NPC;
ordinary action selector consumes that result only for the matching idle NPC.
When no such helper exists, it can separately derive an ephemeral
`OpportunityPlayerResponseResult` from the real destination capacity and
enabled player-usable finite sources;
- `simulation/persistence/` owns save-slot file safety;
- `simulation/state/` owns versioned serialized record contracts;
- `simulation/definitions/` owns stable IDs and immutable action/profession
@@ -98,8 +101,9 @@ improving ownership.
Relationship cues, interested-villager concern, physical pantry stock, and
refill feedback consume authoritative state or state-change signals and are
intentionally absent from saves and checksums. The transient village-whisper
HUD likewise formats need, transfer, response, and resolution signals without
owning them. Stable visuals are rebuilt from state after restore; transient
HUD likewise formats need, player route, transfer, response, and resolution
signals without owning them. It drops the player route when a capable helper
emerges. Stable visuals are rebuilt from state after restore; transient
reactions are not replayed.
- Resource changes go through `ResourceStateRecord`, NPC inventory, and
`VillageEconomy`; `village.food` and `village.wood` are synchronized views.