private void btn_NewFromTemplate_Click(object sender, EventArgs e)
        {
            List <string>        templateNames  = objectTemplates.Keys.ToList();
            SelectTemplateWindow selectTemplate = new SelectTemplateWindow(templateNames);

            selectTemplate.Closed += delegate
            {
                switch (selectTemplate.DialogResult)
                {
                case DialogResult.OK:
                    NewGameObject newGameObject = new NewGameObject(Observer);
                    newGameObject.Closed += delegate
                    {
                        switch (newGameObject.ValidObject)
                        {
                        case true:
                            GameObject gameObject = objectTemplates[selectTemplate.SelectedTemplate].CloneGameObject();
                            gameObject.Name = newGameObject.ReturnGameObject.Name;
                            AddGameObjectToDisplay(gameObject);
                            Observer.ObserveGameObject(gameObject);
                            return;

                        case false:
                            return;
                        }
                    };
                    newGameObject.ShowDialog();
                    break;

                case DialogResult.Cancel:
                    return;
                }
            };
            selectTemplate.ShowDialog();
        }
 private void btn_NewFromTemplate_Click(object sender, EventArgs e)
 {
     List<string> templateNames = objectTemplates.Keys.ToList();
     SelectTemplateWindow selectTemplate = new SelectTemplateWindow(templateNames);
     selectTemplate.Closed += delegate
     {
         switch (selectTemplate.DialogResult)
         {
             case DialogResult.OK:
                 NewGameObject newGameObject = new NewGameObject(Observer);
                 newGameObject.Closed += delegate
                 {
                     switch (newGameObject.ValidObject)
                     {
                         case true:
                             GameObject gameObject = objectTemplates[selectTemplate.SelectedTemplate].CloneGameObject();
                             gameObject.Name = newGameObject.ReturnGameObject.Name;
                             AddGameObjectToDisplay(gameObject);
                             Observer.ObserveGameObject(gameObject);
                             return;
                         case false:
                             return;
                     }
                 };
                 newGameObject.ShowDialog();
                 break;
             case DialogResult.Cancel:
                 return;
         }
     };
     selectTemplate.ShowDialog();
 }