36 lines
1.2 KiB
C#
36 lines
1.2 KiB
C#
using System.Threading.Tasks;
|
|
using Godot;
|
|
using Playground.Common.CharacterMovement;
|
|
|
|
namespace KarrotStarterTemplate.Common.StateMachines.Custom.PlayerStateMachines;
|
|
|
|
public partial class MovementBasePlayerState : BasePlayerState
|
|
{
|
|
// TODO
|
|
[Export] public string animationBlendPositionPath { get; set; } = "parameters/LocomotionBlendspace/blend_position";
|
|
[Export] public CharacterMovementMode movementMode { get; set; }
|
|
|
|
|
|
protected override Task OnEnter()
|
|
{
|
|
characterMovement.SetMovementMode(movementMode);
|
|
|
|
return base.OnEnter();
|
|
}
|
|
|
|
protected override void OnStateProcess(double delta)
|
|
{
|
|
base.OnStateProcess(delta);
|
|
animationTree.Set(animationBlendPositionPath, characterMovement.blendspacePosition);
|
|
}
|
|
|
|
protected override void OnStatePhysicsProcess(double delta)
|
|
{
|
|
characterMovement.AddMovementInput(cameraController.camera.GlobalBasis.Z, package.GetVector3("move_direction").Y);
|
|
characterMovement.AddMovementInput(cameraController.camera.GlobalBasis.X, package.GetVector3("move_direction").X);
|
|
|
|
// TODO: ?
|
|
// cameraController.rotatePlayer = !package.inputDirection.IsZeroApprox();
|
|
}
|
|
|
|
} |