feat: replace activity markers with typed sites
This commit is contained in:
@@ -41,8 +41,8 @@ Do not redo these tasks:
|
||||
- hunger, energy, starvation, death, task scoring, and task duration;
|
||||
- task-change and village-change signals;
|
||||
- visual NPC navigation and arrival reporting;
|
||||
- finite berry/tree ResourceNodes plus food, guard, study, and rest activity
|
||||
markers;
|
||||
- finite berry/tree ResourceNodes plus typed food, guard, study, and rest
|
||||
world sites;
|
||||
- aggregate village UI;
|
||||
- initial tree assets;
|
||||
- a baked navigation region for the current flat test area.
|
||||
@@ -56,21 +56,20 @@ plugin content. They are references, not the game.
|
||||
|
||||
```text
|
||||
Main
|
||||
├── current flat World and NavigationRegion3D
|
||||
├── JajceWorld
|
||||
├── Player
|
||||
├── CameraRig
|
||||
├── SimulationManager
|
||||
├── WorldViewManager
|
||||
├── ActiveNPCs
|
||||
├── ActivityMarkers
|
||||
├── typed world sites inside JajceWorld/WorldObjects
|
||||
├── WorldEnvironment
|
||||
└── UI
|
||||
```
|
||||
|
||||
The player and `WorldViewManager` still reference non-resource activity sites
|
||||
through exported `NodePath` values. `NpcVisual` relies on the navigation map to
|
||||
reach legacy guard/study/rest markers, `ResourceNode` interaction points, and
|
||||
the typed village pantry `StorageNode`.
|
||||
The player still references interactable world sites through exported `NodePath`
|
||||
values. `NpcVisual` relies on the navigation map to reach typed `ActivitySite`,
|
||||
`StorageNode`, and `ResourceNode` interaction points.
|
||||
|
||||
Replacing the ground without respecting those references would break behavior
|
||||
that already works.
|
||||
@@ -95,12 +94,12 @@ Main
|
||||
│ │ ├── ResourceNodes
|
||||
│ │ ├── BerryBush instances
|
||||
│ │ └── Tree instances
|
||||
│ │ └── StorageSites
|
||||
│ │ └── VillagePantry
|
||||
│ ├── LegacyActivityMarkers temporary non-resource activities
|
||||
│ │ ├── GuardZone
|
||||
│ │ ├── StudyZone
|
||||
│ │ └── RestZone
|
||||
│ │ ├── StorageSites
|
||||
│ │ │ └── VillagePantry
|
||||
│ │ └── ActivitySites
|
||||
│ │ ├── GuardPost
|
||||
│ │ ├── StudyDesk
|
||||
│ │ └── RestBench
|
||||
│ ├── DirectionalLight3D
|
||||
│ └── WorldEnvironment
|
||||
├── Player
|
||||
@@ -111,11 +110,10 @@ Main
|
||||
└── UI
|
||||
```
|
||||
|
||||
`JajceWorld` should contain geography, world-object presentations, and temporary
|
||||
legacy interaction locations. The pantry has since moved out of
|
||||
`LegacyActivityMarkers` into `WorldObjects/StorageSites/VillagePantry`; guard,
|
||||
study, and rest remain temporary markers. `JajceWorld` should not own
|
||||
`SimulationManager`, simulated NPC data, player state, or UI.
|
||||
`JajceWorld` should contain geography and world-object presentations. The former
|
||||
legacy interaction locations now live as typed storage and activity sites under
|
||||
`WorldObjects`; `JajceWorld` should not own `SimulationManager`, simulated NPC
|
||||
data, player state, or UI.
|
||||
|
||||
Create a small look-development wrapper that instances the same world:
|
||||
|
||||
@@ -295,7 +293,7 @@ Create `world/jajce/JajceWorld.tscn` with:
|
||||
- placeholder `VillageRoot`;
|
||||
- placeholder `FoliageRoot`;
|
||||
- a navigation region;
|
||||
- resource-node containers plus temporary activity markers;
|
||||
- resource-node, storage-site, and activity-site containers;
|
||||
- lighting and environment.
|
||||
|
||||
Create `JajceLookdev.tscn` that instances `JajceWorld` and adds a temporary
|
||||
@@ -422,8 +420,8 @@ Once the world composition is stable:
|
||||
2. Disable or remove the old flat world only after the new instance is present.
|
||||
3. Place or move bushes and trees under
|
||||
`JajceWorld/WorldObjects/ResourceNodes` while preserving stable IDs.
|
||||
4. Reconnect only remaining non-resource activity markers under
|
||||
`JajceWorld/LegacyActivityMarkers`.
|
||||
4. Reconnect remaining non-resource activities as typed sites under
|
||||
`JajceWorld/WorldObjects`.
|
||||
5. Bake navigation for the new walkable area.
|
||||
6. Test each existing task from multiple spawn positions.
|
||||
7. Verify task arrival still transitions from traveling to working.
|
||||
@@ -436,8 +434,8 @@ Once the world composition is stable:
|
||||
Do not move simulation ownership into `JajceWorld` to make wiring convenient.
|
||||
|
||||
**Status: runtime integration complete.** `main.tscn` now instances the reusable
|
||||
world and points player/simulation adapters at its stable-ID resources and
|
||||
remaining activity markers. The duplicate flat world objects were removed.
|
||||
world and points player/simulation adapters at its stable-ID resources, storage
|
||||
site, and activity sites. The duplicate flat world objects were removed.
|
||||
The runtime regression checks Terrain3D presence, 24 navigation routes, core
|
||||
task execution, starvation/death, player extraction parity, reservations, and
|
||||
NPC visual lifecycle. Terrain sculpting and presentation polish remain
|
||||
@@ -445,7 +443,7 @@ separate work, not blockers for this wiring milestone.
|
||||
|
||||
### Exit condition
|
||||
|
||||
The current three NPCs and player can perform all existing prototype behaviors
|
||||
The current six NPCs and player can perform all existing prototype behaviors
|
||||
inside the new terrain without regression.
|
||||
|
||||
### Phase 5 — Make the simulation readable on video
|
||||
|
||||
Reference in New Issue
Block a user