Elevator top body

This commit is contained in:
Marco 2025-03-11 15:03:44 +01:00
commit c8cd4ffb1d
10 changed files with 84 additions and 33 deletions

View file

@ -10,17 +10,16 @@ namespace Cirno.Scripts.Components.FSM.Elevator;
public abstract partial class ElevatorMovementState : BaseState<ElevatorState, ElevatorProxy>
{
protected GTween Tween;
//protected Node2D OldPlayerParent;
protected abstract Vector2 StartingPosition { get; }
protected abstract Vector2 EndingPosition { get; }
protected abstract ElevatorState EndState { get; }
protected CharacterBody2D PlayerBody => MainObject.CachedPlayer?.StateMachine.MainObject;
public override void EnterState()
{
Tween?.Kill();
@ -31,9 +30,15 @@ public abstract partial class ElevatorMovementState : BaseState<ElevatorState, E
public override void ExitState()
{
Tween?.Kill();
RestorePlayerParent();
RestorePlayerParent();
}
// public override void PhysicsProcessState(double delta)
// {
// base.PhysicsProcessState(delta);
// MainObject.TopBody.SetPosition(MainObject.Top);
// }
private void RestorePlayerParent()
{
if (PlayerBody is null) return;
@ -66,7 +71,7 @@ public abstract partial class ElevatorMovementState : BaseState<ElevatorState, E
.Build();
await Tween.PlayAsync(CancellationToken.None);
StateMachine.SetState(EndState);
}
}