//public static bool BlocksConstruction(Thing constructible, Thing t)
        public static void Postfix(Thing constructible, Thing t, ref bool __result)
        {
            if (!__result)
            {
                return;
            }

            BuildableDef cDef = constructible.def.entityDefToBuild ?? constructible.def;
            BuildableDef tDef = t.def.entityDefToBuild ?? t.def;

            //Power conduit sharing is hardcoded, so cooler sharing is hardcoded too
            if ((cDef.IsWall() && tDef.IsOverWall()) ||
                (tDef.IsWall() && cDef.IsOverWall()))
            {
                __result = false;
            }
        }
        //public static bool CanPlaceBlueprintOver(BuildableDef newDef, ThingDef oldDef)
        public static void Postfix(BuildableDef newDef, ThingDef oldDef, ref bool __result)
        {
            if (__result)
            {
                return;
            }

            BuildableDef oldBuildDef = GenConstruct.BuiltDefOf(oldDef);

            if (oldDef.category == ThingCategory.Building || oldDef.IsBlueprint || oldDef.IsFrame)
            {
                //Power conduit sharing is hardcoded, so cooler sharing is hardcoded too
                if ((newDef.IsOverWall() && oldBuildDef.IsWall()) || (newDef.IsWall() && oldBuildDef.IsOverWall()))
                {
                    __result = true;
                }
            }
        }
        //public static bool SpawningWipes(BuildableDef newEntDef, BuildableDef oldEntDef)
        public static void Postfix(BuildableDef newEntDef, BuildableDef oldEntDef, ref bool __result)
        {
            if (!__result)
            {
                return;
            }

            ThingDef     newDef      = newEntDef as ThingDef;
            ThingDef     oldDef      = oldEntDef as ThingDef;
            BuildableDef newBuiltDef = GenConstruct.BuiltDefOf(newDef);
            BuildableDef oldBuiltDef = GenConstruct.BuiltDefOf(oldDef);

            //Power conduit sharing is hardcoded, so cooler sharing is hardcoded too
            if ((newBuiltDef.IsOverWall() && oldBuiltDef.IsWall()) ||
                (newBuiltDef.IsWall() && oldBuiltDef.IsOverWall()))
            {
                __result = false;
            }
        }