From fe7322fcafc965e5f1c7872ba3bd27c3cb4d5232 Mon Sep 17 00:00:00 2001 From: Quaternions Date: Wed, 16 Oct 2024 19:50:40 -0700 Subject: [PATCH] game ticks api --- src/runner/runner.rs | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/runner/runner.rs b/src/runner/runner.rs index b7a93cf..740fb79 100644 --- a/src/runner/runner.rs +++ b/src/runner/runner.rs @@ -130,4 +130,23 @@ impl Runnable<'_>{ // No need to schedule the thread here Ok(()) } + pub fn has_scheduled_threads(&self)->Result{ + scheduler_mut(&self.lua,|scheduler| + Ok(scheduler.has_scheduled_threads()) + ) + } + pub fn game_tick(&self)->Result<(),mlua::Error>{ + if let Some(threads)=scheduler_mut(&self.lua,|scheduler|Ok(scheduler.tick_threads()))?{ + for thread in threads{ + //TODO: return dt and total run time + let result=thread.resume::((1.0/20.0,0.0)) + .map_err(|error|Error::Lua{source:"source unavailable".to_owned(),error}); + match result{ + Ok(_)=>(), + Err(e)=>println!("game_tick Error: {e}"), + } + } + } + Ok(()) + } }