Beispiel #1
0
 /// <summary>
 /// Registers a change to the current board state.
 /// </summary>
 public void RegisterChange(string message)
 {
     Debug.WriteLine(message);
     currentNode.Next = new BoardStackNode(null, currentNode, CurrentState.Copy(), message);
     currentNode      = currentNode.Next;
     CurrentState.Propogate();
 }
Beispiel #2
0
            public BoardStackNode(BoardStackNode next, BoardStackNode previous, BoardState state, string message)
            {
                Next     = next;
                Previous = previous;

                State   = state;
                Message = message;
            }
Beispiel #3
0
 /// <summary>
 /// Move backwards through the board stack
 /// </summary>
 public void Reverse()
 {
     if (currentNode.Previous != null)
     {
         currentNode  = currentNode.Previous;
         CurrentState = currentNode.State.Copy();
         CurrentState.Propogate();
     }
 }
Beispiel #4
0
 /// <summary>
 /// Advance forward in the board stack
 /// </summary>
 public void Advance()
 {
     if (currentNode.Next != null)
     {
         currentNode  = currentNode.Next;
         CurrentState = currentNode.State.Copy();
         CurrentState.Propogate();
     }
 }
Beispiel #5
0
        public void Load()
        {
            string json = saver.GetJson();

            if (json.Length == 0)
            {
                return;
            }
            SaveManager.Load(json, out var newState);
            CurrentState = newState;
            currentNode  = new BoardStackNode(null, null, CurrentState.Copy(), "Created Board");
            CurrentState.Propogate();
        }
Beispiel #6
0
 public void Clear()
 {
     currentNode        = new BoardStackNode(null, null, new BoardState(), "Created Board");
     CurrentState       = currentNode.State;
     locationIdentifier = "";
 }
Beispiel #7
0
 public BoardStack(ISaver saver)
 {
     this.saver   = saver;
     CurrentState = new BoardState();
     currentNode  = new BoardStackNode(null, null, CurrentState.Copy(), "Created Board");
 }