Exemple #1
0
        public void Launch()
        {
            if (!overrideExecution && sm.Executing.Count > 0)
            {
                return;
            }

            if (interpreter != null || localSequence == null)
            {
                return;
            }

            if (localExecution)
            {
                abort = false;
                if (interpreter == null)
                {
                    interpreter = new SequenceInterpreter(localSequence);
                }
            }
            else
            {
                // Remote start
                ge = new GameEvent("start sequence", new System.Collections.Generic.Dictionary <string, object> ()
                {
                    { "sequence", localSequence }
                });
                Game.main.enqueueEvent(ge);
            }
        }
Exemple #2
0
        public override void ReceiveEvent(IGameEvent ev)
        {
            if (ev.Name.ToLower() == "start sequence")
            {
                Sequence sequence = (ev.getParameter("Sequence") as Sequence);
                Executing.Add(sequence);
                var i = new SequenceInterpreter(sequence);
                sequenceInterpreter.Add(i);
                toFinish.Add(i, ev);
            }

            sequenceInterpreter.ForEach(si => si.EventHappened(ev));
        }
Exemple #3
0
 void Update()
 {
     if (localExecution && interpreter != null)
     {
         interpreter.Tick();
         if (interpreter.SequenceFinished)
         {
             interpreter = null;
             if (loop && !abort)
             {
                 Launch();
             }
         }
     }
 }