diff --git a/leenkx/Sources/iron/App.hx b/leenkx/Sources/iron/App.hx index 676932c..1141187 100644 --- a/leenkx/Sources/iron/App.hx +++ b/leenkx/Sources/iron/App.hx @@ -52,9 +52,9 @@ class App { static function update() { if (Scene.active == null || !Scene.active.ready) return; - if (pauseUpdates) return; iron.system.Time.update(); + if (pauseUpdates) return; #if lnx_debug startTime = kha.Scheduler.realTime(); diff --git a/leenkx/Sources/iron/object/ParticleSystem.hx b/leenkx/Sources/iron/object/ParticleSystem.hx index baeabac..a6b03da 100644 --- a/leenkx/Sources/iron/object/ParticleSystem.hx +++ b/leenkx/Sources/iron/object/ParticleSystem.hx @@ -22,10 +22,10 @@ class ParticleSystem { var ready: Bool; var frameRate = 24; var lifetime = 0.0; + var looptime = 0.0; var animtime = 0.0; var time = 0.0; var spawnRate = 0.0; - var looptime = 0.0; var seed = 0; var r: TParticleData; @@ -124,7 +124,8 @@ class ParticleSystem { public function update(object: MeshObject, owner: MeshObject) { if (!ready || object == null || speed == 0.0) return; - + if (iron.App.pauseUpdates) return; + var prevLap = lap; // Copy owner world transform but discard scale diff --git a/leenkx/Sources/iron/system/Time.hx b/leenkx/Sources/iron/system/Time.hx index 99484eb..1ebc077 100644 --- a/leenkx/Sources/iron/system/Time.hx +++ b/leenkx/Sources/iron/system/Time.hx @@ -1,7 +1,13 @@ package iron.system; class Time { - + public static var scale = 1.0; + + static var frequency: Null = null; + static function initFrequency() { + frequency = kha.Display.primary != null ? kha.Display.primary.frequency : 60; + } + public static var step(get, never): Float; static function get_step(): Float { if (frequency == null) initFrequency(); @@ -14,37 +20,39 @@ class Time { return _fixedStep; } - public static function initFixedStep(value: Float = 1 / 60) { _fixedStep = value; } - static var lastTime = 0.0; - public static var delta = 0.0; - + static var _delta = 0.0; + public static var delta(get, never): Float; + static function get_delta(): Float { + return _delta; + } + static var lastRenderTime = 0.0; - public static var renderDelta = 0.0; + static var _renderDelta = 0.0; + public static var renderDelta(get, never): Float; + static function get_renderDelta(): Float { + return _renderDelta; + } + public static inline function time(): Float { return kha.Scheduler.time(); } + public static inline function realTime(): Float { return kha.Scheduler.realTime(); } - static var frequency: Null = null; - - static function initFrequency() { - frequency = kha.Display.primary != null ? kha.Display.primary.frequency : 60; - } - public static function update() { - delta = (realTime() - lastTime) * scale; + _delta = realTime() - lastTime; lastTime = realTime(); } public static function render() { - renderDelta = (realTime() - lastRenderTime) * scale; + _renderDelta = realTime() - lastRenderTime; lastRenderTime = realTime(); } }