feat(simulation): integrate knowledge graph into observer snapshot (#366)
VisibleEntity now carries relationship state (D-033 entity color) and observation type (Visible vs Remembered). compute_observer_snapshot queries the player's KnowledgeGraph to overlay relationship data on visible entities and include remembered (not-in-LOS) entities as fog ghosts at their last known position. Regenerated msgpack fixtures. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -49,6 +49,8 @@ fn snapshot_roundtrip_over_unix_socket() {
|
||||
z: 0,
|
||||
kind: EntityKind::Npc,
|
||||
visibility: VisibilitySector::Forward,
|
||||
relationship: RelationshipState::Unknown,
|
||||
observation: EntityVisibility::Visible,
|
||||
}],
|
||||
visible_tiles: vec![],
|
||||
};
|
||||
|
||||
@@ -35,6 +35,8 @@ fn snapshot_roundtrip_over_tcp() {
|
||||
z: 0,
|
||||
kind: EntityKind::Npc,
|
||||
visibility: VisibilitySector::Forward,
|
||||
relationship: RelationshipState::Unknown,
|
||||
observation: EntityVisibility::Visible,
|
||||
}],
|
||||
visible_tiles: vec![],
|
||||
};
|
||||
|
||||
@@ -45,6 +45,8 @@ fn generate_msgpack_fixtures() {
|
||||
z: 0,
|
||||
kind: EntityKind::Npc,
|
||||
visibility: VisibilitySector::Forward,
|
||||
relationship: RelationshipState::Unknown,
|
||||
observation: EntityVisibility::Visible,
|
||||
}],
|
||||
);
|
||||
write_fixture(
|
||||
@@ -86,6 +88,8 @@ fn generate_msgpack_fixtures() {
|
||||
z: 0,
|
||||
kind: EntityKind::Player,
|
||||
visibility: VisibilitySector::Forward,
|
||||
relationship: RelationshipState::Unknown,
|
||||
observation: EntityVisibility::Visible,
|
||||
}],
|
||||
);
|
||||
write_fixture(
|
||||
@@ -104,6 +108,8 @@ fn generate_msgpack_fixtures() {
|
||||
z: 0,
|
||||
kind: EntityKind::Player,
|
||||
visibility: VisibilitySector::Forward,
|
||||
relationship: RelationshipState::Known,
|
||||
observation: EntityVisibility::Visible,
|
||||
},
|
||||
VisibleEntity {
|
||||
entity_id: 2,
|
||||
@@ -112,6 +118,8 @@ fn generate_msgpack_fixtures() {
|
||||
z: 0,
|
||||
kind: EntityKind::Npc,
|
||||
visibility: VisibilitySector::Peripheral,
|
||||
relationship: RelationshipState::Unknown,
|
||||
observation: EntityVisibility::Visible,
|
||||
},
|
||||
VisibleEntity {
|
||||
entity_id: 3,
|
||||
@@ -120,6 +128,8 @@ fn generate_msgpack_fixtures() {
|
||||
z: 1,
|
||||
kind: EntityKind::Object,
|
||||
visibility: VisibilitySector::Forward,
|
||||
relationship: RelationshipState::Unknown,
|
||||
observation: EntityVisibility::Visible,
|
||||
},
|
||||
VisibleEntity {
|
||||
entity_id: 4,
|
||||
@@ -128,6 +138,8 @@ fn generate_msgpack_fixtures() {
|
||||
z: -1,
|
||||
kind: EntityKind::Terrain,
|
||||
visibility: VisibilitySector::Forward,
|
||||
relationship: RelationshipState::Unknown,
|
||||
observation: EntityVisibility::Visible,
|
||||
},
|
||||
],
|
||||
);
|
||||
@@ -154,6 +166,8 @@ fn generate_msgpack_fixtures() {
|
||||
z: 0,
|
||||
kind: EntityKind::Player,
|
||||
visibility: VisibilitySector::Forward,
|
||||
relationship: RelationshipState::Unknown,
|
||||
observation: EntityVisibility::Visible,
|
||||
}],
|
||||
visible_tiles: vec![
|
||||
VisibleTile {
|
||||
|
||||
@@ -32,6 +32,8 @@ fn observer_snapshot_roundtrip() {
|
||||
z: 0,
|
||||
kind: EntityKind::Npc,
|
||||
visibility: VisibilitySector::Forward,
|
||||
relationship: RelationshipState::Unknown,
|
||||
observation: EntityVisibility::Visible,
|
||||
}],
|
||||
);
|
||||
|
||||
@@ -158,6 +160,8 @@ fn all_entity_kind_variants_roundtrip() {
|
||||
z: 0,
|
||||
kind,
|
||||
visibility: VisibilitySector::Forward,
|
||||
relationship: RelationshipState::Unknown,
|
||||
observation: EntityVisibility::Visible,
|
||||
};
|
||||
let snapshot = test_snapshot(0, vec![entity]);
|
||||
let bytes = rmp_serde::to_vec_named(&snapshot).expect("serialize");
|
||||
@@ -190,6 +194,8 @@ fn snapshot_v2_fields_roundtrip() {
|
||||
z: 0,
|
||||
kind: EntityKind::Player,
|
||||
visibility: VisibilitySector::Forward,
|
||||
relationship: RelationshipState::Unknown,
|
||||
observation: EntityVisibility::Visible,
|
||||
}],
|
||||
visible_tiles: vec![
|
||||
VisibleTile {
|
||||
|
||||
Reference in New Issue
Block a user