Beispiel #1
0
 private void executeCommand(ISequenceCommand command)
 {
     if (command == null)
     {
         return;
     }
     command.Execute();
 }
Beispiel #2
0
 private void removeSequence(ISequenceCommand command)
 {
     if (activeSequences.ContainsKey(command))
     {
         command.Cancel();
         activeSequences.Remove(command);
     }
 }
Beispiel #3
0
        /// Instantiate and Inject the ISequenceCommand.
        new virtual protected ISequenceCommand createCommand(object cmd, object data)
        {
            injectionBinder.Bind <ISequenceCommand> ().To(cmd);
            ISequenceCommand command = injectionBinder.GetInstance <ISequenceCommand> () as ISequenceCommand;

            command.data = data;
            injectionBinder.Unbind <ISequenceCommand> ();
            return(command);
        }
Beispiel #4
0
        private void invokeCommand(Type cmd, ISequenceBinding binding, object data, int depth)
        {
            ISequenceCommand command = createCommand(cmd, data);

            command.sequenceId = depth;
            trackCommand(command, binding);
            executeCommand(command);
            ReleaseCommand(command);
        }
Beispiel #5
0
        private void executeCommand(ISequenceCommand command)
        {
            if (command == null)
            {
                return;
            }
#if UNITY_EDITOR
            ContextDebugging.OnCommandExecute(command);
#endif
            command.Execute();
        }
Beispiel #6
0
 public void ReleaseCommand(ISequenceCommand command)
 {
     if (command.retain == false)
     {
         if (activeSequences.ContainsKey(command))
         {
             ISequenceBinding binding = activeSequences [command] as ISequenceBinding;
             object           data    = command.data;
             activeSequences.Remove(command);
             nextInSequence(binding, data, command.sequenceId + 1);
         }
     }
 }
Beispiel #7
0
		/// Instantiate and Inject the command, incling an IEvent to data.
		override protected ISequenceCommand createCommand(object cmd, object data)
		{
			injectionBinder.Bind<ISequenceCommand> ().To (cmd);
			if (data is IEvent)
			{
				injectionBinder.Bind<IEvent> ().ToValue(data).ToInject(false);;
			}
			ISequenceCommand command = injectionBinder.GetInstance<ISequenceCommand> () as ISequenceCommand;
			command.data = data;
			if (data is IEvent)
			{
				injectionBinder.Unbind<IEvent> ();
			}
			injectionBinder.Unbind<ISequenceCommand> ();
			return command;
		}
Beispiel #8
0
        public void Stop(object key)
        {
            ISequenceBinding binding = GetBinding(key) as ISequenceBinding;

            if (binding != null)
            {
                if (activeSequences.ContainsValue(binding))
                {
                    foreach (KeyValuePair <ISequenceCommand, ISequenceBinding> sequence in activeSequences)
                    {
                        if (sequence.Value == binding)
                        {
                            ISequenceCommand command = sequence.Key;
                            removeSequence(command);
                        }
                    }
                }
            }
        }
Beispiel #9
0
 private void trackCommand(ISequenceCommand command, ISequenceBinding binding)
 {
     activeSequences [command] = binding;
 }
Beispiel #10
0
 public void BreakSequence(ISequenceCommand command)
 {
     removeSequence(command);
 }