feat: enforce activity site capacity

This commit is contained in:
2026-07-07 16:12:13 +02:00
parent 9d87372a15
commit 1c389ec23d
7 changed files with 87 additions and 26 deletions
+2
View File
@@ -39,6 +39,7 @@ SimulationManager tick
- consumes active-world facts through ActiveWorldAdapter;
- checks simulation-owned ResourceStateRecord availability;
- reserves and returns stable resource target IDs;
- skips full-capacity activity sites based on authoritative NPC target claims;
- returns typed activity-site, storage, or wander positions without owning
presentation.
@@ -46,6 +47,7 @@ SimulationManager tick
- exposes loaded resource interaction positions;
- exposes loaded storage and activity-site interaction positions;
- exposes activity-site capacity as an active-world fact;
- contains active-world query facts, not persistent mutable authority;
- does not choose actions or reserve resources.
+3
View File
@@ -667,6 +667,9 @@ Recently completed:
labels, and NPC name/profession labels without changing simulation state;
- `F12` repeatable simulation-garden demo reset by reloading the current scene
with the same authored seed and starting state.
- Activity-site capacity enforcement for rest, study, and patrol target
resolution, derived from NPC target claims rather than presentation-only
counters.
This order strengthens the simulation while regularly producing visible
progress suitable for public development updates.
+5 -4
View File
@@ -534,10 +534,11 @@ 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.
`JajceWorld/WorldObjects/ActivitySites`. The adapter exposes loaded activity
site candidates with capacity metadata, and `ActionTargetResolver` skips sites
whose current NPC target claims already meet that capacity. These claims are
derived from authoritative NPC target state rather than a presentation-only
counter.
**Exit:** temporary activity markers and task-to-marker mapping are deleted,
not merely unused.