Пример #1
0
 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);
 }
Пример #2
0
 //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;
             }
         }
     }
 }
Пример #3
0
        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);
        }