feat(simulation): D-252 — Facing is view-only; NPC gaze moves to path-follow intent (T-1093)
apply_move no longer writes Facing (was the only movement-facing coupling, player-only); the player's view changes solely via explicit SetFacing. NPC path-follow now sets Facing to the step direction — a strict improvement recorded as a D-252 correction: NPCs previously never received Facing from movement, their cones sat at spawn direction while walking. Bump-to-turn retired (blocked moves change nothing) with a regression test for each semantic. Wire schema unchanged; player_facing docs now say view/aim. Gauntlet fixtures regenerated (facing octants now reflect view-only semantics); client replay + live-roundtrip suites green against the new server. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -15,8 +15,10 @@ use crate::bridge::types::{FacingDirection, VisibilitySector};
|
||||
use crate::perception::shadowcast::VisibilityMap;
|
||||
use bevy_ecs::prelude::*;
|
||||
|
||||
/// Component tracking which direction an entity faces.
|
||||
/// Updated by the input system when an entity moves.
|
||||
/// Component tracking which direction an entity faces — the view/aim heading,
|
||||
/// not the movement direction (view-only since D-252). Set explicitly: the
|
||||
/// player's via `handle_set_facing` (SetFacing input), an NPC's via the
|
||||
/// path-follow system's step-direction intent (`simulation::path_follow`).
|
||||
#[derive(Component, Debug, Clone, Copy, PartialEq, Eq)]
|
||||
pub struct Facing(pub FacingDirection);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user