public static void Postfix(ref AcceptanceReport __result, Designator_RemoveBridge __instance, IntVec3 c) { if (c.InBounds(__instance.Map) && c.GetTerrain(__instance.Map) == TerrainDefOf.ConcreteBridge) { __result = true; RoadsOfTheRim.DebugLog(c.GetTerrain(__instance.Map).label); } }
public static bool Prefix(ref AcceptanceReport __result, Designator_RemoveBridge __instance, IntVec3 c) { if (c.InBounds(__instance.Map) && c.GetTerrain(__instance.Map).IsBiomesBridge()) { __result = (AcceptanceReport)BaseCanDesignateCellInfo.Invoke(null, new object[] { __instance, c }); return(false); } return(true); }
public static bool Prefix(IntVec3 c, ref AcceptanceReport __result, ref Designator_RemoveBridge __instance) { var terrainDef = c.GetTerrain(__instance.Map); if (Prefs.DevMode) { Log.Message($"terrainDef: {terrainDef}"); } if (!terrainDef.defName.StartsWith("HeavyBridge") && !terrainDef.defName.StartsWith("DeepWaterBridge")) { return(true); } __result = AcceptanceReport.WasAccepted; if (!c.InBounds(__instance.Map) || c.Fogged(__instance.Map)) { __result = false; } if (__instance.Map.designationManager.DesignationAt(c, DesignationDefOf.RemoveFloor) != null) { __result = false; } var edifice = c.GetEdifice(__instance.Map); if (edifice != null && edifice.def.Fillage == FillCategory.Full && edifice.def.passability == Traversability.Impassable) { __result = false; } if (!__instance.Map.terrainGrid.CanRemoveTopLayerAt(c)) { __result = "TerrainMustBeRemovable".Translate(); } if (WorkGiver_ConstructRemoveFloor.AnyBuildingBlockingFloorRemoval(c, __instance.Map)) { __result = false; } return(false); }