Add FSM components for player and enemy state management, including initialization and module resolution

This commit is contained in:
MaddoScientisto 2026-02-26 23:13:57 +01:00
commit b6cc5a00e8
57 changed files with 526 additions and 506 deletions

View file

@ -1,6 +1,4 @@
using Cirno.Scripts.Components.Actors._3D;
using Cirno.Scripts.Components.FSM.Player;
using Cirno.Scripts.Utils;
using Godot;
namespace Cirno.Scripts.Components.FSM._3DPlayer;
@ -9,37 +7,17 @@ public partial class UnTeleporting : BaseState<PlayerState, CharacterBody3D>
{
public override PlayerState StateId => PlayerState.UnTeleporting;
[Export] public PlayerAnimationProvider3D AnimationProvider { get; set; }
private PlayerAnimationProvider3D AnimationProvider { get; set; }
public override void Init(IStateMachine<PlayerState, CharacterBody3D> machine)
{
base.Init(machine);
AnimationProvider ??= StateMachine.GetModule<PlayerAnimationProvider3D>();
}
public override void EnterState()
{
base.EnterState();
AnimationProvider.PlayUnteleportAnimation();
AnimationProvider?.PlayUnteleportAnimation();
}
public override void ExitState()
{
base.ExitState();
}
public override void ProcessState(double delta)
{
base.ProcessState(delta);
}
public override void PhysicsProcessState(double delta)
{
// Process modules
base.PhysicsProcessState(delta);
}
}