Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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);
        }
Esempio n. 3
0
        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;
            }
            ;
        }