From 4b0bc220e4da1173f742a4973939b139bef562db Mon Sep 17 00:00:00 2001 From: Kae <80987908+Novaenia@users.noreply.github.com> Date: Fri, 21 Jul 2023 00:58:49 +1000 Subject: Support for changing the game's timescale Context-specific (like per-world) timescales can also be added later --- source/game/scripting/StarLuaComponents.hpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'source/game/scripting/StarLuaComponents.hpp') diff --git a/source/game/scripting/StarLuaComponents.hpp b/source/game/scripting/StarLuaComponents.hpp index bc00309..7e30c39 100644 --- a/source/game/scripting/StarLuaComponents.hpp +++ b/source/game/scripting/StarLuaComponents.hpp @@ -130,6 +130,7 @@ public: LuaUpdatableComponent(); unsigned updateDelta() const; + float updateDt(float dt) const; float updateDt() const; void setUpdateDelta(unsigned updateDelta); @@ -142,6 +143,7 @@ public: private: Periodic m_updatePeriodic; + mutable float m_lastDt; }; // Wraps a basic lua component so that world callbacks are added on init, and @@ -252,11 +254,18 @@ unsigned LuaUpdatableComponent::updateDelta() const { return m_updatePeriodic.stepCount(); } +template +float LuaUpdatableComponent::updateDt(float dt) const { + m_lastDt = dt; + return m_updatePeriodic.stepCount() * dt; +} + template float LuaUpdatableComponent::updateDt() const { - return m_updatePeriodic.stepCount() * WorldTimestep; + return m_updatePeriodic.stepCount() * m_lastDt; } + template void LuaUpdatableComponent::setUpdateDelta(unsigned updateDelta) { m_updatePeriodic.setStepCount(updateDelta); -- cgit v1.2.3