muddesigner/Mud Designer/Editors/ToolkitLauncher.cs
Scionwest_cp 37b2d42b4c - Toolkit now saves and loads settings file
- Toolkit supports a default toolkit realm. Zone Builder now loads the default Realm each time it is opened. Allows developers to work on one Realm without having to re-select the Realm each time the Zone Builder is opened.
 - Toolkit settings properties are no longer static within Settings.cs.
 - Program.cs now contains a staticu property for Toolkit settings.
2009-12-08 17:27:55 -08:00

159 lines
4.4 KiB
C#

using System.IO;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using MudDesigner.MudEngine.GameObjects.Environment;
using MudDesigner.MudEngine.FileSystem;
namespace MudDesigner.Editors
{
public partial class ToolkitLauncher : Form
{
bool IsStartup = true;
public ToolkitLauncher()
{
InitializeComponent();
this.Text = "Mud Designer Toolkit " + Program.Settings.GetVersion();
if (Program.Settings.DefaultRealm != null)
{
lblCurrentRealm.Text = "Current Realm: " + Program.Settings.DefaultRealm.Name;
chkDefaultRealm.Checked = true;
}
//done starting up. This prevents checkbox change events from firing during startup
IsStartup = false;
}
private void btnProjectSettings_Click(object sender, EventArgs e)
{
ProjectSettings form = new ProjectSettings();
Program.CurrentEditor = form;
form.Show();
this.Hide();
while (form.Created)
Application.DoEvents();
form = null;
this.Show();
}
private void btnCurrencyEditor_Click(object sender, EventArgs e)
{
CurrencyEditor form = new CurrencyEditor();
Program.CurrentEditor = form;
form.Show();
this.Hide();
while (form.Created)
Application.DoEvents();
form = null;
this.Show();
}
private void btnRealmExplorer_Click(object sender, EventArgs e)
{
RealmExplorer form = new RealmExplorer();
Program.CurrentEditor = form;
form.Show();
this.Hide();
while (form.Created)
Application.DoEvents();
form = null;
this.Show();
}
private void btnZoneBuilder_Click(object sender, EventArgs e)
{
ZoneBuilder form = new ZoneBuilder();
Program.CurrentEditor = form;
form.Show();
this.Hide();
while (form.Created)
Application.DoEvents();
form = null;
this.Show();
}
private void chkDefaultRealm_CheckedChanged(object sender, EventArgs e)
{
if (IsStartup)
return;
if (!chkDefaultRealm.Checked)
{
Program.Settings.DefaultRealm = null;
lblCurrentRealm.Text = "Current Realm: None";
SaveSettings();
}
else
{
Realm realm = GetRealm();
if (realm != null)
{
Program.Settings.DefaultRealm = realm;
SaveSettings();
}
}
}
private void btnChangeRealm_Click(object sender, EventArgs e)
{
Realm realm = GetRealm();
if (realm != null)
{
Program.Settings.DefaultRealm = realm;
SaveSettings();
}
}
public Realm GetRealm()
{
ExistingRealms form = new ExistingRealms();
form.Show();
this.Hide();
while (form.Created)
Application.DoEvents();
this.Show();
Realm realm = new Realm();
string[] files = Directory.GetFiles(FileManager.GetDataPath(SaveDataTypes.Realms), "*.realm", SearchOption.AllDirectories);
foreach (string file in files)
{
realm = (Realm)FileManager.Load(file, realm);
if (realm.Name == form.lstRealms.SelectedItem.ToString())
{
Program.Settings.DefaultRealm = realm;
lblCurrentRealm.Text = "Current Realm: " + realm.Name;
return realm;
}
}
return null;
}
public void SaveSettings()
{
string savePath = Path.Combine(Application.StartupPath, "Toolkit.xml");
FileManager.Save(savePath, Program.Settings);
}
}
}