public void PushActiveNode(ScriptNode scriptNode)
        {
            ActiveNodes.Push(scriptNode);

            if (scriptNode.OnStartEvent != null)
                QueuedEvents.Add(new QueuedScriptletEvent(scriptNode.OnStart, scriptNode.OnStartEvent));
        }
Beispiel #2
0
 /// <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);
        }