Skip to main content

gizmo_scripting/
api_time.rs

1//! Time API — Lua'ya sunulan zaman fonksiyonları
2//!
3//! Delta time, toplam süre ve FPS bilgilerine erişim sağlar.
4
5use mlua::prelude::*;
6
7/// Time API fonksiyonlarını Lua'ya kaydeder
8pub fn register_time_api(lua: &Lua) -> Result<(), LuaError> {
9    let time_table = lua.create_table()?;
10
11    time_table.set("_dt", 0.0f32)?;
12    time_table.set("_elapsed", 0.0f32)?;
13    time_table.set("_fps", 60.0f32)?;
14
15    lua.globals().set("time", time_table)?;
16
17    // Lua helper fonksiyonları
18    lua.load(
19        r#"
20        function time.dt()
21            return time._dt
22        end
23        
24        function time.elapsed()
25            return time._elapsed
26        end
27        
28        function time.fps()
29            return time._fps
30        end
31    "#,
32    )
33    .exec()?;
34
35    Ok(())
36}
37
38/// Her frame zaman verisini günceller
39pub fn update_time_api(lua: &Lua, dt: f32, elapsed: f32, fps: f32) -> Result<(), LuaError> {
40    let time_table: LuaTable = lua.globals().get("time")?;
41    time_table.set("_dt", dt)?;
42    time_table.set("_elapsed", elapsed)?;
43    time_table.set("_fps", fps)?;
44    Ok(())
45}