Пример #1
0
        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
        }
Пример #2
0
        private void Menu_SavePNG_Click(object sender, EventArgs e)
        {
            var pb = WinFormsUtil.GetUnderlyingControl<PictureBox>(sender);
            if (pb?.Image == null)
            {
                WinFormsUtil.Alert(MessageStrings.MsgNoPictureLoaded);
                return;
            }

            CM_Picture.Close(ToolStripDropDownCloseReason.CloseCalled);

            const string name = "map";
            using var sfd = new SaveFileDialog
            {
                Filter = "png file (*.png)|*.png|All files (*.*)|*.*",
                FileName = $"{name}.png",
            };
            if (sfd.ShowDialog() != DialogResult.OK)
                return;

            if (!Menu_SavePNGTerrain.Checked)
            {
                PB_Map.Image.Save(sfd.FileName, ImageFormat.Png);
            }
            else if (!Menu_SavePNGItems.Checked)
            {
                PB_Map.BackgroundImage.Save(sfd.FileName, ImageFormat.Png);
            }
            else
            {
                var img = (Bitmap)PB_Map.BackgroundImage.Clone();
                using var gfx = Graphics.FromImage(img);
                gfx.DrawImage(PB_Map.Image, new Point(0, 0));
                img.Save(sfd.FileName, ImageFormat.Png);
            }
        }
Пример #3
0
        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();
        }
Пример #4
0
        public static byte[] LoadFlags(int size, string name)
        {
            using var ofd = new OpenFileDialog
                  {
                      Filter   = "New Horizons Flag List (*.nhfl)|*.nhfl|All files (*.*)|*.*",
                      FileName = $"{name}.nhfl",
                  };
            if (ofd.ShowDialog() != DialogResult.OK)
            {
                return(System.Array.Empty <byte>());
            }

            var file         = ofd.FileName;
            var fi           = new FileInfo(file);
            int expectLength = size;

            if (fi.Length != expectLength)
            {
                WinFormsUtil.Error(MessageStrings.MsgCanceling, string.Format(MessageStrings.MsgDataSizeMismatchImport, fi.Length, expectLength));
                return(System.Array.Empty <byte>());
            }

            return(File.ReadAllBytes(file));
        }
Пример #5
0
 private void Menu_Open_Click(object sender, EventArgs e)
 {
     WinFormsUtil.Alert("I don't do anything yet!");
 }
Пример #6
0
 private void CB_Goto_SelectedValueChanged(object sender, EventArgs e) => CLB_Recipes.SelectedIndex = WinFormsUtil.GetIndex(CB_Goto);
Пример #7
0
 private void Menu_Save_Click(object sender, EventArgs e)
 {
     SaveAll();
     SAV.Save((uint)DateTime.Now.Ticks);
     WinFormsUtil.Alert("Saved all save data!");
 }
Пример #8
0
 private void CB_KeyDown(object sender, KeyEventArgs e) => WinFormsUtil.RemoveDropCB(sender, e);
Пример #9
0
        private void CB_CountAlias_SelectedValueChanged(object sender, EventArgs e)
        {
            var val = WinFormsUtil.GetIndex((ComboBox)sender);

            NUD_Count.Value = Math.Max(0, Math.Min(NUD_Count.Maximum, val));
        }
Пример #10
0
        private void B_LoadDesign_Click(object sender, EventArgs e)
        {
            if (ModifierKeys == Keys.Shift)
            {
                using var fbd = new FolderBrowserDialog();
                if (fbd.ShowDialog() != DialogResult.OK)
                {
                    return;
                }

                var dir = Path.GetDirectoryName(fbd.SelectedPath);
                if (dir == null || !Directory.Exists(dir))
                {
                    return;
                }
                Patterns.Load(fbd.SelectedPath);
                LoadPattern(Patterns[0]);
                return;
            }

            var original = Patterns[Index];
            var name     = original.DesignName;

            using var ofd = new OpenFileDialog
                  {
                      Filter   = "New Horizons PRO Design (*.nhpd)|*.nhpd|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 DesignPatternPRO(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);
        }
Пример #11
0
        private void CB_NamedItemArgument_SelectedValueChanged(object sender, EventArgs e)
        {
            var val = WinFormsUtil.GetIndex(CB_NamedItemArgument);

            NUD_Count.Value = Math.Max(0, Math.Min(NUD_Count.Maximum, val));
        }