forked from Mirrorlandia_minetest/minetest
Scripting WIP: Add global environment step function on_step
This commit is contained in:
parent
1320d07068
commit
73bb3bc595
@ -138,7 +138,10 @@ end
|
|||||||
print("omg lol")
|
print("omg lol")
|
||||||
print("minetest dump: "..dump(minetest))
|
print("minetest dump: "..dump(minetest))
|
||||||
|
|
||||||
--local TNT = minetest.new_entity {
|
-- Global environment step function
|
||||||
|
function on_step(dtime)
|
||||||
|
end
|
||||||
|
|
||||||
local TNT = {
|
local TNT = {
|
||||||
-- Maybe handle gravity and collision this way? dunno
|
-- Maybe handle gravity and collision this way? dunno
|
||||||
physical = true,
|
physical = true,
|
||||||
|
@ -1141,6 +1141,11 @@ void ServerEnvironment::step(float dtime)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
Step script environment (run global on_step())
|
||||||
|
*/
|
||||||
|
scriptapi_environment_step(m_lua, dtime);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Step active objects
|
Step active objects
|
||||||
*/
|
*/
|
||||||
|
@ -40,7 +40,9 @@ extern "C" {
|
|||||||
TODO:
|
TODO:
|
||||||
- Global environment step function
|
- Global environment step function
|
||||||
- Random node triggers
|
- 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
|
- Named node types and dynamic id allocation
|
||||||
- LuaNodeMetadata
|
- LuaNodeMetadata
|
||||||
blockdef.has_metadata = true/false
|
blockdef.has_metadata = true/false
|
||||||
@ -669,6 +671,25 @@ void scriptapi_rm_object_reference(lua_State *L, ServerActiveObject *cobj)
|
|||||||
lua_settable(L, objectstable);
|
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
|
luaentity
|
||||||
*/
|
*/
|
||||||
|
@ -35,6 +35,10 @@ void scriptapi_add_environment(lua_State *L, ServerEnvironment *env);
|
|||||||
void scriptapi_add_object_reference(lua_State *L, ServerActiveObject *cobj);
|
void scriptapi_add_object_reference(lua_State *L, ServerActiveObject *cobj);
|
||||||
void scriptapi_rm_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,
|
void scriptapi_luaentity_add(lua_State *L, u16 id, const char *name,
|
||||||
const char *init_state);
|
const char *init_state);
|
||||||
void scriptapi_luaentity_rm(lua_State *L, u16 id);
|
void scriptapi_luaentity_rm(lua_State *L, u16 id);
|
||||||
|
Loading…
Reference in New Issue
Block a user