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 BtnItemDataClick(object sender, EventArgs e) { btnItemData.Enabled = false; itemDataForm = new ItemDataForm(); itemDataForm.Closed += delegate { btnItemData.Enabled = true; itemDataForm = null; }; if (tabControl.SelectedTab != null) itemDataForm.Update(((Page)tabControl.SelectedTab).selected); itemDataForm.Show(this); }*/ 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; }