public void SetNextMove(MoveDisposition moveDisposition) { // Called from various threads by PlayersConnector. var request = new DispositionRequest(DateTime.UtcNow, moveDisposition); Thread.MemoryBarrier(); _dispositionRequest = request; }
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; } }
public DispositionRequest(DateTime timestamp, MoveDisposition disposition) { Timestamp = timestamp; Disposition = disposition; }