bool LoadAndValidateLevelDesc() { try { LevelLoader.LoadAndValidateLevel(LevelDesc); } catch (LevelLoadException e) { // It's OK.... } catch (Exception ex) { MessageDialog md = new MessageDialog(null, DialogFlags.Modal, MessageType.Warning, ButtonsType.OkCancel, "Fatal error loading level " + LevelDesc.Name + ". Delete? Cancel will close the app."); int result = md.Run(); md.Destroy(); if (result == -5) { LevelManager.DeleteLevel(LevelDesc.Name); } else { throw ex; } } return(true); }
bool ValidateDescriptionAndReportIssues() { bool issuesFound = false; bool warningsFound = false; string issueText = "No issues"; string warningText = ""; try { LevelLoader.LoadAndValidateLevel(LevelDesc); } catch (LevelLoadException e) { issuesFound = true; issueText = e.Message; } catch (Exception ex) { MessageDialog md = new MessageDialog(null, DialogFlags.Modal, MessageType.Warning, ButtonsType.OkCancel, "Fatal error loading level " + LevelDesc.Name + ". Delete? Cancel will close the app."); int result = md.Run(); md.Destroy(); if (result == -5) { LevelManager.DeleteLevel(LevelDesc.Name); } else { throw ex; } } string[] classes = ErrorEntry.StyleContext.ListClasses(); foreach (string s in classes) { ErrorEntry.StyleContext.RemoveClass(s); } if (issuesFound) { ErrorEntry.Text = "Issues: " + Environment.NewLine + issueText; ErrorEntry.StyleContext.AddClass("red-background"); } else if (warningsFound) { ErrorEntry.Text = "Warnings: " + Environment.NewLine + warningText; ErrorEntry.StyleContext.AddClass("yellow-background"); } else { ErrorEntry.Text = "No issues"; ErrorEntry.StyleContext.AddClass("green-background"); } return(true); }
private void RemoveButton_Clicked(object sender, EventArgs e) { TreePath[] treePath = tree.Selection.GetSelectedRows(); string itemName = ""; TreeIter iter; if (treePath.Length == 0) { return; } ListModel.GetIter(out iter, treePath[0]); itemName = (string)ListModel.GetValue(iter, 0); MessageDialog md = new MessageDialog(null, DialogFlags.Modal, MessageType.Warning, ButtonsType.OkCancel, "You will perminantly delete \"" + itemName + "\". Continue?"); int result = md.Run(); md.Destroy(); if (result != -5) { return; } switch (CurrentMode) { case EditorMode.Level: LevelManager.DeleteLevel(itemName); ListModel.Remove(ref iter); break; case EditorMode.Turret: ((TurretEditLayout)EditorWidget).RemoveTurret(itemName); break; case EditorMode.Enemy: ((EnemyEditLayout)EditorWidget).RemoveEnemy(itemName); break; case EditorMode.Projectile: ((ProjectileEditLayout)EditorWidget).RemoveProjectile(itemName); break; } ; }