mirror of
https://github.com/kwsch/NHSE.git
synced 2026-03-22 17:54:59 -05:00
123 lines
3.3 KiB
C#
123 lines
3.3 KiB
C#
using System;
|
|
using System.Windows.Forms;
|
|
using NHSE.Core;
|
|
|
|
namespace NHSE.WinForms;
|
|
|
|
public partial class MuseumEditor : Form
|
|
{
|
|
private readonly Core.MuseumEditor Editor;
|
|
private int Index = -1;
|
|
|
|
public MuseumEditor(Museum museum)
|
|
{
|
|
InitializeComponent();
|
|
this.TranslateInterface(GameInfo.CurrentLanguage);
|
|
|
|
Editor = new Core.MuseumEditor(museum);
|
|
CAL_Date.MinDate = DateTime.MinValue;
|
|
|
|
var str = GameInfo.Strings;
|
|
ItemEdit.Initialize(str.ItemDataSource);
|
|
for (int i = 0; i < Editor.Dates.Length; i++)
|
|
LB_Donations.Items.Add(Editor.GetDonationText(str, i));
|
|
|
|
DialogResult = DialogResult.Cancel;
|
|
LB_Donations.SelectedIndex = 0;
|
|
}
|
|
|
|
private void B_Cancel_Click(object sender, EventArgs e) => Close();
|
|
|
|
private void B_Save_Click(object sender, EventArgs e)
|
|
{
|
|
DialogResult = DialogResult.OK;
|
|
Editor.Save();
|
|
Close();
|
|
}
|
|
|
|
private void LB_Counts_SelectedIndexChanged(object sender, EventArgs e)
|
|
{
|
|
if (LB_Donations.SelectedIndex < 0 || Changing)
|
|
return;
|
|
|
|
SaveIndex(Index);
|
|
Index = LB_Donations.SelectedIndex;
|
|
LoadIndex(Index);
|
|
}
|
|
|
|
private void LoadIndex(in int index)
|
|
{
|
|
if (index < 0)
|
|
return;
|
|
|
|
var date = (DateTime)Editor.Dates[index];
|
|
if (date < CAL_Date.MinDate)
|
|
date = CAL_Date.MinDate;
|
|
CAL_Date.Value = date;
|
|
NUD_Player.Value = Editor.Players[index];
|
|
ItemEdit.LoadItem(Editor.Items[index]);
|
|
}
|
|
|
|
private void SaveIndex(in int index)
|
|
{
|
|
if (index < 0)
|
|
return;
|
|
|
|
var date = CAL_Date.Value;
|
|
if (date == CAL_Date.MinDate)
|
|
date = DateTime.MinValue;
|
|
Editor.Dates[index] = date;
|
|
Editor.Players[index] = (byte)NUD_Player.Value;
|
|
ItemEdit.SetItem(Editor.Items[index]);
|
|
|
|
SetNameForIndex(index);
|
|
}
|
|
|
|
private bool Changing;
|
|
|
|
private void SetNameForIndex(in int index)
|
|
{
|
|
Changing = true;
|
|
LB_Donations.Items[index] = Editor.GetDonationText(GameInfo.Strings, index);
|
|
Changing = false;
|
|
}
|
|
|
|
private void B_Dump_Click(object sender, EventArgs e)
|
|
{
|
|
Editor.Save();
|
|
MiscDumpHelper.DumpMuseum(Editor.Museum);
|
|
}
|
|
|
|
private void B_Load_Click(object sender, EventArgs e)
|
|
{
|
|
if (!MiscDumpHelper.LoadMuseum(Editor.Museum))
|
|
return;
|
|
|
|
// data imported, mark as saved and close
|
|
DialogResult = DialogResult.OK;
|
|
Close();
|
|
}
|
|
|
|
private void B_GiveAll_Click(object sender, EventArgs e)
|
|
{
|
|
SaveIndex(Index);
|
|
Editor.GiveAll(GameInfo.GetStrings("en").itemlist, 1000);
|
|
Editor.Save();
|
|
System.Media.SystemSounds.Asterisk.Play();
|
|
DialogResult = DialogResult.OK;
|
|
Close();
|
|
}
|
|
|
|
private void B_SortDate_Click(object sender, EventArgs e)
|
|
{
|
|
SaveIndex(Index);
|
|
Editor.SortAll();
|
|
Editor.Save();
|
|
System.Media.SystemSounds.Asterisk.Play();
|
|
DialogResult = DialogResult.OK;
|
|
Close();
|
|
}
|
|
|
|
private static void ShowContextMenuBelow(ToolStripDropDown c, Control n) => c.Show(n.PointToScreen(new System.Drawing.Point(0, n.Height)));
|
|
private void B_Tools_Click(object sender, EventArgs e) => ShowContextMenuBelow(CM_Tools, B_Tools);
|
|
} |