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
|
||||
|
||||
//infostream<<"scriptapi_luaentity_step: id="<<id<<std::endl;
|
||||
assert(puncher);
|
||||
|
||||
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);
|
||||
lua_pushvalue(L, object); // self
|
||||
objectrefGetOrCreate(L, sao); // killer reference
|
||||
if (sao)
|
||||
objectrefGetOrCreate(L, sao); // sao reference
|
||||
else
|
||||
lua_pushnil(L);
|
||||
|
||||
setOriginFromTable(object);
|
||||
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);
|
||||
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);
|
||||
int objectid = env->addActiveObject(obj);
|
||||
|
Loading…
Reference in New Issue
Block a user