setNodeLight(m_last_light);
updateMeshCulling();
- if (m_client->modsLoaded())
- m_client->getScript()->on_object_add(m_id);
+ if (m_client->modsLoaded() && m_client->getScript()->on_object_add(m_id)) {
+ removeFromScene(false);
+ return;
+ }
+
if (m_client->modsLoaded())
m_client->getScript()->on_object_properties_change(m_id);
runCallbacks(1, RUN_CALLBACKS_MODE_FIRST);
}
-void ScriptApiClient::on_object_add(s16 id)
+bool ScriptApiClient::on_object_add(s16 id)
{
SCRIPTAPI_PRECHECKHEADER
push_objectRef(L, id);
// Call functions
- runCallbacks(1, RUN_CALLBACKS_MODE_FIRST);
+ runCallbacks(1, RUN_CALLBACKS_MODE_OR);
+ return readParam<bool>(L, -1);
}
bool ScriptApiClient::on_inventory_open(Inventory *inventory)
bool on_spawn_particle(struct ParticleParameters param);
void on_object_properties_change(s16 id);
void on_object_hp_change(s16 id);
- void on_object_add(s16 id);
+ bool on_object_add(s16 id);
bool on_inventory_open(Inventory *inventory);
void open_enderchest();
luamethod(ClientObjectRef, get_hp),
luamethod(ClientObjectRef, get_max_hp), luamethod(ClientObjectRef, punch),
luamethod(ClientObjectRef, rightclick),
+ luamethod(ClientObjectRef, remove),
luamethod(ClientObjectRef, set_nametag_images), {0, 0}};