public static void Prefix() { FloatMenu floatMenu = Find.WindowStack.FloatMenu; if (floatMenu != null && !floatMenu.GetType().IsSubclassOf(typeof(FloatMenu))) { floatMenu.Close(false); } }
private static void Postfix(ref float __result, UnityEngine.Rect leftRect, Pawn pawn, float curY) { if (!Registry.IsActive) { return; } FloatMenu overviewWindowStack = Find.WindowStack.FloatMenu; if (overviewWindowStack == null) { return; } List <FloatMenuOption> overviewWindowStackOptions = (List <FloatMenuOption>) typeof(FloatMenu).GetField("options", BindingFlags.NonPublic | BindingFlags.Instance).GetValue(overviewWindowStack); if (overviewWindowStackOptions?.Count > 0 && overviewWindowStackOptions.Last().Label.Equals("ManageFoodRestrictions".Translate())) { overviewWindowStack.Close(false); Dialog_Rules.Open(pawn); } }