MCGalaxy/GUI/Eco/EcoLevelWindow.cs
2015-03-21 09:45:31 -04:00

122 lines
4.4 KiB
C#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Microsoft.Win32;
namespace MCGalaxy.GUI.Eco {
public partial class EcoLevelWindow : Form {
private bool edit = false;
private struct LevelEdit {
public string name, x, y, z, oldname;
public int price;
public string type;
}
private LevelEdit lvledit;
EconomyWindow eco;
public EcoLevelWindow(EconomyWindow eco, string name = "", int price = 0, string x = "", string y = "", string z = "", string type = "", bool edit = false) {
this.edit = edit;
this.eco = eco;
lvledit.name = name;
lvledit.oldname = name;
lvledit.price = price;
lvledit.x = x;
lvledit.y = y;
lvledit.z = z;
lvledit.type = type;
InitializeComponent();
SystemEvents.UserPreferenceChanged += new UserPreferenceChangedEventHandler(SystemEvents_UserPreferenceChanged);
this.Font = SystemFonts.IconTitleFont;
}
private void SystemEvents_UserPreferenceChanged(object sender, UserPreferenceChangedEventArgs e) {
if (e.Category == UserPreferenceCategory.Window) {
this.Font = SystemFonts.IconTitleFont;
}
}
private void PropertyWindow_FormClosing(object sender, FormClosingEventArgs e) {
SystemEvents.UserPreferenceChanged -= new UserPreferenceChangedEventHandler(SystemEvents_UserPreferenceChanged);
edit = false;
}
private void EcoLevelWindow_Load(object sender, EventArgs e) {
List<string> dimensionsX = new List<string>();
string[] dimensionsY = new string[6];
string[] dimensionsZ = new string[6];
dimensionsX.Add("16");
dimensionsX.Add("32");
dimensionsX.Add("64");
dimensionsX.Add("128");
dimensionsX.Add("256");
dimensionsX.Add("512");
dimensionsX.CopyTo(dimensionsY);
dimensionsX.CopyTo(dimensionsZ);
comboBoxX.DataSource = dimensionsX;
comboBoxY.DataSource = dimensionsY;
comboBoxZ.DataSource = dimensionsZ;
List<string> types = new List<string>();
types.Add("Flat");
types.Add("Pixel");
types.Add("Island");
types.Add("Mountains");
types.Add("Ocean");
types.Add("Forest");
types.Add("Desert");
types.Add("Space");
types.Add("Rainbow");
types.Add("Hell");
comboBoxType.DataSource = types;
if (edit) {
textBoxName.Text = lvledit.name;
numericUpDownPrice.Value = lvledit.price;
comboBoxX.SelectedItem = lvledit.x;
comboBoxY.SelectedItem = lvledit.y;
comboBoxZ.SelectedItem = lvledit.z;
comboBoxType.SelectedItem = lvledit.type;
} else {
numericUpDownPrice.Value = 1000;
comboBoxX.SelectedItem = "64";
comboBoxY.SelectedItem = "64";
comboBoxZ.SelectedItem = "64";
comboBoxType.SelectedItem = "Flat";
}
buttonOk.Enabled = edit;
}
private void buttonCancel_Click(object sender, EventArgs e) {
this.Close();
}
private void buttonOk_Click(object sender, EventArgs e) {
if (edit) Economy.Settings.LevelsList.Remove(Economy.FindLevel(lvledit.oldname));
Economy.Settings.Level level = new Economy.Settings.Level();
level.name = textBoxName.Text.Split()[0];
level.price = (int)numericUpDownPrice.Value;
level.x = comboBoxX.SelectedItem.ToString();
level.y = comboBoxY.SelectedItem.ToString();
level.z = comboBoxZ.SelectedItem.ToString();
level.type = comboBoxType.SelectedItem.ToString().ToLower();
Economy.Settings.LevelsList.Add(level);
eco.UpdateLevels();
eco.CheckLevelEnables();
this.Close();
}
private void textBoxName_TextChanged(object sender, EventArgs e) {
buttonOk.Enabled = textBoxName.Text != null && textBoxName.Text != String.Empty && textBoxName.Text != "";
}
}
}