private void IterativeBuildModTree(ItemData.ItemModData nodeData, TreeNode rootNode) { foreach (ItemData.ItemModData childNode in nodeData.Children) { var newNode = rootNode.Nodes.Add(childNode.AttachmentSlotName + " :: " + childNode.ItemName + " [" + childNode.ChildrenCount.ToString() + "]"); newNode.Tag = childNode; if (childNode.ChildrenCount > 0) { IterativeBuildModTree(childNode, newNode); } } }
private void newModNodeButton_Click(object sender, EventArgs e) { if (modsTreeView.SelectedNode == null) { MessageBox.Show("Must select parent node."); } else { var newNode = new ItemData.ItemModData(); ((ItemData.ItemModData)modsTreeView.SelectedNode.Tag).Children.Add(newNode); ReloadData(); var nodeDialog = new ModNodeDetails(); nodeDialog.LoadNode(newNode, ReloadData, activeSaveFile); } }
public static void WriteItemModData(BinaryWriter writer, ItemData.ItemModData data) { writer.Write(data.ItemTdbId); WriteHeaderThing(writer, data.Header); writer.WritePackedString(data.UnknownString); writer.Write(data.AttachmentSlotTdbId); writer.WritePackedInt(data.ChildrenCount); foreach (var kind2DataNode in data.Children) { WriteItemModData(writer, kind2DataNode); } writer.Write(data.Unknown2); writer.Write(data.TdbId2); writer.Write(data.Unknown3); writer.Write(data.Unknown4); }
public void LoadNode(ItemData.ItemModData node, Func <bool> callback) { activeNode = node; callbackFunc = callback; attachmentNameLabel.Text = node.AttachmentSlotName; attachmentIdBox.Text = node.AttachmentSlotTdbId.Raw64.ToString(); item1NameLabel.Text = node.ItemName; item1IdBox.Text = node.ItemTdbId.Raw64.ToString(); unknown1Box.Text = node.Unknown2.ToString(); unknown2Box.Text = node.Unknown3.ToString(); unknown3Box.Text = node.Unknown4.ToString(); this.Text = node.AttachmentSlotName + " :: " + node.ItemName; this.ShowDialog(); }
private void IterativeDeleteModNode(ItemData.ItemModData targetNode, ItemData.ItemModData rootNode) { if (rootNode.Children.Contains(targetNode)) { rootNode.Children.Remove(targetNode); } else { foreach (ItemData.ItemModData childNode in rootNode.Children) { if (childNode.ChildrenCount > 0) { IterativeDeleteModNode(targetNode, childNode); } } } }
public void LoadNode(ItemData.ItemModData node, Func <bool> callback, object saveFileObj) { activeNode = node; callbackFunc = callback; activeSaveFile = (SaveFileHelper)saveFileObj; attachmentNameLabel.Text = node.AttachmentSlotTdbId.Name; attachmentIdBox.Text = node.AttachmentSlotTdbId.Raw64.ToString(); if (node.ItemTdbId.GameName.Length > 0) { item1NameLabel.Text = node.ItemTdbId.GameName; } else { item1NameLabel.Text = node.ItemTdbId.Name; } item1IdBox.Text = node.ItemTdbId.Raw64.ToString(); unknownIDBox.Text = node.TdbId2.Raw64.ToString(); unknown1Box.Text = node.Unknown2.ToString(); unknown2Box.Text = node.Unknown3.ToString(); unknown3Box.Text = node.Unknown4.ToString(); unknown4Box.Text = node.UnknownString; object resolvedStats = null; if (Form1.statsSystemEnabled) { resolvedStats = activeSaveFile.GetStatsFromSeed(node.Header.Seed); } if (resolvedStats != null) { resolvedItemLabel.Text = "View Details"; } else { resolvedItemLabel.Enabled = false; } this.Text = node.AttachmentSlotTdbId.Name + " :: " + node.ItemTdbId.Name; this.ShowDialog(); }
public static ItemData.ItemModData ReadKind2DataNode(BinaryReader reader) { var result = new ItemData.ItemModData(); result.ItemTdbId = reader.ReadTweakDbId(); result.Header = ReadHeaderThing(reader); result.UnknownString = reader.ReadPackedString(); result.AttachmentSlotTdbId = reader.ReadTweakDbId(); var count = reader.ReadPackedInt(); for (var i = 0; i < count; ++i) { result.Children.Add(ReadKind2DataNode(reader)); } result.Unknown2 = reader.ReadUInt32(); result.TdbId2 = reader.ReadTweakDbId(); result.Unknown3 = reader.ReadUInt32(); result.Unknown4 = reader.ReadSingle(); return(result); }
public static ItemData.ItemModData ReadKind2DataNode(BinaryReader reader) { var result = new ItemData.ItemModData(); result.ItemTdbId = reader.ReadUInt64(); result.Header = ReadHeaderThing(reader); result.UnknownString = ParserUtils.ReadString(reader); result.AttachmentSlotTdbId = reader.ReadUInt64(); var count = ParserUtils.ReadPackedLong(reader); result.Children = new ItemData.ItemModData[count]; for (var i = 0; i < count; ++i) { result.Children[i] = ReadKind2DataNode(reader); } result.Unknown2 = reader.ReadUInt32(); result.TdbId2 = reader.ReadUInt64(); result.Unknown3 = reader.ReadUInt32(); result.Unknown4 = reader.ReadUInt32(); return(result); }