diff options
author | Kae <80987908+Novaenia@users.noreply.github.com> | 2023-07-21 00:58:49 +1000 |
---|---|---|
committer | Kae <80987908+Novaenia@users.noreply.github.com> | 2023-07-21 00:58:49 +1000 |
commit | 4b0bc220e4da1173f742a4973939b139bef562db (patch) | |
tree | 0ff66d5957575fa814fc10b8cd93e3dd378f45dc /source/game/scripting/StarLuaComponents.hpp | |
parent | 607be749451aa40e3619e7ceab0927d1fcec8233 (diff) |
Support for changing the game's timescale
Context-specific (like per-world) timescales can also be added later
Diffstat (limited to 'source/game/scripting/StarLuaComponents.hpp')
-rw-r--r-- | source/game/scripting/StarLuaComponents.hpp | 11 |
1 files changed, 10 insertions, 1 deletions
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 @@ -253,10 +255,17 @@ unsigned LuaUpdatableComponent<Base>::updateDelta() const { } template <typename Base> +float LuaUpdatableComponent<Base>::updateDt(float dt) const { + m_lastDt = dt; + return m_updatePeriodic.stepCount() * dt; +} + +template <typename Base> float LuaUpdatableComponent<Base>::updateDt() const { - return m_updatePeriodic.stepCount() * WorldTimestep; + return m_updatePeriodic.stepCount() * m_lastDt; } + template <typename Base> void LuaUpdatableComponent<Base>::setUpdateDelta(unsigned updateDelta) { m_updatePeriodic.setStepCount(updateDelta); |