From 6291fd1cbb9c2808e336532c833e26330ff2642b Mon Sep 17 00:00:00 2001 From: Novatux Date: Sun, 8 Sep 2013 10:54:36 +0200 Subject: [PATCH] Add minetest.get_gametime() API function, that returns the number of seconds since the world was created. --- doc/lua_api.txt | 1 + src/script/lua_api/l_env.cpp | 11 +++++++++++ src/script/lua_api/l_env.h | 3 +++ 3 files changed, 15 insertions(+) diff --git a/doc/lua_api.txt b/doc/lua_api.txt index e65392c1..f593b0db 100644 --- a/doc/lua_api.txt +++ b/doc/lua_api.txt @@ -1226,6 +1226,7 @@ minetest.get_player_by_name(name) -- Get an ObjectRef to a player minetest.get_objects_inside_radius(pos, radius) minetest.set_timeofday(val): val: 0...1; 0 = midnight, 0.5 = midday minetest.get_timeofday() +minetest.get_gametime(): returns the time, in seconds, since the world was created minetest.find_node_near(pos, radius, nodenames) -> pos or nil ^ nodenames: eg. {"ignore", "group:tree"} or "default:dirt" minetest.find_nodes_in_area(minp, maxp, nodenames) -> list of positions diff --git a/src/script/lua_api/l_env.cpp b/src/script/lua_api/l_env.cpp index dbaf6fb3..8b0d8cd6 100644 --- a/src/script/lua_api/l_env.cpp +++ b/src/script/lua_api/l_env.cpp @@ -476,6 +476,16 @@ int ModApiEnvMod::l_get_timeofday(lua_State *L) return 1; } +// minetest.get_gametime() +int ModApiEnvMod::l_get_gametime(lua_State *L) +{ + GET_ENV_PTR; + + int game_time = env->getGameTime(); + lua_pushnumber(L, game_time); + return 1; +} + // minetest.find_node_near(pos, radius, nodenames) -> pos or nil // nodenames: eg. {"ignore", "group:tree"} or "default:dirt" @@ -793,6 +803,7 @@ void ModApiEnvMod::Initialize(lua_State *L, int top) API_FCT(get_objects_inside_radius); API_FCT(set_timeofday); API_FCT(get_timeofday); + API_FCT(get_gametime); API_FCT(find_node_near); API_FCT(find_nodes_in_area); API_FCT(get_perlin); diff --git a/src/script/lua_api/l_env.h b/src/script/lua_api/l_env.h index adb80a8a..814d1216 100644 --- a/src/script/lua_api/l_env.h +++ b/src/script/lua_api/l_env.h @@ -104,6 +104,9 @@ private: // minetest.get_timeofday() -> 0...1 static int l_get_timeofday(lua_State *L); + // minetest.get_gametime() + static int l_get_gametime(lua_State *L); + // minetest.find_node_near(pos, radius, nodenames) -> pos or nil // nodenames: eg. {"ignore", "group:tree"} or "default:dirt" static int l_find_node_near(lua_State *L); -- 2.30.2