public static TransitionEditor TriggerWithProperties <TSender>(this TransitionEditor editor, IScheduler triggerScheduler, IEnumerable <TSender> sender, string propertyName = "") where TSender : INotifyPropertyChanged { var trigger = new GroupPropertyChangedTrigger <TSender>(sender.ToList(), propertyName, triggerScheduler, editor.Logger); editor.Transition.AddTrigger(trigger); return(editor); }
public static TransitionEditor TriggerWithStateChange <TState>(this TransitionEditor editor, List <StateMachine <TState> > changeSources, StateMachineBase observerMachine = null, TState?toStateFilter = null) where TState : struct { var trigger = new StateChangedTrigger <TState>(changeSources, toStateFilter, observerMachine?.TriggerScheduler, editor.Logger); editor.Transition.AddTrigger(trigger); return(editor); }
public static TransitionEditor HaveEffect(this TransitionEditor editor, string effectName, Action <IUnityContainer> effect) { var transition = editor.Transition; //if (transition == null) //{ // throw new InvalidOperationException($"An Effect can only be added to a Transition."); //} var fx = new Behavior(effectName, effect); transition.Effect = fx; return(editor); }
public static TransitionEditor HaveEffect(this TransitionEditor editor, IBehavior effect) { editor.Transition.Effect = effect; return(editor); }