Example #1
0
 private void LoadTagBlockValuesAsNodes(TreeNodeCollection treeNodeCollection, TagBlock block)
 {
     //Add this TagBlock (chunk) to the Nodes
     treeNodeCollection.Add(block.ToString());
     int index = treeNodeCollection.Count - 1;
     treeNodeCollection[index].ContextMenuStrip = chunkMenu;
     //Add the TagBlock (chunk) object to the Tag to let use edit it directly from the node
     treeNodeCollection[index].Tag = block;
     //Values might be null, dealio
     if (block.Values == null) return;
     foreach (Value val in block.Values)
     {
         //the Values can be a bunch of things, we only want the ones that are TagBlockArrays (reflexives)
         if (val is TagBlockArray)
         {
             treeNodeCollection[index].Nodes.Add(val.ToString());
             treeNodeCollection[index].Nodes[treeNodeCollection[index].Nodes.Count - 1].ContextMenuStrip = reflexiveMenu;
             //Add the TagBlockArray object (reflexive) to the Tag to let us edit it directly from the node
             treeNodeCollection[index].Nodes[treeNodeCollection[index].Nodes.Count - 1].Tag = val;
             //TagBlocks also might be null, dealio
             if ((val as TagBlockArray).TagBlocks == null) continue;
             foreach (TagBlock tagBlock in (val as TagBlockArray).TagBlocks)
             {
                 //Recurse
                 LoadTagBlockValuesAsNodes(treeNodeCollection[index].Nodes[treeNodeCollection[index].Nodes.Count - 1].Nodes, tagBlock);
             }
         }
     }
 }
Example #2
0
        void ProcessTagBlocks(BlamLib.CheApe.ProjectState state, IO.XmlStream s)
        {
            foreach (XmlNode n in s.Cursor.ChildNodes)
            {
                if (n.Name != "TagBlock")
                {
                    continue;
                }

                s.SaveCursor(n);
                var block = new TagBlock(state, s);
                s.RestoreCursor();
                string name_str = block.ToString();

                try { Blocks.Add(name_str, block); }
                catch (ArgumentException) { Debug.LogFile.WriteLine(CheApe.Import.kDuplicateErrorStr, "tag block definition", name_str); }
            }
        }
Example #3
0
		protected override void ProcessDefinition(XmlNode node, BlamLib.CheApe.ProjectState state, BlamLib.IO.XmlStream s)
		{
			StringIdFieldsInitialize(state);

			string name_str;

			switch (node.Name)
			{
				#region Tag Structs
				case "structs":
					s.SaveCursor(node);
					foreach (XmlNode n in s.Cursor.ChildNodes)
					{
						if (n.Name != "Struct") continue;

						s.SaveCursor(n);
						TagStruct block = new TagStruct(state, s);
						s.RestoreCursor();
						name_str = block.ToString();

						try { Structs.Add(name_str, block); }
						catch (ArgumentException) { Debug.LogFile.WriteLine(CheApe.Import.kDuplicateErrorStr, "tag struct definition", name_str); }
					}
					s.RestoreCursor();
					break;
				#endregion

				#region Tag Blocks
				case "blocks":
					s.SaveCursor(node);
					foreach (XmlNode n in s.Cursor.ChildNodes)
					{
						if (n.Name != "TagBlock") continue;

						s.SaveCursor(n);
						TagBlock block = new TagBlock(state, s);
						s.RestoreCursor();
						name_str = block.ToString();

						try { Blocks.Add(name_str, block); }
						catch (ArgumentException) { Debug.LogFile.WriteLine(CheApe.Import.kDuplicateErrorStr, "tag block definition", name_str); }
					}
					s.RestoreCursor();
					break;
				#endregion

				#region Tag Groups
				case "groups":
					s.SaveCursor(node);
					foreach (XmlNode n in s.Cursor.ChildNodes)
					{
						if (n.Name != "TagGroup") continue;

						s.SaveCursor(n);
						TagGroup group = new TagGroup(state, s);
						s.RestoreCursor();
						name_str = group.ToString();

						try { Groups.Add(name_str, group); }
						catch (ArgumentException) { Debug.LogFile.WriteLine(CheApe.Import.kDuplicateErrorStr, "tag group definition", name_str); }
					}
					s.RestoreCursor();
					break;
				#endregion
			}
		}
        protected override void ProcessDefinition(XmlNode node, BlamLib.CheApe.ProjectState state, BlamLib.IO.XmlStream s)
        {
            StringIdFieldsInitialize(state);

            string name_str;

            switch (node.Name)
            {
                #region Tag Structs
            case "structs":
                s.SaveCursor(node);
                foreach (XmlNode n in s.Cursor.ChildNodes)
                {
                    if (n.Name != "Struct")
                    {
                        continue;
                    }

                    s.SaveCursor(n);
                    TagStruct block = new TagStruct(state, s);
                    s.RestoreCursor();
                    name_str = block.ToString();

                    try { Structs.Add(name_str, block); }
                    catch (ArgumentException) { Debug.LogFile.WriteLine(CheApe.Import.kDuplicateErrorStr, "tag struct definition", name_str); }
                }
                s.RestoreCursor();
                break;
                #endregion

                #region Tag Blocks
            case "blocks":
                s.SaveCursor(node);
                foreach (XmlNode n in s.Cursor.ChildNodes)
                {
                    if (n.Name != "TagBlock")
                    {
                        continue;
                    }

                    s.SaveCursor(n);
                    TagBlock block = new TagBlock(state, s);
                    s.RestoreCursor();
                    name_str = block.ToString();

                    try { Blocks.Add(name_str, block); }
                    catch (ArgumentException) { Debug.LogFile.WriteLine(CheApe.Import.kDuplicateErrorStr, "tag block definition", name_str); }
                }
                s.RestoreCursor();
                break;
                #endregion

                #region Tag Groups
            case "groups":
                s.SaveCursor(node);
                foreach (XmlNode n in s.Cursor.ChildNodes)
                {
                    if (n.Name != "TagGroup")
                    {
                        continue;
                    }

                    s.SaveCursor(n);
                    TagGroup group = new TagGroup(state, s);
                    s.RestoreCursor();
                    name_str = group.ToString();

                    try { Groups.Add(name_str, group); }
                    catch (ArgumentException) { Debug.LogFile.WriteLine(CheApe.Import.kDuplicateErrorStr, "tag group definition", name_str); }
                }
                s.RestoreCursor();
                break;
                #endregion
            }
        }
Example #5
0
		void ProcessTagBlocks(BlamLib.CheApe.ProjectState state, IO.XmlStream s)
		{
			foreach (XmlNode n in s.Cursor.ChildNodes)
			{
				if (n.Name != "TagBlock") continue;

				s.SaveCursor(n);
				var block = new TagBlock(state, s);
				s.RestoreCursor();
				string name_str = block.ToString();

				try { Blocks.Add(name_str, block); }
				catch (ArgumentException) { Debug.LogFile.WriteLine(CheApe.Import.kDuplicateErrorStr, "tag block definition", name_str); }
			}
		}