admin a8ae331f51 feat: synchronize authoritative npc position
- NpcVisual emits position_changed signal during _physics_process
- SimulationManager.synchronize_npc_position() writes active position
  into SimNPC state on movement, arrival, and navigation failure
- WorldViewManager forwards position_changed and syncs before
  despawn/reload
- SimNPC stores travel_target_position and has_travel_target as
  versioned state; NPCStateRecord v2 persists them with v1 migration
- WorldViewManager.spawn_npc_visual() resumes travel for traveling NPCs
  via SimulationManager.request_current_travel()
- WorldViewManager.despawn_npc_visual() syncs position before removal
- WorldViewManager.reload_npc_visual() spawns a visual from persisted
  state without rerolling target selection
- tests/npc_visual_lifecycle_test.gd proves unload/reload preserves
  action, target, reservation, position, RNG state, and checksum
- simulation_state_serialization_test adds legacy v1 NPC migration test
  that does not invent an active travel target
2026-07-05 17:21:17 +02:00
2026-07-04 21:06:57 +02:00

Documentation map

The project uses a small hierarchy so overlapping plans do not become competing sources of truth.

  1. PROJECT_CONTEXT.md is the canonical description of the vision, current implementation, target architecture, and active constraints.
  2. LEARNING_ROADMAP.md owns milestone order, architecture gates, reusable-system exit tests, and intentionally deferred work.
  3. BUILD_IN_PUBLIC_PLAN.md owns the scoped Jajce visual slice. It must respect the architecture gates in the learning roadmap.
  4. RESOURCE_NODE_MIGRATION.md is a focused migration plan. Phases 14 are complete; its Phase 5 hands world placement to the visual-slice plan.
  5. ACTION_SYSTEM_ARCHITECTURE.md, SIMULATION_DEFINITIONS.md, and SIMULATION_STATE_SCHEMA.md document the current data contracts.
  6. decisions/ contains durable architectural decisions, including consequences and revisit conditions.

When documents disagree:

  • code and tests describe current behavior;
  • the newest accepted decision record governs architecture;
  • PROJECT_CONTEXT.md governs product intent;
  • LEARNING_ROADMAP.md governs what should be built next;
  • focused plans govern only their stated scope.

Update the smallest relevant set of documents after a decision or milestone. Do not copy full status tables into every plan.

S
Description
No description provided
Readme 48 MiB
Languages
GDScript 86.6%
GDShader 9%
PowerShell 2.4%
Shell 2%