private void B_DumpDesign_Click(object sender, EventArgs e) { if (sender == B_DumpDesignAll) { using var fbd = new FolderBrowserDialog(); if (fbd.ShowDialog() != DialogResult.OK) { return; } var dir = Path.GetDirectoryName(fbd.SelectedPath); if (dir == null || !Directory.Exists(dir)) { return; } bool indexed = WinFormsUtil.Prompt(MessageBoxButtons.YesNo, MessageStrings.MsgAskExportResultsWithFileIndex) == DialogResult.Yes; Patterns.Dump(fbd.SelectedPath, indexed); return; } var original = Patterns[Index]; var name = original.DesignName; using var sfd = new SaveFileDialog { Filter = "New Horizons Design Pattern (*.nhd)|*.nhd|All files (*.*)|*.*", FileName = $"{name}.nhd", }; if (sfd.ShowDialog() != DialogResult.OK) { return; } var d = original; File.WriteAllBytes(sfd.FileName, d.Data); }
private void B_EditVillagerPlayerMemories_Click(object sender, EventArgs e) { if (ModifierKeys == Keys.Shift) { var prompt = WinFormsUtil.Prompt(MessageBoxButtons.YesNo, MessageStrings.MsgVillagerFriendshipMax); if (prompt != DialogResult.Yes) { return; } foreach (var villager in Villagers) { villager.SetFriendshipAll(); } System.Media.SystemSounds.Asterisk.Play(); return; } var v = Villagers[VillagerIndex]; using var editor = new VillagerMemoryEditor(v); if (editor.ShowDialog() == DialogResult.OK) { } // editor saves our changes }
private void Remove(Control sender, Func <int, int, int, int, int> removal) { bool wholeMap = ModifierKeys == Keys.Shift; string q = string.Format(MessageStrings.MsgFieldItemRemoveAsk, sender.Text); var question = WinFormsUtil.Prompt(MessageBoxButtons.YesNo, q); if (question != DialogResult.Yes) { return; } var count = wholeMap ? removal(0, 0, Layer.MapWidth, Layer.MapHeight) : removal(X, Y, Layer.GridWidth, Layer.GridHeight); if (count == 0) { WinFormsUtil.Alert(MessageStrings.MsgFieldItemRemoveNone); return; } LoadGrid(X, Y); WinFormsUtil.Alert(string.Format(MessageStrings.MsgFieldItemRemoveCount, count)); }
private void Remove(Control sender, Func <int, int, int, int, int> removal) { bool wholeMap = ModifierKeys == Keys.Shift; string q = $"Are you sure you want to remove {sender.Text}?"; var question = WinFormsUtil.Prompt(MessageBoxButtons.YesNo, q); if (question != DialogResult.Yes) { return; } var count = wholeMap ? removal(0, 0, Layer.MapWidth, Layer.MapHeight) : removal(X, Y, Layer.GridWidth, Layer.GridHeight); if (count == 0) { WinFormsUtil.Alert("Nothing removed (none found)."); return; } LoadGrid(X, Y); WinFormsUtil.Alert($"Removed {count} from the map."); }
private void B_Save_Click(object sender, EventArgs e) { var unsupported = Map.Items.GetUnsupportedTiles(); if (unsupported.Count != 0) { var err = MessageStrings.MsgFieldItemUnsupportedLayer2Tile; var ask = MessageStrings.MsgAskContinue; var prompt = WinFormsUtil.Prompt(MessageBoxButtons.YesNo, err, ask); if (prompt != DialogResult.Yes) return; } Map.Items.Save(); SAV.SetTerrainTiles(Map.Terrain.Tiles); SAV.SetAcreBytes(Map.Terrain.BaseAcres); SAV.OutsideFieldTemplateUniqueId = (ushort)NUD_MapAcreTemplateOutside.Value; SAV.MainFieldParamUniqueID = (ushort)NUD_MapAcreTemplateField.Value; SAV.Buildings = Map.Buildings; SAV.EventPlazaLeftUpX = Map.PlazaX; SAV.EventPlazaLeftUpZ = Map.PlazaY; Close(); }
private void B_LoadDesign_Click(object sender, EventArgs e) { if (sender == B_LoadDesignAll) { using var fbd = new FolderBrowserDialog(); if (fbd.ShowDialog() != DialogResult.OK) { return; } var dir = Path.GetDirectoryName(fbd.SelectedPath); if (dir == null || !Directory.Exists(dir)) { return; } var result = WinFormsUtil.Prompt(MessageBoxButtons.YesNoCancel, MessageStrings.MsgAskUpdateValues); Patterns.Load(fbd.SelectedPath, result == DialogResult.Yes); LoadPattern(Patterns[Index]); RepopulateList(Index); return; } var original = Patterns[Index]; var name = original.DesignName; using var ofd = new OpenFileDialog { Filter = "New Horizons Design Pattern (*.nhd)|*.nhd|All files (*.*)|*.*", FileName = $"{name}.nhd", }; if (ofd.ShowDialog() != DialogResult.OK) { return; } var file = ofd.FileName; var expectLength = original.Data.Length; var fi = new FileInfo(file); if (fi.Length != expectLength) { var msg = string.Format(MessageStrings.MsgDataSizeMismatchImport, fi.Length, expectLength); WinFormsUtil.Error(MessageStrings.MsgCanceling, msg); return; } var data = File.ReadAllBytes(ofd.FileName); var d = new DesignPattern(data); var player0 = original; if (!d.IsOriginatedFrom(player0)) { var notHost = string.Format(MessageStrings.MsgDataDidNotOriginateFromHost_0, player0.PlayerName); var result = WinFormsUtil.Prompt(MessageBoxButtons.YesNoCancel, notHost, MessageStrings.MsgAskUpdateValues); if (result == DialogResult.Cancel) { return; } if (result == DialogResult.Yes) { d.ChangeOrigins(player0, d.Data); } } Patterns[Index] = d; LoadPattern(d); RepopulateList(Index); }