public FASequenceItem(FASequence owner) { Owner = owner; Watch = new Stopwatch(); }
protected override void FirstExecute(FASequence actor) { State = SequenceState.Running; foreach (FASequenceAtomicInfo item in _sequenceList) { item.Sequence.Atomic = item.Atomic; item.Sequence.Start(Owner); } }
private void ConfirmTerminatedSequences(FASequence actor, TimeSpan time) { foreach (FASequenceAtomicInfo item in _sequenceList) { if (item.Sequence.State != SequenceState.Terminated) return; } actor.NextStep(); }
private void ExecuteAction(FASequence actor, TimeSpan time) { _action(actor, time); }
public FASequenceCombinationSequenceItem(FASequence owner, params FASequenceAtomicInfo[] sequences) : base(owner) { _sequenceList.AddRange(sequences); Executor = ConfirmTerminatedSequences; }
public FAConditionalSequenceItem(FASequence owner, Action<FASequence, TimeSpan> actoin) : base(owner) { Atomic = false; _action = actoin; Executor = ExecuteAction; }
protected override void FirstExecute(FASequence actor) { State = SequenceState.Running; }
private void AutoNextExecute(FASequence actor, TimeSpan time) { _autoNextExecutor(actor); actor.NextStep(); }
public FAAutoNextSequenceItem(FASequence owner, Action<object> actoin) : base(owner) { _autoNextExecutor = actoin; Executor = AutoNextExecute; }
public FASequenceAtomicInfo(FASequence seq, bool atomic) { Sequence = seq; Atomic = atomic; }
protected abstract void FirstExecute(FASequence actor);
public void Execute(FASequence actor) { if (Watch.ElapsedTicks == 0) { Watch = Stopwatch.StartNew(); } if (IsStarted == false) { IsStarted = true; FirstExecute(actor); } Executor(actor, Watch.Elapsed); }