コード例 #1
0
ファイル: StateMachine.cs プロジェクト: louissalin/StateUI
        public State AddState(Action<State> initializer)
        {
            var state = new State { Id = _states.Count + 1 };
            _states.Add(state);

            if (initializer != null)
                initializer(state);

            return state;
        }
コード例 #2
0
 private CreatePathExpression State(State state)
 {
     if (_selectingTo)
     {
         _to = state;
         _createdPath = _machine.CreatePath(_from, _to);
         return this;
     }
     else
     {
         _from = state;
         return this;
     }
 }
コード例 #3
0
 protected override void Because()
 {
     _state = sut.AddState(s => s.Name = _name);
     sut.Start();
 }
コード例 #4
0
ファイル: Context.cs プロジェクト: louissalin/StateUI
 public Context(StateMachine stateMachine, State associatedState)
 {
     AssociatedState = associatedState;
     _stateMachine = stateMachine;
 }
コード例 #5
0
ファイル: State.cs プロジェクト: louissalin/StateUI
 public void AddDestination(State destination)
 {
     destinations.Add(destination);
 }
コード例 #6
0
ファイル: State.cs プロジェクト: louissalin/StateUI
 public Path(State fromState)
 {
     FromState = fromState;
 }
コード例 #7
0
ファイル: Context_specs.cs プロジェクト: louissalin/StateUI
 public ContextStub(StateMachine stateMachine, State associatedState)
     : base(stateMachine, associatedState)
 {
 }
コード例 #8
0
ファイル: Contexts.cs プロジェクト: louissalin/StateUI
 public UseSwordContext(StateMachine stateMachine, State associatedState)
     : base(stateMachine, associatedState)
 {
 }
コード例 #9
0
ファイル: Contexts.cs プロジェクト: louissalin/StateUI
 public UseBareHandsContext(StateMachine stateMachine, State associatedState)
     : base(stateMachine, associatedState)
 {
 }
コード例 #10
0
ファイル: Contexts.cs プロジェクト: louissalin/StateUI
 public SamuraiContext(StateMachine stateMachine, State associatedState)
     : base(stateMachine, associatedState)
 {
 }
コード例 #11
0
ファイル: StateMachine.cs プロジェクト: louissalin/StateUI
        public Path CreatePath(State from, State to)
        {
            if (from == to)
                throw new ArgumentException("Can't add a path between two equal states");

            Path path = _paths.SingleOrDefault(p => p.FromState == from);
            if (path == null)
            {
                path = new Path(from);
                _paths.Add(path);
            }

            if (path.Destinations.Any(d => d == to))
                throw new ArgumentException(string.Format("There is already a destination {0} for state {1}", to.Id, from.Id));

            path.AddDestination(to);
            return path;
        }
コード例 #12
0
ファイル: StateMachine.cs プロジェクト: louissalin/StateUI
 private void SetCurrentState(State state)
 {
     CurrentState = state;
 }