using System.Collections.Generic; using System.Linq; using Cirno.Scripts.Components.Actors; using Godot; public partial class ActorFreeMovement : MovementHandler { public override Vector2 FacingDirection { get => _parent.FacingDirection; set => _parent.FacingDirection = value; } public override Vector2 MovementDirection { get => _parent.MovementDirection; set => _parent.MovementDirection = value; } public override void Init(Actor parent) { base.Init(parent); MovementDirection = Vector2.Zero; FacingDirection = Vector2.Down; } public override void Move(double delta) { MovementDirection = AggregateInputProviders(); _parent.Velocity = MovementDirection * _parent.MovementSpeed; _parent.MoveAndSlide(); } }