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; }
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); } }