MCPcopy Create free account
hub / github.com/defold/defold / EmitterStateChangedCallback

Function EmitterStateChangedCallback

engine/gui/src/gui_script.cpp:4708–4724  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

4706 }
4707
4708 static void EmitterStateChangedCallback(uint32_t num_awake_emitters, dmhash_t emitter_id, dmParticle::EmitterState emitter_state, void* user_data)
4709 {
4710 GuiEmitterStateChangedData* data = (GuiEmitterStateChangedData*)(user_data);
4711
4712 if (!dmScript::IsCallbackValid(data->m_LuaInfo.m_Callback))
4713 return;
4714
4715 GuiPfxEmitterScriptCallbackData callback_data = { data, emitter_id, emitter_state };
4716 dmScript::InvokeCallback(data->m_LuaInfo.m_Callback, PushPfxCallbackArguments, &callback_data);
4717
4718 // The last emitter belonging to this particlefx har gone to sleep, release lua reference.
4719 if(num_awake_emitters == 0 && emitter_state == dmParticle::EMITTER_STATE_SLEEPING)
4720 {
4721 dmScript::DestroyCallback(data->m_LuaInfo.m_Callback);
4722 data->m_LuaInfo.m_Callback = 0x0;
4723 }
4724 }
4725
4726 /*# Plays a particle fx
4727 * Plays the paricle fx for a gui node

Callers

nothing calls this directly

Calls 3

IsCallbackValidFunction · 0.85
DestroyCallbackFunction · 0.85
InvokeCallbackFunction · 0.50

Tested by

no test coverage detected