diff options
author | Perttu Ahola <celeron55@gmail.com> | 2011-11-12 17:46:06 +0200 |
---|---|---|
committer | Perttu Ahola <celeron55@gmail.com> | 2011-11-29 19:13:40 +0200 |
commit | 73bb3bc5958989db21eefb826e277dada248ceca (patch) | |
tree | 1d87277d92ff54fdc32cfd735934b11ec182a69a /src/scriptapi.cpp | |
parent | 1320d07068f25ff23ea27e120983c006f75bec24 (diff) | |
download | minetest-73bb3bc5958989db21eefb826e277dada248ceca.tar.gz minetest-73bb3bc5958989db21eefb826e277dada248ceca.tar.bz2 minetest-73bb3bc5958989db21eefb826e277dada248ceca.zip |
Scripting WIP: Add global environment step function on_step
Diffstat (limited to 'src/scriptapi.cpp')
-rw-r--r-- | src/scriptapi.cpp | 23 |
1 files changed, 22 insertions, 1 deletions
diff --git a/src/scriptapi.cpp b/src/scriptapi.cpp index 530c1719e..381664489 100644 --- a/src/scriptapi.cpp +++ b/src/scriptapi.cpp @@ -40,7 +40,9 @@ extern "C" { TODO: - Global environment step function - Random node triggers -- Object network and client-side stuff +- Object visual client-side stuff + - Blink effect + - Spritesheets and animation - Named node types and dynamic id allocation - LuaNodeMetadata blockdef.has_metadata = true/false @@ -670,6 +672,25 @@ void scriptapi_rm_object_reference(lua_State *L, ServerActiveObject *cobj) } /* + environment +*/ + +void scriptapi_environment_step(lua_State *L, float dtime) +{ + realitycheck(L); + assert(lua_checkstack(L, 20)); + //infostream<<"scriptapi_luaentity_step: id="<<id<<std::endl; + StackUnroller stack_unroller(L); + + lua_getglobal(L, "on_step"); + if(lua_type(L, -1) != LUA_TFUNCTION) + return; // If no on_step function exist, do nothing + lua_pushnumber(L, dtime); + if(lua_pcall(L, 1, 0, 0)) + script_error(L, "error: %s\n", lua_tostring(L, -1)); +} + +/* luaentity */ |