2025-06-22 13:52:23 +02:00
|
|
|
|
using Cirno.Scripts.Components.Actors;
|
|
|
|
|
|
using Godot;
|
2025-06-11 17:30:53 +02:00
|
|
|
|
|
|
|
|
|
|
namespace Cirno.Scripts.Components.FSM._3DPlayer;
|
|
|
|
|
|
|
|
|
|
|
|
public partial class ShadowModule : ModuleBase<PlayerState, CharacterBody3D>
|
|
|
|
|
|
{
|
2025-06-22 13:52:23 +02:00
|
|
|
|
[Export] public ShadowProvider ShadowProvider { get; private set; }
|
2025-06-11 17:30:53 +02:00
|
|
|
|
|
|
|
|
|
|
private IStateMachine<PlayerState, CharacterBody3D> _machine;
|
|
|
|
|
|
private CharacterBody3D MainObject => _machine.MainObject;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public override void EnterState(PlayerState state)
|
|
|
|
|
|
{
|
2025-06-22 13:52:23 +02:00
|
|
|
|
ShadowProvider.Enable();
|
2025-06-11 17:30:53 +02:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public override void ExitState(PlayerState state)
|
|
|
|
|
|
{
|
2025-06-22 13:52:23 +02:00
|
|
|
|
ShadowProvider.Disable();
|
2025-06-11 17:30:53 +02:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public override void Init(IStateMachine<PlayerState, CharacterBody3D> machine)
|
|
|
|
|
|
{
|
|
|
|
|
|
_machine = machine;
|
2025-06-22 13:52:23 +02:00
|
|
|
|
|
|
|
|
|
|
ShadowProvider.Init(MainObject);
|
2025-06-11 17:30:53 +02:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public override void Process(double delta)
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public override void PhysicsProcess(double delta)
|
|
|
|
|
|
{
|
2025-06-22 13:52:23 +02:00
|
|
|
|
|
2025-06-11 17:30:53 +02:00
|
|
|
|
}
|
|
|
|
|
|
}
|