private void ValidateGameState(GameState gameState) { var msg = new WorldLoaderProgress("Validating gamestate"); Messenger.Default.Send(msg); var tcv = new TileContentValidator(); var issues = new List <string>(); var cy = this._worldSize.Y; var cx = this._worldSize.X; for (int y = 0; y < cy; y++) { for (int x = 0; x < cx; x++) { var tp = new TilePos(x, y); var items = gameState.GetItemsOnTile(tp).ToList(); if (!tcv.IsListOfObjectsValid(items, out string reason)) { issues.Add(tp + ": " + reason); } } } if (issues.Count != 0) { var message = string.Join("\r\n", issues); throw new InvalidOperationException(message); } }
private void UpdateLoadingScreenMessage(WorldLoaderProgress msg) { this._loadingMessage = msg.Message; this.ScreenManager.GraphicsDevice.Clear(Color.Black); this.Draw(new GameTime()); this.ScreenManager.GraphicsDevice.Present(); }
private void OnProgress(string message) { var msg = new WorldLoaderProgress(message); Messenger.Default.Send(msg); }