Fixed rare TryFindBestBetterStoreCellFor errors, added better exception handling for drawing errors thrown by other mods
Those log messages now include things and the position where drawing fails Plant printing was slightly improved further too, correctly handling theoretical hydroponics of sizes above 20 now
This commit is contained in:
@@ -17,6 +17,8 @@ public sealed class HaulDestinationManagerPatches : ClassWithFishPrepatches
|
||||
= AccessTools.DeclaredMethod(typeof(HaulDestinationManager),
|
||||
nameof(HaulDestinationManager.Notify_HaulDestinationChangedPriority));
|
||||
|
||||
public static void Prefix(HaulDestinationManager __instance) => __instance.RecalculateStorageGroupMemberCount();
|
||||
|
||||
public static void Postfix(HaulDestinationManager __instance)
|
||||
=> __instance.Cache().OnPriorityChanged(__instance);
|
||||
}
|
||||
@@ -29,6 +31,12 @@ public sealed class HaulDestinationManagerPatches : ClassWithFishPrepatches
|
||||
= AccessTools.DeclaredMethod(typeof(HaulDestinationManager),
|
||||
nameof(HaulDestinationManager.AddHaulDestination));
|
||||
|
||||
public static void Prefix(HaulDestinationManager __instance, IHaulDestination haulDestination)
|
||||
{
|
||||
if (haulDestination is IStorageGroupMember { Group: { } group })
|
||||
group.SpawnedMemberCount()++;
|
||||
}
|
||||
|
||||
public static void Postfix(HaulDestinationManager __instance, IHaulDestination haulDestination)
|
||||
{
|
||||
if (haulDestination is not ISlotGroupParent slotGroupParent)
|
||||
@@ -47,6 +55,12 @@ public sealed class HaulDestinationManagerPatches : ClassWithFishPrepatches
|
||||
= AccessTools.DeclaredMethod(typeof(HaulDestinationManager),
|
||||
nameof(HaulDestinationManager.RemoveHaulDestination));
|
||||
|
||||
public static void Prefix(HaulDestinationManager __instance, IHaulDestination haulDestination)
|
||||
{
|
||||
if (haulDestination is IStorageGroupMember { Group: { } group })
|
||||
group.SpawnedMemberCount()--;
|
||||
}
|
||||
|
||||
public static void Postfix(HaulDestinationManager __instance, IHaulDestination haulDestination)
|
||||
{
|
||||
if (haulDestination is not ISlotGroupParent slotGroupParent)
|
||||
@@ -76,8 +90,8 @@ public sealed class HaulDestinationManagerPatches : ClassWithFishPrepatches
|
||||
if (__result != 0)
|
||||
return __result;
|
||||
|
||||
var storageSettingsGroupA = a.TryGetStorageGroup();
|
||||
var storageSettingsGroupB = b.TryGetStorageGroup();
|
||||
var storageSettingsGroupA = a.StorageGroup;
|
||||
var storageSettingsGroupB = b.StorageGroup;
|
||||
|
||||
return storageSettingsGroupA == null
|
||||
? storageSettingsGroupB == null
|
||||
@@ -91,7 +105,7 @@ public sealed class HaulDestinationManagerPatches : ClassWithFishPrepatches
|
||||
[MethodImpl(MethodImplOptions.NoInlining)]
|
||||
public static int CompareStorageSettingsGroups(StorageGroup a, StorageGroup b)
|
||||
{
|
||||
var result = b.MemberCount.CompareTo(a.MemberCount);
|
||||
var result = b.SpawnedMemberCount().CompareTo(a.SpawnedMemberCount());
|
||||
return result != 0 ? result : a.loadID.CompareTo(b.loadID);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user