示例#1
0
 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);
         }
     }
 }
示例#2
0
 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);
     }
 }
示例#3
0
 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);
 }
示例#4
0
        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();
        }
示例#5
0
 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);
             }
         }
     }
 }
示例#6
0
        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();
        }
示例#7
0
        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);
        }