mirror of
				https://github.com/luanti-org/luanti.git
				synced 2025-11-04 01:05:48 +01:00 
			
		
		
		
	Fix entity related bugs
* Make minetest.add_entity() binary-safe * Fix on_death pushing dummy ObjectRef instead of nil
This commit is contained in:
		@@ -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);
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user