Пример #1
0
        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);
        }
Пример #2
0
        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);
        }
Пример #3
0
        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);
        }
Пример #4
0
 public static TransitionEditor HaveEffect(this TransitionEditor editor, IBehavior effect)
 {
     editor.Transition.Effect = effect;
     return(editor);
 }