print("omg lol")
print("minetest dump: "..dump(minetest))
---local TNT = minetest.new_entity {
+-- Global environment step function
+function on_step(dtime)
+end
+
local TNT = {
-- Maybe handle gravity and collision this way? dunno
physical = true,
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
lua_settable(L, objectstable);
}
+/*
+ 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
*/
void scriptapi_add_object_reference(lua_State *L, ServerActiveObject *cobj);
void scriptapi_rm_object_reference(lua_State *L, ServerActiveObject *cobj);
+/* environment */
+void scriptapi_environment_step(lua_State *L, float dtime);
+
+/* luaentity */
void scriptapi_luaentity_add(lua_State *L, u16 id, const char *name,
const char *init_state);
void scriptapi_luaentity_rm(lua_State *L, u16 id);