示例#1
0
 public void SetNextMove(MoveDisposition moveDisposition)
 {
     // Called from various threads by PlayersConnector.
     var request = new DispositionRequest(DateTime.UtcNow, moveDisposition);
     Thread.MemoryBarrier();
     _dispositionRequest = request;
 }
示例#2
0
 public void UpdateDirection(MoveDisposition move)
 {
     switch (move)
     {
         case MoveDisposition.TurnLeft:
         {
             var index = Directions.IndexOf(Status);
             if (index >= 0)
             {
                 Status = Directions[(index - 1 + Directions.Count)%Directions.Count];
             }
         }
             break;
         case MoveDisposition.TurnRight:
         {
             var index = Directions.IndexOf(Status);
             if (index >= 0)
             {
                 Status = Directions[(index + 1 + Directions.Count)%Directions.Count];
             }
         }
             break;
     }
 }
示例#3
0
 public DispositionRequest(DateTime timestamp, MoveDisposition disposition)
 {
     Timestamp = timestamp;
     Disposition = disposition;
 }