private void executeCommand(ISequenceCommand command) { if (command == null) { return; } command.Execute(); }
private void removeSequence(ISequenceCommand command) { if (activeSequences.ContainsKey(command)) { command.Cancel(); activeSequences.Remove(command); } }
/// 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); }
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); }
private void executeCommand(ISequenceCommand command) { if (command == null) { return; } #if UNITY_EDITOR ContextDebugging.OnCommandExecute(command); #endif command.Execute(); }
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); } } }
/// 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; }
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); } } } } }
private void trackCommand(ISequenceCommand command, ISequenceBinding binding) { activeSequences [command] = binding; }
public void BreakSequence(ISequenceCommand command) { removeSequence(command); }