forked from Mirrorlandia_minetest/minetest
Fix entity related bugs
* Make minetest.add_entity() binary-safe * Fix on_death pushing dummy ObjectRef instead of nil
This commit is contained in:
parent
992f501159
commit
e9e721b937
@ -244,7 +244,7 @@ bool ScriptApiEntity::luaentity_Punch(u16 id,
|
|||||||
{
|
{
|
||||||
SCRIPTAPI_PRECHECKHEADER
|
SCRIPTAPI_PRECHECKHEADER
|
||||||
|
|
||||||
//infostream<<"scriptapi_luaentity_step: id="<<id<<std::endl;
|
assert(puncher);
|
||||||
|
|
||||||
int error_handler = PUSH_ERROR_HANDLER(L);
|
int error_handler = PUSH_ERROR_HANDLER(L);
|
||||||
|
|
||||||
@ -294,7 +294,10 @@ bool ScriptApiEntity::luaentity_run_simple_callback(u16 id,
|
|||||||
}
|
}
|
||||||
luaL_checktype(L, -1, LUA_TFUNCTION);
|
luaL_checktype(L, -1, LUA_TFUNCTION);
|
||||||
lua_pushvalue(L, object); // self
|
lua_pushvalue(L, object); // self
|
||||||
objectrefGetOrCreate(L, sao); // killer reference
|
if (sao)
|
||||||
|
objectrefGetOrCreate(L, sao); // sao reference
|
||||||
|
else
|
||||||
|
lua_pushnil(L);
|
||||||
|
|
||||||
setOriginFromTable(object);
|
setOriginFromTable(object);
|
||||||
PCALL_RES(lua_pcall(L, 2, 1, error_handler));
|
PCALL_RES(lua_pcall(L, 2, 1, error_handler));
|
||||||
|
@ -640,7 +640,7 @@ int ModApiEnvMod::l_add_entity(lua_State *L)
|
|||||||
|
|
||||||
v3f pos = checkFloatPos(L, 1);
|
v3f pos = checkFloatPos(L, 1);
|
||||||
const char *name = luaL_checkstring(L, 2);
|
const char *name = luaL_checkstring(L, 2);
|
||||||
const char *staticdata = luaL_optstring(L, 3, "");
|
std::string staticdata = readParam<std::string>(L, 3, "");
|
||||||
|
|
||||||
ServerActiveObject *obj = new LuaEntitySAO(env, pos, name, staticdata);
|
ServerActiveObject *obj = new LuaEntitySAO(env, pos, name, staticdata);
|
||||||
int objectid = env->addActiveObject(obj);
|
int objectid = env->addActiveObject(obj);
|
||||||
|
Loading…
Reference in New Issue
Block a user