コード例 #1
0
ファイル: EnchantForm.cs プロジェクト: cleber/INVedit
        public void Update(ItemSlot slot)
        {
            boxEnchantments.ItemSelectionChanged -= BoxEnchantmentsItemSelectionChanged;
            editId.ValueChanged -= EditIdValueChanged;
            boxName.SelectedIndexChanged -= BoxNameSelectedIndexChanged;
            editLevel.ValueChanged -= EditLevelValueChanged;

            this.slot = slot;
            boxEnchantments.Items.Clear();
            editId.Text = "";
            boxName.Items.Clear();
            editLevel.Enabled = false;
            editLevel.Value = 0;

            if (slot == null || slot.Item == null ||
                (!slot.Item.Enchantable && !slot.Item.Enchanted && !boxAllow.Checked)) {
                editId.Enabled = false;
                boxName.Enabled = false;
            } else {
                editId.Enabled = boxAllow.Checked;
                boxName.Enabled = (slot.Item.Enchantable || boxAllow.Checked);

                var tag = slot.Item.tag;
                foreach (var kvp in Data.enchantments) {
                    var enchantment = kvp.Value;
                    if (boxAllow.Checked || enchantment.items.Contains((short)tag["id"]))
                        boxName.Items.Add(enchantment);
                }

                enchantments.Clear();
                if (tag.Contains("tag") && tag["tag"].Contains("ench"))
                    foreach (var ench in tag["tag"]["ench"]) {
                    short id = (short)ench["id"];
                    if (enchantments.ContainsKey(id))
                        MessageBox.Show("Duplicate enchantment with ID '"+slot+"' discarded.",
                                        "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    string name;
                    if (Data.enchantments.ContainsKey(id))
                        name = Data.enchantments[id].name;
                    else name = "Unknown enchantment " + id;
                    var listItem = new ListViewItem(new string[]{ name, ((short)ench["lvl"]).ToString() });
                    listItem.Tag = id;
                    boxEnchantments.Items.Add(listItem);
                    enchantments.Add(id, Tuple.Create(ench, listItem));
                }
            }

            boxEnchantments.ItemSelectionChanged += BoxEnchantmentsItemSelectionChanged;
            editId.ValueChanged += EditIdValueChanged;
            boxName.SelectedIndexChanged += BoxNameSelectedIndexChanged;
            editLevel.ValueChanged += EditLevelValueChanged;
        }
コード例 #2
0
ファイル: ItemDataForm.cs プロジェクト: chillgamingAZ/INVedit
        public void Update(ItemSlot slot)
        {
            boxName.TextChanged -= BoxNameTextChanged;
            boxLore.TextChanged -= BoxLoreTextChanged;
            boxColor.TextChanged -= BoxColorTextChanged;
            boxPlayer.TextChanged -= BoxPlayerTextChanged;

            this.slot = slot;
            Item item = ((slot != null) ? slot.Item : null);

            boxName.Text = "";
            boxLore.Text = "";
            boxColor.Text = "";
            panelColor.BackColor = Color.Transparent;
            boxPlayer.Text = "";

            boxName.Enabled = (item != null);
            boxLore.Enabled = (item != null);
            boxColor.Enabled = (item != null && (item.ID == 298 || item.ID == 299 ||
                                                 item.ID == 300 || item.ID == 301));
            panelColor.Enabled = boxColor.Enabled;
            boxPlayer.Enabled = (item != null && item.ID == 397);

            if (item != null && item.tag.Contains("tag")) {
                var tag = item.tag["tag"];
                if (tag.Contains("display")) {
                    var display = tag["display"];
                    if (display.Contains("Name"))
                        boxName.Text = (string)display["Name"];
                    if (display.Contains("Lore"))
                        boxLore.Lines = display["Lore"].Select((t) => (string)t).ToArray();
                    if (boxColor.Enabled && display.Contains("color")) {
                        int c = (int)display["color"];
                        Color color = Color.FromArgb(c >> 16, (c >> 8) & 0xFF, c & 0xFF);
                        boxColor.Text = (color.ToArgb() & 0xFFFFFF).ToString("X6");
                        panelColor.BackColor = color;
                    }
                }
                if (boxPlayer.Enabled && tag.Contains("SkullOwner"))
                    boxPlayer.Text = (string)tag["SkullOwner"];
            }

            boxName.TextChanged += BoxNameTextChanged;
            boxLore.TextChanged += BoxLoreTextChanged;
            boxColor.TextChanged += BoxColorTextChanged;
            boxPlayer.TextChanged += BoxPlayerTextChanged;
        }
コード例 #3
0
ファイル: MainForm.cs プロジェクト: chillgamingAZ/INVedit
 void Change(ItemSlot slot)
 {
     if (enchantForm != null)
         enchantForm.Update(slot);
     if (editForm != null)
         editForm.Update(slot);
     if (itemDataForm != null)
         itemDataForm.Update(slot);
 }
コード例 #4
0
ファイル: Page.cs プロジェクト: chillgamingAZ/INVedit
        void SelectionChanged(object sender, EventArgs e)
        {
            if (selected != null) {
                selected.Selected = false;
                selected.Refresh();
            }
            selected = (ItemSlot)sender;
            selected.Selected = true;

            boxDamage.ValueChanged -= ValueChanged;
            boxCount.ValueChanged -= ValueChanged;

            bool enabled = (selected.Item != null);
            boxDamage.Enabled = enabled;
            boxCount.Enabled = enabled;
            boxDamage.Value = enabled ? (int)selected.Item.Damage : 0;
            boxCount.Minimum = enabled ? 1 : 0;
            boxCount.Value = enabled ? (int)selected.Item.Count : 0;

            boxDamage.ValueChanged += ValueChanged;
            boxCount.ValueChanged += ValueChanged;

            if (Changed != null) Changed(selected);
        }
コード例 #5
0
ファイル: Page.cs プロジェクト: chillgamingAZ/INVedit
 void CreateSlot(byte slot, int x, int y, Image def = null)
 {
     ItemSlot itemSlot = new ItemSlot(slot){
         Location = new Point(x, y), Default = def, UseVisualStyleBackColor = true
     };
     itemSlot.GotFocus += SelectionChanged;
     itemSlot.Changed += (enchantment) => ItemChanged(true, enchantment);
     boxInventory.Controls.Add(itemSlot);
     slots.Add(slot, itemSlot);
 }
コード例 #6
0
ファイル: EditForm.cs プロジェクト: cleber/INVedit
        public void Update(ItemSlot slot)
        {
            boxTitle.TextChanged -= BoxTitleTextChanged;
            boxAuthor.TextChanged -= BoxAuthorTextChanged;
            boxSigned.CheckedChanged -= BoxSignedCheckedChanged;
            boxText.TextChanged -= BoxTextTextChanged;

            this.slot = slot;
            Item item = ((slot != null) ? slot.Item : null);

            if (item != null && (item.ID == 386 || item.ID == 387)) {
                string title = "";
                string author = "";
                int pages = 0;
                string pageText = "";

                if (!item.tag.Contains("tag")) item.tag["tag"] = NbtTag.CreateCompound();
                NbtTag tag = item.tag["tag"];
                if (item.ID == 387) {
                    if (!tag.Contains("title")) tag.Add("title", "");
                    if (!tag.Contains("author")) tag.Add("author", "");
                    title = (string)tag["title"];
                    author = (string)tag["author"];
                }
                if (!tag.Contains("pages"))
                    tag["pages"] = NbtTag.CreateList(NbtTagType.String);
                if (tag["pages"].Count == 0)
                    tag["pages"].Add("");
                page = 0;
                pages = tag["pages"].Count;
                pageText = ((string)tag["pages"][page]).Replace("\n", "\r\n");

                boxTitle.Text = title;
                boxTitle.Enabled = (item.ID == 387);
                boxAuthor.Text = author;
                boxAuthor.Enabled = (item.ID == 387);
                boxSigned.Checked = (item.ID == 387);
                boxSigned.Enabled = true;
                boxText.Text = pageText;
                boxText.Enabled = true;
                labelPage.Text = "Page " + (page + 1) + " of " + pages;
                btnNext.Enabled = true;
            } else {
                boxTitle.Text = "";
                boxTitle.Enabled = false;
                boxAuthor.Text = "";
                boxAuthor.Enabled = false;
                boxSigned.Checked = false;
                boxSigned.Enabled = false;
                boxText.Text = "";
                boxText.Enabled = false;
                labelPage.Text = "Page 0 of 0";
                btnPrevious.Enabled = false;
                btnNext.Enabled = false;
            }

            boxTitle.TextChanged += BoxTitleTextChanged;
            boxAuthor.TextChanged += BoxAuthorTextChanged;
            boxSigned.CheckedChanged += BoxSignedCheckedChanged;
            boxText.TextChanged += BoxTextTextChanged;
        }
コード例 #7
0
ファイル: PotionForm.cs プロジェクト: DHIteration/INVedit
        public void Update(ItemSlot slot)
        {
            boxPotionEffects.ItemSelectionChanged -= boxPotionEffectsItemSelectionChanged;
            editId.ValueChanged -= EditIdValueChanged;
            boxName.SelectedIndexChanged -= BoxNameSelectedIndexChanged;
            editDuration.ValueChanged -= editDurationValueChanged;
            editAmplifier.ValueChanged -= editAmplifierValueChanged;

            this.slot = slot;
            boxPotionEffects.Items.Clear();
            editId.Text = "";
            boxName.Items.Clear();
            editDuration.Enabled = false;
            editAmplifier.Enabled = false;
            editDuration.Value = 0;
            editAmplifier.Value = 1;

            if (slot == null || slot.Item == null ||
                (!slot.Item.Brewable && !slot.Item.Brewed && !boxAllow.Checked))
            {
                editId.Enabled = false;
                boxName.Enabled = false;
            }
            else
            {
                editId.Enabled = boxAllow.Checked;
                boxName.Enabled = (slot.Item.Brewable || boxAllow.Checked);

                var tag = slot.Item.tag;
                foreach (var kvp in Data.potioneffects)
                {
                    var effect = kvp.Value;
                    if (boxAllow.Checked || effect.items.Contains((short)tag["id"]))
                        boxName.Items.Add(effect);
                }

                potioneffects.Clear();
                if (tag.Contains("tag") && tag["tag"].Contains("CustomPotionEffects"))
                    foreach (var effect in tag["tag"]["CustomPotionEffects"])
                    {
                        byte id = (byte)effect["Id"]; //both short
                        if (potioneffects.ContainsKey(id))
                            MessageBox.Show("Duplicate potioneffect with ID '" + slot + "' discarded.",
                                            "Warning", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        string name;
                        if (Data.potioneffects.ContainsKey(id))
                            name = Data.potioneffects[id].name;
                        else name = "Unknown potioneffect " + id;

                        var listItem = new ListViewItem(new string[] { name, ((byte)effect["Amplifier"]).ToString(), ((int)effect["Duration"] / 20).ToString() });
                        listItem.Tag = id;
                        boxPotionEffects.Items.Add(listItem);
                        potioneffects.Add(id, Tuple.Create(effect, listItem));
                    }
            }

            boxPotionEffects.ItemSelectionChanged += boxPotionEffectsItemSelectionChanged;
            editId.ValueChanged += EditIdValueChanged;
            boxName.SelectedIndexChanged += BoxNameSelectedIndexChanged;
            editDuration.ValueChanged += editDurationValueChanged;
            editAmplifier.ValueChanged += editAmplifierValueChanged;
        }
コード例 #8
0
ファイル: EditForm.cs プロジェクト: DHIteration/INVedit
        public void Update(ItemSlot slot)
        {
            boxTitle.TextChanged -= BoxTitleTextChanged;
            boxAuthor.TextChanged -= BoxAuthorTextChanged;
            boxSigned.CheckedChanged -= BoxSignedCheckedChanged;
            boxText.TextChanged -= BoxTextTextChanged;

            this.slot = slot;
            Item item = ((slot != null) ? slot.Item : null);

            btnRandom.Enabled = (item != null);
            btnBold.Enabled = (item != null);
            btnStrike.Enabled = (item != null);
            btnUnderline.Enabled = (item != null);
            btnItalic.Enabled = (item != null);
            btnReset.Enabled = (item != null);

            btnPreview.Enabled = (item != null);

            btnBlack.Enabled = (item != null);
            btnDarkBlue.Enabled = (item != null);
            btnDarkGreen.Enabled = (item != null);
            btnDarkAqua.Enabled = (item != null);
            btnDarkRed.Enabled = (item != null);
            btnPurple.Enabled = (item != null);
            btnGold.Enabled = (item != null);
            btnGray.Enabled = (item != null);
            btnDarkGray.Enabled = (item != null);
            btnIndigo.Enabled = (item != null);
            btnBrightGreen.Enabled = (item != null);
            btnAqua.Enabled = (item != null);
            btnRed.Enabled = (item != null);
            btnPink.Enabled = (item != null);
            btnYellow.Enabled = (item != null);
            btnWhite.Enabled = (item != null);

            if (item != null && (item.ID == 386 || item.ID == 387)) {
                string title = "";
                string author = "";
                int pages = 0;
                string pageText = "";

                if (!item.tag.Contains("tag")) item.tag["tag"] = NbtTag.CreateCompound();
                NbtTag tag = item.tag["tag"];
                if (item.ID == 387) {
                    if (!tag.Contains("title")) tag.Add("title", "");
                    if (!tag.Contains("author")) tag.Add("author", "");
                    title = (string)tag["title"];
                    author = (string)tag["author"];
                }
                if (!tag.Contains("pages"))
                    tag["pages"] = NbtTag.CreateList(NbtTagType.String);
                if (tag["pages"].Count == 0)
                    tag["pages"].Add("");
                page = 0;
                pages = tag["pages"].Count;
                pageText = ((string)tag["pages"][page]).Replace("\n", "\r\n");

                boxTitle.Text = title;
                boxTitle.Enabled = (item.ID == 387);
                boxAuthor.Text = author;
                boxAuthor.Enabled = (item.ID == 387);
                boxSigned.Checked = (item.ID == 387);
                boxSigned.Enabled = true;
                boxText.Text = pageText;
                boxText.Enabled = true;
                labelPage.Text = "Page " + (page + 1) + " of " + pages;
                btnNext.Enabled = true;

                btnRandom.Enabled = true;
                btnBold.Enabled = true;
                btnStrike.Enabled = true;
                btnUnderline.Enabled = true;
                btnItalic.Enabled = true;
                btnReset.Enabled = true;

                btnPreview.Enabled = true;

                btnBlack.Enabled = true;
                btnDarkBlue.Enabled = true;
                btnDarkGreen.Enabled = true;
                btnDarkAqua.Enabled = true;
                btnDarkRed.Enabled = true;
                btnPurple.Enabled = true;
                btnGold.Enabled = true;
                btnGray.Enabled = true;
                btnDarkGray.Enabled = true;
                btnIndigo.Enabled = true;
                btnBrightGreen.Enabled = true;
                btnAqua.Enabled = true;
                btnRed.Enabled = true;
                btnPink.Enabled = true;
                btnYellow.Enabled = true;
                btnWhite.Enabled = true;

            } else {
                boxTitle.Text = "";
                boxTitle.Enabled = false;
                boxAuthor.Text = "";
                boxAuthor.Enabled = false;
                boxSigned.Checked = false;
                boxSigned.Enabled = false;
                boxText.Text = "";
                boxText.Enabled = false;
                labelPage.Text = "Page 0 of 0";
                btnPrevious.Enabled = false;
                btnNext.Enabled = false;
                btnPreview.Enabled = false;

                btnRandom.Enabled = false;
                btnBold.Enabled = false;
                btnStrike.Enabled = false;
                btnUnderline.Enabled = false;
                btnItalic.Enabled = false;
                btnReset.Enabled = false;

                btnPreview.Enabled = false;

                btnBlack.Enabled = false;
                btnDarkBlue.Enabled = false;
                btnDarkGreen.Enabled = false;
                btnDarkAqua.Enabled = false;
                btnDarkRed.Enabled = false;
                btnPurple.Enabled = false;
                btnGold.Enabled = false;
                btnGray.Enabled = false;
                btnDarkGray.Enabled = false;
                btnIndigo.Enabled = false;
                btnBrightGreen.Enabled = false;
                btnAqua.Enabled = false;
                btnRed.Enabled = false;
                btnPink.Enabled = false;
                btnYellow.Enabled = true;
                btnWhite.Enabled = true;

            }

            boxTitle.TextChanged += BoxTitleTextChanged;
            boxAuthor.TextChanged += BoxAuthorTextChanged;
            boxSigned.CheckedChanged += BoxSignedCheckedChanged;
            boxText.TextChanged += BoxTextTextChanged;
        }
コード例 #9
0
ファイル: ItemDataForm.cs プロジェクト: DHIteration/INVedit
        public void Update(ItemSlot slot)
        {
            boxName.TextChanged -= BoxNameTextChanged;
            boxLore.TextChanged -= BoxLoreTextChanged;
            boxColor.TextChanged -= BoxColorTextChanged;
            boxPlayer.TextChanged -= BoxPlayerTextChanged;

            this.slot = slot;
            Item item = ((slot != null) ? slot.Item : null);

            boxName.Text = "";
            boxLore.Text = "";
            boxColor.Text = "";
            panelColor.BackColor = Color.Transparent;
            boxPlayer.Text = "";

            boxName.Enabled = (item != null);
            boxLore.Enabled = (item != null);
            boxColor.Enabled = (item != null && (item.ID == 298 || item.ID == 299 || item.ID == 300 || item.ID == 301));

            panelColor.Enabled = boxColor.Enabled;
            boxPlayer.Enabled = (item != null && item.ID == 397);
            btnPreview.Enabled = (item != null && item.ID == 397);

            btnRandom.Enabled = (item != null);
            btnBold.Enabled = (item != null);
            btnStrike.Enabled = (item != null);
            btnUnderline.Enabled = (item != null);
            btnItalic.Enabled = (item != null);
            btnReset.Enabled = (item != null);

            btnBlack.Enabled = (item != null);
            btnDarkBlue.Enabled = (item != null);
            btnDarkGreen.Enabled = (item != null);
            btnDarkAqua.Enabled = (item != null);
            btnDarkRed.Enabled = (item != null);
            btnPurple.Enabled = (item != null);
            btnGold.Enabled = (item != null);
            btnGray.Enabled = (item != null);
            btnDarkGray.Enabled = (item != null);
            btnIndigo.Enabled = (item != null);
            btnBrightGreen.Enabled = (item != null);
            btnAqua.Enabled = (item != null);
            btnRed.Enabled = (item != null);
            btnPink.Enabled = (item != null);
            btnYellow.Enabled = (item != null);
            btnWhite.Enabled = (item != null);

            if (item != null && item.tag.Contains("tag")) {
                var tag = item.tag["tag"];
                if (tag.Contains("display")) {
                    var display = tag["display"];
                    if (display.Contains("Name"))
                        boxName.Text = (string)display["Name"];
                    if (display.Contains("Lore"))
                        boxLore.Lines = display["Lore"].Select((t) => (string)t).ToArray();
                    if (boxColor.Enabled && display.Contains("color")) {
                        int c = (int)display["color"];
                        Color color = Color.FromArgb(c >> 16, (c >> 8) & 0xFF, c & 0xFF);
                        boxColor.Text = (color.ToArgb() & 0xFFFFFF).ToString("X6");
                        panelColor.BackColor = color;
                    }
                }
                if (boxPlayer.Enabled && tag.Contains("SkullOwner"))
                    boxPlayer.Text = (string)tag["SkullOwner"];
            }

            boxName.TextChanged += BoxNameTextChanged;
            boxLore.TextChanged += BoxLoreTextChanged;
            boxColor.TextChanged += BoxColorTextChanged;
            boxPlayer.TextChanged += BoxPlayerTextChanged;
        }
コード例 #10
0
ファイル: FireworkForm.cs プロジェクト: DHIteration/INVedit
        public void Update(ItemSlot slot)
        {
            this.slot = slot;
            Item item = ((slot != null) ? slot.Item : null);

            if (item == null)
                return;

            boxType.Items.Clear();
            foreach (var kvp in Data.fireworkdesigns)
            {
                var design = kvp.Value;
                    boxType.Items.Add(design);
            }

            lvwColors.Items.Clear();
            boxType.Text = "";
            chkFlicker.Checked = false;
            chkTrail.Checked = false;
            editFlight.Value = 3;
            boxType.SelectedIndex = 0;
            editFlight.Enabled = (item != null && item.ID == 401);
            boxType.Enabled = (item != null && item.ID == 401 || item.ID == 402);
            chkFlicker.Enabled = (item != null && item.ID == 401 || item.ID == 402);
            chkTrail.Enabled = (item != null && item.ID == 401 || item.ID == 402);
            lvwColors.Enabled = (item != null && item.ID == 401 || item.ID == 402);
            btnAdd.Enabled = (item != null && item.ID == 401 || item.ID == 402);
            btnRemove.Enabled = (item != null && item.ID == 401 || item.ID == 402);

            if (item.ID == 401)
            {
                if (item != null && item.tag.Contains("tag"))
                {
                    var tag = item.tag["tag"];
                    if (tag.Contains("Fireworks"))
                    {
                        var fireworks = tag["Fireworks"];

                        if (fireworks.Contains("Flight"))
                            editFlight.Value = (byte)fireworks["Flight"];

                        if (tag.Contains("Fireworks") && tag["Fireworks"].Contains("Explosions"))
                        {

                            foreach (var explosion in tag["Fireworks"]["Explosions"])
                            {

                                if (explosion.Contains("Trail"))
                                {
                                    byte trail = (byte)explosion["Trail"];
                                    chkTrail.Checked = Convert.ToBoolean(trail);
                                }

                                if (explosion.Contains("Type"))
                                {
                                    byte type = (byte)explosion["Type"];
                                    boxType.SelectedIndex = type;
                                }

                                if (explosion.Contains("Flicker"))
                                {
                                    byte flicker = (byte)explosion["Flicker"];
                                    chkFlicker.Checked = Convert.ToBoolean(flicker);

                                }

                                if (explosion.Contains("Colors"))
                                {
                                    int[] colors = (int[])explosion["Colors"];

                                    for (int i = 0; i < colors.Length; i++)
                                    {
                                        lvwColors.Items.Add(colors[i].ToString("X6"));
                                        lvwColors.Items[i].BackColor = ColorTranslator.FromHtml("#" + colors[i].ToString("X6"));
                                    }
                                }
                            }
                        }
                    }
                }

            }
            else if (item.ID == 402)
            {

                if (item != null && item.tag.Contains("tag"))
                {
                    var tag = item.tag["tag"];

                        if (tag.Contains("Explosion"))
                        {

                            tag = item.tag["tag"]["Explosion"];

                            if (tag.Contains("Trail"))
                            {
                                byte trail = (byte)tag["Trail"];
                                chkTrail.Checked = Convert.ToBoolean(trail);
                            }

                            if (tag.Contains("Type"))
                            {
                                byte type = (byte)tag["Type"];
                                boxType.SelectedIndex = type;
                            }

                            if (tag.Contains("Flicker"))
                            {
                                byte flicker = (byte)tag["Flicker"];
                                chkFlicker.Checked = Convert.ToBoolean(flicker);
                            }

                            if (tag.Contains("Colors"))
                            {
                                int[] colors = (int[]) tag["Colors"];

                                for (int i = 0; i < colors.Length; i++)
                                {
                                    lvwColors.Items.Add(colors[i].ToString("X6"));
                                    lvwColors.Items[i].BackColor = ColorTranslator.FromHtml("#" + colors[i].ToString("X6"));
                                }
                            }

                    }
                }
            }
        }
コード例 #11
0
ファイル: Page.cs プロジェクト: Nhale/INVedit
 void ItemDragDrop(ItemSlot slot)
 {
     if (((TabControl)Parent).SelectedTab != this)
         SelectionChanged(slot, new EventArgs());
 }
コード例 #12
0
ファイル: Page.cs プロジェクト: Nhale/INVedit
 void CreateSlot(byte slot, int x, int y, Image def)
 {
     ItemSlot itemSlot = new ItemSlot(slot){ Location = new Point(x, y), Default = def, UseVisualStyleBackColor = true };
     itemSlot.GotFocus += SelectionChanged;
     itemSlot.DragDone += ItemDragDrop;
     itemSlot.Changed += delegate(ItemSlot s) {
         SelectionChanged(s, new EventArgs());
     };
     boxInventory.Controls.Add(itemSlot);
     slots.Add(slot, itemSlot);
 }