public void RemoveNextEffect() { if (nextElement != null) { nextElement = nextElement.nextElement; } }
private void AnotherEffectDeadlockCheck(GraphicalEffect anotherEffect) { if (this == anotherEffect) { throw new ApplicationException("Critical error in EffectScheduler, call Epholl. " + this + ", " + gameObject + " " + gameObject.name); } }
public void AddAnotherEffect(GraphicalEffect next) { AnotherEffectDeadlockCheck (next); if (nextElement != null) { nextElement.AddAnotherEffect(next); } else { nextElement = next; } }
private void UpdateFirst(GraphicalEffect newElement, float occurTime) { if (occurTime < firstElementOccurTime) { firstElement = newElement; firstElementOccurTime = occurTime; } }
private void CheckTargetObjectHasEffect() { if (targetObject != null || targetObject.GetComponent<GraphicalEffect> () != null) { effect = targetObject.GetComponent<GraphicalEffect> (); } else { Debug.LogWarning("Target object is not a Graphical Effect. Cannot run it."); } }
private void ActivateNext() { if (nextElement != null) { var next = nextElement; nextElement = null; next.Activate(); } }
public void Schedule(GraphicalEffect effect, float waitTime){ float occurTime = Time.time + waitTime; if (events.ContainsKey(occurTime)){ GraphicalEffect found = events[occurTime]; found.AddAnotherEffect(effect); } else { events.Add (occurTime, effect); } UpdateFirst (effect, occurTime); }
private void CheckTargetObjectHasEffect() { if (targetObject != null || targetObject.GetComponent <GraphicalEffect> () != null) { effect = targetObject.GetComponent <GraphicalEffect> (); } else { Debug.LogWarning("Target object is not a Graphical Effect. Cannot run it."); } }
private void UpdateFirst() { if (events.Count == 0) { firstElement = null; firstElementOccurTime = float.MaxValue; } else { var first = events.First(); firstElement = first.Value; firstElementOccurTime = first.Key; } }
private void PrepareAndScheduleEffect(GraphicalEffect effect) { if (rescheduling && effect.rescheduling) { effect.rescheduling = false; } if (runAtStart) { effect.runAtStart = false; } effect.EnqueueToScheduler(); }
private void PrepareAndScheduleEffect(GraphicalEffect effect, float delay) { if (rescheduling && effect.rescheduling) { effect.rescheduling = false; } if (runAtStart) { effect.runAtStart = false; } effect.EnqueueToScheduler(effect.occurTimeDelay + delay); }
private bool SearchAndRemoveFromLinkedList(GraphicalEffect listHead, GraphicalEffect removed) { while (listHead.HasNextEffect()) { if (listHead.GetNextEffect() == removed) { listHead.RemoveNextEffect(); return true; } else { listHead = listHead.GetNextEffect(); } } return false; }
public void AddAnotherEffect(GraphicalEffect next) { AnotherEffectDeadlockCheck(next); if (nextElement != null) { nextElement.AddAnotherEffect(next); } else { nextElement = next; } }
public override void PerformChange () { CheckAtLeastOneEffect (); GraphicalEffect next = PickRandomEffect (); if (!allowImmediateRepeat && CheckAtLeastTwoEffects()) { while (next == lastEffect) { next = PickRandomEffect(); } } lastEffect = next; next.EnqueueToScheduler (); }
public void Schedule(GraphicalEffect effect, float waitTime) { float occurTime = Time.time + waitTime; if (events.ContainsKey(occurTime)) { GraphicalEffect found = events[occurTime]; found.AddAnotherEffect(effect); } else { events.Add(occurTime, effect); } UpdateFirst(effect, occurTime); }
private void PrepareAndScheduleEffect(GraphicalEffect effect) { if (effect == this) { return; } if (rescheduling && effect.rescheduling) { effect.rescheduling = false; } if (runAtStart) { effect.runAtStart = false; } SetEffectTargetObject(effect); effect.EnqueueToScheduler(); }
private bool SearchAndRemoveFromLinkedList(GraphicalEffect listHead, GraphicalEffect removed) { while (listHead.HasNextEffect()) { if (listHead.GetNextEffect() == removed) { listHead.RemoveNextEffect(); return(true); } else { listHead = listHead.GetNextEffect(); } } return(false); }
public bool Unschedule(GraphicalEffect effect) { bool found = false; foreach (KeyValuePair<float, GraphicalEffect> kvp in events) { if (kvp.Value == effect) { events.Remove(kvp.Key); found = true; if (effect.HasNextEffect()) { events.Add(kvp.Key, effect.GetNextEffect()); } } else if (SearchAndRemoveFromLinkedList(kvp.Value, effect)){ found = true; } } return found; }
public override void PerformChange() { CheckAtLeastOneEffect(); GraphicalEffect next = PickRandomEffect(); if (!allowImmediateRepeat && CheckAtLeastTwoEffects()) { while (next == lastEffect) { next = PickRandomEffect(); } } lastEffect = next; next.EnqueueToScheduler(); }
private void SetEffectTargetObject(GraphicalEffect effect) { switch (childTargetObjectsMode) { case ChildTargetsMode.noChange: { break; } case ChildTargetsMode.setWhenEmpty: { if (effect.targetObject == null) { effect.targetObject = GetTargetObject (); } break; } case ChildTargetsMode.setEverywhere: { effect.targetObject = GetTargetObject (); break; } } }
private void SetEffectTargetObject(GraphicalEffect effect) { switch (childTargetObjectsMode) { case ChildTargetsMode.noChange: { break; } case ChildTargetsMode.setWhenEmpty: { if (effect.targetObject == null) { effect.targetObject = GetTargetObject(); } break; } case ChildTargetsMode.setEverywhere: { effect.targetObject = GetTargetObject(); break; } } }
public bool Unschedule(GraphicalEffect effect) { bool found = false; foreach (KeyValuePair <float, GraphicalEffect> kvp in events) { if (kvp.Value == effect) { events.Remove(kvp.Key); found = true; if (effect.HasNextEffect()) { events.Add(kvp.Key, effect.GetNextEffect()); } } else if (SearchAndRemoveFromLinkedList(kvp.Value, effect)) { found = true; } } return(found); }
public void SetEffect(GraphicalEffect effect) { Effect = effect; }
private void ActivateNext(){ if (nextElement != null) { var next = nextElement; nextElement = null; next.Activate (); } }