private void OnCheckIDs(object o, EventArgs args) { if (application.CurrentTilemap == null) { return; } List <int> invalidtiles = QACheck.CheckIds(application.CurrentTilemap, application.CurrentLevel.Tileset); MessageType msgtype; System.Text.StringBuilder sb = new System.Text.StringBuilder(); if (invalidtiles.Count == 0) { msgtype = MessageType.Info; sb.Append("All tile ids are valid"); } else { msgtype = MessageType.Warning; sb.Append("This tilemap contains tiles with these nonexistent IDs:"); foreach (int id in invalidtiles) { sb.Append(" " + id.ToString()); } } MessageDialog md = new MessageDialog(null, DialogFlags.DestroyWithParent, msgtype, ButtonsType.Close, sb.ToString()); md.Run(); md.Destroy(); }
protected void OnQACheck(object o, EventArgs args) { if (level == null) { return; } QACheck.CheckObjectDirections(level); foreach (Sector sector in level.Sectors) { QACheck.CheckIds(this, sector, false); } QACheck.CheckLicense(level); }
protected void Save(bool chooseName) { if (fileName == null) { chooseName = true; } if (level == null) { return; } if (chooseName) { fileChooser.Title = "Select file to save Level"; fileChooser.Action = Gtk.FileChooserAction.Save; fileChooser.SetCurrentFolder(Settings.Instance.LastDirectoryName); fileChooser.Filter = fileChooser.Filters[(level.isWorldmap)?2:1]; int result = fileChooser.Run(); fileChooser.Hide(); if (result != (int)Gtk.ResponseType.Ok) { return; } Settings.Instance.LastDirectoryName = fileChooser.CurrentFolder; Settings.Instance.addToRecentDocuments(fileChooser.Filename); Settings.Instance.Save(); UpdateRecentDocuments(); fileName = fileChooser.Filename; } QACheck.ReplaceDeprecatedTiles(level); try { serializer.Write(fileName, level); } catch (Exception e) { ErrorDialog.Exception("Couldn't save level", e); } UndoManager.MarkAsSaved(); UpdateTitlebar(); }
protected void OnCheckIDs(object o, EventArgs args) { QACheck.CheckIds(application, sector, true); }