//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; } }