feat: Implement Live Director System for interactive simulation control
- Added waypoint context updates to handle action queue statuses in `waypoint_context.gd`. - Introduced new scene file `manwalk.scene` with terrain and stickman setup. - Created architecture summary for the Live Director System detailing core state transitions, physics mechanics, UI elements, and action execution. - Specified class contracts and interfaces for the Live Director implementation in `phase_12_live_director.md`. - Defined state transitions, input handling, and queue editing mechanics for the Live Director feature.
This commit is contained in:
@@ -366,6 +366,22 @@ func cancel_walk(restore_idle_pose: bool = true) -> void:
|
||||
func is_walking() -> bool:
|
||||
return _walking
|
||||
|
||||
|
||||
func ensure_grounded_walk_animation() -> void:
|
||||
if _rig == null or _rig.state != StickmanRig.RigState.ANIMATED or not _walking:
|
||||
return
|
||||
if terrain_motion != TerrainMotion.GROUNDED or blocks_walking():
|
||||
return
|
||||
if _rig._anim_player == null or not is_instance_valid(_rig._anim_player) or not _rig._anim_player.has_animation("walk_right"):
|
||||
return
|
||||
if _terrain_paused_walk_animation:
|
||||
if _rig._anim_player.is_playing():
|
||||
_terrain_paused_walk_animation = false
|
||||
else:
|
||||
_resume_walk_animation()
|
||||
elif not _rig._anim_player.is_playing():
|
||||
_rig._anim_player.play("walk_right")
|
||||
|
||||
func get_foot_offset() -> Vector2:
|
||||
return FOOT_OFFSET
|
||||
|
||||
@@ -479,6 +495,7 @@ func reset_for_ragdoll_handoff() -> void:
|
||||
air_fall_distance = 0.0
|
||||
terrain_motion = TerrainMotion.DISABLED
|
||||
terrain_air_velocity = Vector2.ZERO
|
||||
_reset_foot_contacts()
|
||||
|
||||
func is_action_blocked() -> bool:
|
||||
return terrain_motion == TerrainMotion.LANDING_IMPACT
|
||||
|
||||
Reference in New Issue
Block a user