using Godot; namespace Cirno.Scripts.Components.FSM._3DPlayer; public partial class Init : BaseState { public override PlayerState StateId => PlayerState.Init; public override void EnterState() { // Use Godot timer instead of Task.Delay to stay on main thread var timer = GetTree().CreateTimer(0.5f); timer.Timeout += () => StateMachine.SetState(PlayerState.Active); } public override void ExitState() { } public override void PhysicsProcessState(double delta) { } public override void ProcessState(double delta) { } }