core.registered_on_spawn_particle, core.register_on_spawn_particle = make_registration()
core.registered_on_object_properties_change, core.register_on_object_properties_change = make_registration()
core.registered_on_object_hp_change, core.register_on_object_hp_change = make_registration()
+core.registered_on_object_add, core.register_on_object_add = make_registration()
core.registered_nodes = {}
core.registered_items = {}
* Called when recieving a spawn particle command from server
* Newest functions are called first
* If any function returns true, the particle does not spawn
+* `minetest.register_on_object_add(function(obj))`
+ * Called every time an object is added
* `minetest.register_on_object_properties_change(function(obj))`
* Called every time the properties of an object are changed server-side
* May modify the object's properties without the fear of infinite recursion
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_properties_change(m_id);
}
{
SCRIPTAPI_PRECHECKHEADER
- // Get core.on_object_properties_change
+ // Get core.registered_on_object_properties_change
lua_getglobal(L, "core");
lua_getfield(L, -1, "registered_on_object_properties_change");
{
SCRIPTAPI_PRECHECKHEADER
- // Get core.on_object_hp_change
+ // Get core.registered_on_object_hp_change
lua_getglobal(L, "core");
lua_getfield(L, -1, "registered_on_object_hp_change");
runCallbacks(1, RUN_CALLBACKS_MODE_FIRST);
}
+void ScriptApiClient::on_object_add(s16 id)
+{
+ SCRIPTAPI_PRECHECKHEADER
+
+ // Get core.registered_on_object_add
+ lua_getglobal(L, "core");
+ lua_getfield(L, -1, "registered_on_object_add");
+
+ // Push data
+ push_objectRef(L, id);
+
+ // Call functions
+ runCallbacks(1, RUN_CALLBACKS_MODE_FIRST);
+}
+
bool ScriptApiClient::on_inventory_open(Inventory *inventory)
{
SCRIPTAPI_PRECHECKHEADER
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_inventory_open(Inventory *inventory);
void open_enderchest();