public static bool Prefix(ref bool __result, int cornerX, int cornerZ, Map map) { //public static bool IsCornerTouchAllowed(int cornerX, int cornerZ, int adjCardinal1X, int adjCardinal1Z, int adjCardinal2X, int adjCardinal2Z, Map map) if (map.thingGrid.ThingsAt(new IntVec3(cornerX, 0, cornerZ)) .Any(t => TouchPathEndModeUtility.MakesOccupiedCellsAlwaysReachableDiagonally(t.def))) { __result = true; return(false); } return(true); }
//public static bool IsCornerTouchAllowed(int cornerX, int cornerZ, int adjCardinal1X, int adjCardinal1Z, int adjCardinal2X, int adjCardinal2Z, PathingContext pc) public static void Postfix(ref bool __result, int cornerX, int cornerZ, PathingContext pc) { if (!__result) { foreach (Thing thing in pc.map.thingGrid.ThingsListAtFast(new IntVec3(cornerX, 0, cornerZ))) { if (thing is Blueprint || thing is Frame && TouchPathEndModeUtility.MakesOccupiedCellsAlwaysReachableDiagonally(thing.def)) { __result = true; return; } } } }
public static bool Prefix(ref bool __result, int cornerX, int cornerZ, PathingContext pc) { if (!Settings.Get().ReplaceStuff_CornerBuildable) { return(true); } //public static bool IsCornerTouchAllowed(int cornerX, int cornerZ, int adjCardinal1X, int adjCardinal1Z, int adjCardinal2X, int adjCardinal2Z, Map map) if (pc.map.thingGrid.ThingsAt(new IntVec3(cornerX, 0, cornerZ)) .Any(t => TouchPathEndModeUtility.MakesOccupiedCellsAlwaysReachableDiagonally(t.def))) { __result = true; return(false); } return(true); }