summaryrefslogtreecommitdiff
path: root/src/scriptapi.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/scriptapi.cpp')
-rw-r--r--src/scriptapi.cpp23
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
*/