extends Spatial onready var util = get_node("/root/Util") onready var active_physics_node: Spatial = $OnFootPhysics func is_on_foot(): return active_physics_node == $OnFootPhysics func is_ground_walking(): return is_on_foot() and $OnFootPhysics/Floor.is_on_floor and $MovementInput.input_xz != Vector2.ZERO func is_ground_sprinting(): return is_ground_walking() and $MovementInput.sprinting func camera(): return $"Smoothing/CameraController/Rotation/Camera" func camera_position() -> Vector3: return camera().global_transform.origin func set_physics_node(node: Spatial): if active_physics_node == node: return $Smoothing.target = NodePath("../" + node.name) node.global_transform = active_physics_node.global_transform active_physics_node = node