public static void FinalizeInit()
		{
			ThingCategoryNodeDatabase.rootNode = ThingCategoryDefOf.Root.treeNode;
			foreach (ThingCategoryDef current in DefDatabase<ThingCategoryDef>.AllDefs)
			{
				if (current.parent != null)
				{
					current.parent.childCategories.Add(current);
				}
			}
			ThingCategoryNodeDatabase.SetNestLevelRecursive(ThingCategoryNodeDatabase.rootNode, 0);
			foreach (ThingDef current2 in DefDatabase<ThingDef>.AllDefs)
			{
				if (current2.thingCategories != null)
				{
					foreach (ThingCategoryDef current3 in current2.thingCategories)
					{
						current3.childThingDefs.Add(current2);
					}
				}
			}
			foreach (SpecialThingFilterDef current4 in DefDatabase<SpecialThingFilterDef>.AllDefs)
			{
				current4.parentCategory.childSpecialFilters.Add(current4);
			}
			if (ThingCategoryNodeDatabase.rootNode.catDef.childCategories.Any<ThingCategoryDef>())
			{
				ThingCategoryNodeDatabase.rootNode.catDef.childCategories[0].treeNode.SetOpen(-1, true);
			}
			ThingCategoryNodeDatabase.initialized = true;
		}
Ejemplo n.º 2
0
 public static void FinalizeInit()
 {
     ThingCategoryNodeDatabase.rootNode = ThingCategoryDefOf.Root.treeNode;
     foreach (ThingCategoryDef allDef in DefDatabase <ThingCategoryDef> .AllDefs)
     {
         if (allDef.parent != null)
         {
             allDef.parent.childCategories.Add(allDef);
         }
     }
     ThingCategoryNodeDatabase.SetNestLevelRecursive(ThingCategoryNodeDatabase.rootNode, 0);
     foreach (ThingDef allDef2 in DefDatabase <ThingDef> .AllDefs)
     {
         if (allDef2.thingCategories != null)
         {
             foreach (ThingCategoryDef thingCategory in allDef2.thingCategories)
             {
                 thingCategory.childThingDefs.Add(allDef2);
             }
         }
     }
     foreach (SpecialThingFilterDef allDef3 in DefDatabase <SpecialThingFilterDef> .AllDefs)
     {
         allDef3.parentCategory.childSpecialFilters.Add(allDef3);
     }
     ThingCategoryNodeDatabase.rootNode.catDef.childCategories[0].treeNode.SetOpen(-1, true);
     ThingCategoryNodeDatabase.initialized = true;
 }
		private static void SetNestLevelRecursive(TreeNode_ThingCategory node, int nestDepth)
		{
			foreach (ThingCategoryDef current in node.catDef.childCategories)
			{
				current.treeNode.nestDepth = nestDepth;
				ThingCategoryNodeDatabase.SetNestLevelRecursive(current.treeNode, nestDepth + 1);
			}
		}