Conveyor belts

This commit is contained in:
Marco 2025-03-14 15:13:00 +01:00
commit 362ea29852
16 changed files with 371 additions and 15 deletions

View file

@ -56,11 +56,19 @@ public abstract partial class BaseState<TKey, TType> : Node2D, IState<TKey, TTyp
public virtual void ProcessState(double delta)
{
_modules.ForEach(module => module.Process(delta));
foreach (var module in _modules)
{
module.Process(delta);
}
//_modules.ForEach(module => module.Process(delta));
}
public virtual void PhysicsProcessState(double delta)
{
_modules.ForEach(module => module.PhysicsProcess(delta));
foreach (var module in _modules)
{
module.PhysicsProcess(delta);
}
//_modules.ForEach(module => module.PhysicsProcess(delta));
}
}

View file

@ -102,14 +102,24 @@ public partial class Active : PlayerStateBase
}
public override void PhysicsProcessState(double delta)
{
MainObject.Velocity = _movementDirection * MovementSpeed;
{
// Reset at start of frame
MainObject.Velocity = Vector2.Zero;
// Process modules
base.PhysicsProcessState(delta);
MainObject.Velocity += _movementDirection * MovementSpeed;
MainObject.MoveAndSlide();
}
public override void ProcessState(double delta)
{
base.ProcessState(delta);
_movementDirection = _inputProvider.GetMovementInput().Normalized();
_isStrafing = _inputProvider.GetStrafePressed();
@ -152,6 +162,8 @@ public partial class Active : PlayerStateBase
//CallDeferred(MethodName.PauseDeferred);
PauseDeferred();
}
}
private void PauseDeferred()