diff options
author | Kae <80987908+Novaenia@users.noreply.github.com> | 2023-06-28 22:52:09 +1000 |
---|---|---|
committer | Kae <80987908+Novaenia@users.noreply.github.com> | 2023-06-28 22:52:09 +1000 |
commit | 0b7ddd05d19fa320b25ad0f5c968852dc416583d (patch) | |
tree | 82dcdaa98157a22c453af124091957dbf162f56c /source/game/StarActorMovementController.cpp | |
parent | 0886098242be9e41f351519f8a5958995e8ed9ab (diff) |
Add extremely basic controller support (only movement)
Diffstat (limited to 'source/game/StarActorMovementController.cpp')
-rw-r--r-- | source/game/StarActorMovementController.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/source/game/StarActorMovementController.cpp b/source/game/StarActorMovementController.cpp index 1b8f0e4..9dc9ef8 100644 --- a/source/game/StarActorMovementController.cpp +++ b/source/game/StarActorMovementController.cpp @@ -446,6 +446,7 @@ ActorMovementController::ActorMovementController(ActorMovementParameters const& m_lastControlJump = false; m_lastControlDown = false; m_targetHorizontalAmbulatingVelocity = 0.0f; + m_moveSpeedMultiplier = 1.0f; resetBaseParameters(parameters); } @@ -696,6 +697,10 @@ Maybe<pair<Vec2F, bool>> ActorMovementController::controlPathMove(Vec2F const& p return result; } +void ActorMovementController::setMoveSpeedMultiplier(float scale) { + m_moveSpeedMultiplier = scale; +} + void ActorMovementController::clearControls() { m_controlRotationRate = 0.0f; m_controlAcceleration = Vec2F(); @@ -951,6 +956,8 @@ void ActorMovementController::tickMaster() { : *activeParameters.walkSpeed * activeModifiers.speedModifier); } + m_targetHorizontalAmbulatingVelocity *= m_moveSpeedMultiplier; + if (m_liquidMovement.get()) m_targetHorizontalAmbulatingVelocity *= (1.0f - liquidImpedance); @@ -1102,7 +1109,7 @@ void ActorMovementController::doSetAnchorState(Maybe<EntityAnchorState> anchorSt if (m_entityAnchor) setPosition(m_entityAnchor->position); } - + PathController::PathController(World* world) : m_world(world), m_edgeTimer(0.0) { } |