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; }
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; }
void Change(ItemSlot slot) { if (enchantForm != null) enchantForm.Update(slot); if (editForm != null) editForm.Update(slot); if (itemDataForm != null) itemDataForm.Update(slot); }
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); }
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); }
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; }
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; }
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; }
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; }
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")); } } } } } }
void ItemDragDrop(ItemSlot slot) { if (((TabControl)Parent).SelectedTab != this) SelectionChanged(slot, new EventArgs()); }
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); }