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