diff --git a/src/logic/scripting/lua/libs/libtime.cpp b/src/logic/scripting/lua/libs/libtime.cpp index f953955be..342226035 100644 --- a/src/logic/scripting/lua/libs/libtime.cpp +++ b/src/logic/scripting/lua/libs/libtime.cpp @@ -62,11 +62,20 @@ static int l_utc_offset(lua::State* L) { return lua::pushnumber(L, offset); } +static auto start_time = std::chrono::steady_clock::now(); + +static int l_precise_time(lua::State* L) { + auto time = std::chrono::steady_clock::now(); + std::chrono::duration delta = time - start_time; + return lua::pushnumber(L, delta.count()); +} + const luaL_Reg timelib[] = { {"uptime", lua::wrap}, {"delta", lua::wrap}, {"utc_time", lua::wrap}, {"utc_offset", lua::wrap}, {"local_time", lua::wrap}, + {"precise_time", lua::wrap}, {nullptr, nullptr} };