public void PushActiveNode(ScriptNode scriptNode) { ActiveNodes.Push(scriptNode); if (scriptNode.OnStartEvent != null) QueuedEvents.Add(new QueuedScriptletEvent(scriptNode.OnStart, scriptNode.OnStartEvent)); }
/// <summary> /// Creates a new ScriptNode based on this ScriptNode /// </summary> public ScriptNode Create() { var rv = new ScriptNode(this.Name) { Owner = Owner, OnUpdateEvent = OnUpdateEvent, OnStartEvent = OnStartEvent, OnEndEvent = OnEndEvent, OnInterruptEvent = OnInterruptEvent, }; rv.Restart(); return rv; }
public void SetActiveNode(ScriptNode scriptNode) { // Pop all nodes while (ActiveNodes.Count > 0) { ScriptNode oldNode = ActiveNodes.Pop(); if (oldNode.OnEndEvent != null) QueuedEvents.Add(new QueuedScriptletEvent(oldNode.OnEnd, oldNode.OnEndEvent)); } PushActiveNode(scriptNode); }