mirror of
https://gitlab.com/MaddoScientisto/cirnogodot.git
synced 2026-06-01 11:15:33 +00:00
47 lines
No EOL
1.1 KiB
C#
47 lines
No EOL
1.1 KiB
C#
using System.Threading;
|
|
using System.Threading.Tasks;
|
|
using Cirno.Scripts.Enums;
|
|
using Godot;
|
|
using GTweens.Builders;
|
|
using GTweens.Tweens;
|
|
using GTweensGodot.Extensions;
|
|
|
|
namespace Cirno.Scripts.Components.FSM.Elevator;
|
|
|
|
public partial class Descending : BaseState<ElevatorState, ElevatorProxy>
|
|
{
|
|
public override ElevatorState StateId => ElevatorState.Descending;
|
|
|
|
private GTween _tween;
|
|
|
|
public override void EnterState()
|
|
{
|
|
_tween?.Kill();
|
|
MainObject.SetPosition(MainObject.Top);
|
|
Descend();
|
|
}
|
|
|
|
public override void ExitState()
|
|
{
|
|
_tween?.Kill();
|
|
}
|
|
|
|
private void Descend()
|
|
{
|
|
// Grab player if in range
|
|
|
|
//Ascend
|
|
_ = DescendingAnimation();
|
|
}
|
|
|
|
private async Task DescendingAnimation()
|
|
{
|
|
_tween = GTweenSequenceBuilder.New()
|
|
.Append(MainObject.TweenPosition(MainObject.Bottom, MainObject.MovementTime))
|
|
.Build();
|
|
|
|
await _tween.PlayAsync(CancellationToken.None);
|
|
|
|
StateMachine.SetState(ElevatorState.Bottom);
|
|
}
|
|
} |