49 lines
1.2 KiB
C#
49 lines
1.2 KiB
C#
using Godot;
|
|
using System;
|
|
using DungeonRPG.Scripts.General;
|
|
|
|
public partial class PlayerIdleState : Node
|
|
{
|
|
private Player characterNode;
|
|
public override void _Ready()
|
|
{
|
|
characterNode = GetOwner<Player>();
|
|
SetPhysicsProcess(false);
|
|
SetProcessInput(false);
|
|
}
|
|
|
|
public override void _PhysicsProcess(double delta)
|
|
{
|
|
if (characterNode.Direction != Vector2.Zero)
|
|
{
|
|
characterNode.StateMachine.SwitchState<PlayerMoveState>();
|
|
}
|
|
}
|
|
|
|
public override void _Input(InputEvent @event)
|
|
{
|
|
if (Input.IsActionJustPressed(GameConstants.INPUT_DASH))
|
|
{
|
|
characterNode.StateMachine.SwitchState<PlayerDashState>();
|
|
}
|
|
}
|
|
|
|
public override void _Notification(int what)
|
|
{
|
|
base._Notification(what);
|
|
|
|
if (what == GameConstants.STATE_NOTIFICATION_ENABLE)
|
|
{
|
|
characterNode.AnimatedSprite.Play(GameConstants.ANIM_IDLE);
|
|
SetPhysicsProcess(true);
|
|
SetProcessInput(true);
|
|
}
|
|
else if (what == GameConstants.STATE_NOTIFICATION_DISABLE)
|
|
{
|
|
SetPhysicsProcess(false);
|
|
SetProcessInput(false);
|
|
}
|
|
|
|
}
|
|
}
|