void CMaterialEffects::Update(float frameTime)
{
	SetUpdateMode(true);
	std::vector< SDelayedEffect >::iterator it = m_delayedEffects.begin();
	std::vector< SDelayedEffect >::iterator next = it;
	while (it != m_delayedEffects.end())
	{
		++next;
		SDelayedEffect& cur = *it;
		cur.m_delay -= frameTime;
		if (cur.m_delay <= 0.0f)
		{
			cur.m_pEffectContainer->Execute(cur.m_effectRuntimeParams);
			next = m_delayedEffects.erase(it);
		}
		it = next;
	}

#ifdef MATERIAL_EFFECTS_DEBUG
	if (CMaterialEffectsCVars::Get().mfx_DebugVisual)
	{
		m_pVisualDebug->Update(*this, frameTime);
	}
#endif
}
Beispiel #2
0
EC_ProximityTrigger::EC_ProximityTrigger(Scene *scene) :
    IComponent(scene),
    INIT_ATTRIBUTE_VALUE(active, "Is active", true),
    INIT_ATTRIBUTE_VALUE(thresholdDistance, "Threshold distance", 0.0f),
    INIT_ATTRIBUTE_VALUE(interval, "Trigger signal interval", 0.0f)
{
    SetUpdateMode();
}
Beispiel #3
0
void EC_ProximityTrigger::AttributesChanged()
{
    if (interval.ValueChanged())
        SetUpdateMode();
}