1.5, added stuff, fixed stuff

- mod icon
- fixes for new vanilla clipping issues
- GenClosest optimization improving repairing, wardening, tending jobs
- caching for new ListerBuildings methods
- DynamicDrawManager single threading
- Type.GetFields caching
- StatParts analyzer category
- removed duplicate steam warning and optionally window
- added exception handling for debug menu, incidentworker, Graphic_Multi, InitializeComps, making all those now log what mod broke and not cause black screens or whatever
This commit is contained in:
bbradson
2024-04-27 22:31:07 +02:00
parent be3dae46bb
commit d34bc77869
76 changed files with 3061 additions and 1134 deletions
@@ -26,14 +26,23 @@ public sealed class IdeoBuildingPresenceDemandOptimization : ClassWithFishPrepat
public static bool ReplacementBody(IdeoBuildingPresenceDemand __instance, Map map)
{
var buildings = map.listerBuildings.AllBuildingsColonistOfDef(__instance.parent.ThingDef);
var parentBuilding = __instance.parent;
var buildings = map.listerBuildings.AllBuildingsColonistOfDef(parentBuilding.ThingDef);
#if !V1_4
for (var i = buildings.Count; i-- > 0;)
{
if (buildings[i].StyleSourcePrecept == parentBuilding)
return true;
}
return false;
#else
if (buildings is IndexedFishSet<Building> fishSet)
{
var list = fishSet.ReadOnlyList;
for (var i = list.Count; i-- > 0;)
{
if (list[i].StyleSourcePrecept == __instance.parent)
if (list[i].StyleSourcePrecept == parentBuilding)
return true;
}
@@ -43,17 +52,21 @@ public sealed class IdeoBuildingPresenceDemandOptimization : ClassWithFishPrepat
{
return FallbackCheck(__instance, buildings);
}
#endif
}
#if V1_4
public static bool FallbackCheck(IdeoBuildingPresenceDemand __instance, IEnumerable<Building> buildings)
{
var parentBuilding = __instance.parent;
foreach (var building in buildings)
{
if (building.StyleSourcePrecept == __instance.parent)
if (building.StyleSourcePrecept == parentBuilding)
return true;
}
return false;
}
#endif
}
}