public static bool ShouldShowSpots(MainTabsRoot __instance) { if (__instance.OpenTab == null) { return(false); } if (string.Equals(__instance.OpenTab.defName, "Architect")) { return(true); } if (string.Equals(__instance.OpenTab.defName, "Inspect")) { Thing _FirstThing = Find.Selector.FirstSelectedObject as Thing; if (_FirstThing != null) { if (String.Equals(_FirstThing.def.defName, "MarriageSpot") || String.Equals(_FirstThing.def.defName, "PartySpot") || String.Equals(_FirstThing.def.defName, "CaravanPackingSpot")) { return(true); } } } return(false); }
// postfix public static void SetDrawStatusPostfix(MainTabsRoot __instance) { if (PatchMainTabsRoot.ShouldShowSpots(__instance)) { ThingDefOf.MarriageSpot.drawerType = DrawerType.MapMeshAndRealTime; ThingDefOf.CaravanPackingSpot.drawerType = DrawerType.MapMeshAndRealTime; ThingDefOf.PartySpot.drawerType = DrawerType.MapMeshAndRealTime; PatchMainTabsRoot.MarkMapMeshAsDirty(); } else { ThingDefOf.MarriageSpot.drawerType = DrawerType.None; ThingDefOf.CaravanPackingSpot.drawerType = DrawerType.None; ThingDefOf.PartySpot.drawerType = DrawerType.None; PatchMainTabsRoot.MarkMapMeshAsDirty(); } }