NHSE/NHSE.WinForms/Subforms/Player/MiscPlayerEditor.cs
Josh (vector_cmdr) c3371475d4
Fruit + Flower Improvement (#704)
Added fruits + flowers to Player Misc menu (kept field goods property manager in place still).

Saving fruits pushes change to flags block for fruits so that multiple edits aren't required when changing/saving it with new UpdateFruitFlags method.

Flowers added as enum class like Airport Color, but should be moved out to strings for localization later on.
2026-01-20 14:45:51 +11:00

90 lines
2.5 KiB
C#

using NHSE.Core;
using System;
using System.Diagnostics;
using System.Text;
using System.Windows.Forms;
namespace NHSE.WinForms;
public partial class MiscPlayerEditor : Form
{
private readonly Player Player;
private readonly MainSave Save;
public MiscPlayerEditor(Player p, MainSave s)
{
InitializeComponent();
this.TranslateInterface(GameInfo.CurrentLanguage);
Player = p;
Save = s;
var fruitsSpecialty = ComboItemUtil.GetArray(GameLists.Fruits, GameInfo.Strings.itemlistdisplay);
RIS_ProfileFruit.Initialize(fruitsSpecialty);
var fruitsSister = ComboItemUtil.GetArray(GameLists.Fruits, GameInfo.Strings.itemlistdisplay);
RIS_SisterFruit.Initialize(fruitsSister);
LoadPlayer();
}
private void LoadPlayer()
{
var p = Player;
var pers = p.Personal;
var sav = Save;
var bd = pers.Birthday;
NUD_BirthDay.Value = bd.Day;
NUD_BirthMonth.Value = bd.Month;
CHK_ProfileMadeVillage.Checked = pers.ProfileIsMakeVillage;
RIS_ProfileFruit.Value = pers.ProfileFruit;
RIS_SisterFruit.Value = sav.SisterFruit;
var flowersProfile = Enum.GetNames<IslandFlowers>();
CB_ProfileFlower.Items.AddRange(flowersProfile);
CB_ProfileFlower.SelectedIndex = (int)sav.SpecialtyFlower;
var flowersSister = Enum.GetNames<IslandFlowers>();
CB_SisterFlower.Items.AddRange(flowersSister);
CB_SisterFlower.SelectedIndex = (int)sav.SisterFlower;
CAL_ProfileTimestamp.Value = pers.ProfileTimestamp;
}
private void B_Cancel_Click(object sender, EventArgs e) => Close();
private void B_Save_Click(object sender, EventArgs e)
{
SavePlayer();
Close();
}
private void SavePlayer()
{
var p = Player;
var pers = p.Personal;
var sav = Save;
var bd = pers.Birthday;
bd.Day = (byte) NUD_BirthDay.Value;
bd.Month = (byte) NUD_BirthMonth.Value;
pers.Birthday = bd;
pers.ProfileBirthday = bd;
pers.ProfileIsMakeVillage = CHK_ProfileMadeVillage.Checked;
pers.ProfileFruit = RIS_ProfileFruit.Value;
sav.SpecialtyFruit = RIS_ProfileFruit.Value;
sav.SisterFruit = RIS_SisterFruit.Value;
sav.UpdateFruitFlags();
sav.SpecialtyFlower = (IslandFlowers)CB_ProfileFlower.SelectedIndex;
sav.SisterFlower = (IslandFlowers)CB_SisterFlower.SelectedIndex;
pers.ProfileTimestamp = CAL_ProfileTimestamp.Value;
}
}