private void HideChildren(object sender, RuleCategoryController category) { if (Def != category.GetFieldValue <RuleCategoryDef>("currentCategory")) { return; } _children.ForEach(child => { var controller = _controllers?.FirstOrDefault(c => c.GetFieldValue <RuleCategoryDef>("currentCategory") == child.Def); controller.SetFieldValue("collapsed", true); if (controller) { controller.gameObject.SetActive(!category.GetFieldValue <bool>("collapsed")); } child.HideChildren(null, controller); }); }
private static void _hookToggleCollapsed_RuleCategoryController(On.RoR2.UI.RuleCategoryController.orig_ToggleCollapsed orig, RuleCategoryController self) { orig(self); CollapseCategory?.Invoke(null, self); }
private static void HookTogglePopoutPanel_RuleCategoryController(On.RoR2.UI.RuleCategoryController.orig_TogglePopoutPanel orig, RuleCategoryController self) { orig(self); CollapseCategory?.Invoke(null, self); }