diff --git a/CHANGELOG.md b/CHANGELOG.md index a986d77d6..9a598e4c7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,9 @@ Format based on [Keep a Changelog](https://keepachangelog.com/). ## [Unreleased] ### Added +- Content validation tooling — `make validate-content` validates campaign YAML files against JSON schemas, maps files by directory context +- Entity::to_bits() roundtrip test — guards against bevy version changes silently breaking wire IDs +- TickRate switch mid-accumulation test — verifies Half→Full→Paused→Half transitions preserve accumulator state - Tick rate scaling system (#406, D-052) — Full/Half/Paused rates with fractional accumulation, SetTickRate player action, replaces binary pause flag - Proximity detection and interaction verbs (#404, D-060) — compute_nearby_interactions system with Manhattan distance ranges (close ≤2, mid ≤5), context-sensitive verb computation (Talk, Observe, Examine), PersonOfInterest priority flip, NearbyInteraction in ObserverSnapshot v4 - Content directory skeleton (#385, D-057) — district-as-atomic-pack layout with Sova Transit first district, 17 NPC stubs, 3 locations, 5 triangles, dialogue/monologue pools, factions, knowledge catalogs, enum definitions @@ -20,6 +23,8 @@ Format based on [Keep a Changelog](https://keepachangelog.com/). - Unregistered entities in observer/interaction now log tracing::error instead of silently falling back to Entity::to_bits() ### Changed +- NearbyInteractionBuffer refactored from global Resource to per-entity Component on PlayerCharacter — multiplayer-ready (D-009) +- Observer module split into mod.rs (244 lines) + tests.rs (480 lines) — reduces module complexity - Content directory restructured from flat districts/ to hierarchical campaigns/main/systems/krenn/stations/sova/districts/transit/ — path mirrors canonical IDs, glob-based discovery, multi-campaign/DLC ready - Content manifest (content.yaml) rewritten for glob-based district discovery - District identity fields (system, station, district) now derived from directory path — removed from district.yaml required fields