1
0
mirror of https://github.com/soarqin/DSP_Mods.git synced 2025-12-09 04:13:32 +08:00

UXAssist 1.2.15, which fixed #54 and #57

This commit is contained in:
2025-02-19 14:33:13 +08:00
parent 34822453a7
commit 043e7a8e70
5 changed files with 18 additions and 15 deletions

View File

@@ -614,7 +614,7 @@ public class FactoryPatch : PatchImpl<FactoryPatch>
Label? thisElseBlockEntryLabel = null;
matcher.MatchForward(false,
new CodeMatch(ci => ci.Calls(AccessTools.PropertyGetter(typeof(VFInput), nameof(VFInput._ignoreGrid)))),
new CodeMatch(ci => ci.Calls(AccessTools.PropertyGetter(typeof(VFInput), nameof(VFInput._switchGridSnap)))),
new CodeMatch(ci => ci.Branches(out thisElseBlockEntryLabel)),
new CodeMatch(ci => ci.IsLdarg()),
new CodeMatch(OpCodes.Ldfld),
@@ -668,7 +668,7 @@ public class FactoryPatch : PatchImpl<FactoryPatch>
matcher.Advance(1);
matcher.Insert(
new CodeInstruction(OpCodes.Call, AccessTools.PropertyGetter(typeof(VFInput), nameof(VFInput._ignoreGrid))),
new CodeInstruction(OpCodes.Call, AccessTools.PropertyGetter(typeof(VFInput), nameof(VFInput._switchGridSnap))),
new CodeInstruction(OpCodes.Brtrue, exitLabel)
);
@@ -696,7 +696,7 @@ public class FactoryPatch : PatchImpl<FactoryPatch>
new CodeMatch(OpCodes.Ldfld, AccessTools.Field(typeof(BuildTool_Path), nameof(BuildTool_Path.castGroundPos))),
new CodeMatch(OpCodes.Ldarg_0),
new CodeMatch(OpCodes.Ldfld, AccessTools.Field(typeof(BuildTool_Path), nameof(BuildTool_Path.castTerrain))),
new CodeMatch(OpCodes.Callvirt, AccessTools.Method(typeof(PlanetAuxData), nameof(PlanetAuxData.Snap))),
new CodeMatch(OpCodes.Callvirt, AccessTools.Method(typeof(PlanetAuxData), nameof(PlanetAuxData.Snap), [typeof(Vector3), typeof(bool)])),
new CodeMatch(OpCodes.Stfld, AccessTools.Field(typeof(BuildTool_Path), nameof(BuildTool_Path.castGroundPosSnapped)))
);
@@ -1385,7 +1385,7 @@ public class FactoryPatch : PatchImpl<FactoryPatch>
begin = begin.normalized;
end = end.normalized;
var finalCount = 1;
var ignoreGrid = VFInput._ignoreGrid;
var ignoreGrid = VFInput._switchGridSnap;
if (ignoreGrid)
snaps[0] = begin;
else

View File

@@ -143,8 +143,8 @@ public static class LogisticsPatch
foreach (var target in targets)
{
var stationStorage = target.gameObject.GetComponentInParent<UIStationStorage>();
if (stationStorage is null) continue;
var station = stationStorage.station;
var station = stationStorage?.station;
if (station?.storage is null) continue;
ref var storage = ref station.storage[stationStorage.index];
var oldMax = storage.max;
var newMax = oldMax + delta;
@@ -161,13 +161,10 @@ public static class LogisticsPatch
}
else
{
var modelProto = LDB.models.Select(stationStorage.stationWindow.factory.entityPool[station.entityId].modelIndex);
itemCountMax = 0;
if (modelProto != null)
{
itemCountMax = modelProto.prefabDesc.stationMaxItemCount;
}
var factory = stationStorage.stationWindow?.factory;
if (factory == null || station.entityId <= 0 || station.entityId >= factory.entityCursor) continue;
var modelProto = LDB.models.Select(factory.entityPool[station.entityId].modelIndex);
itemCountMax = modelProto == null ? 0 : modelProto.prefabDesc.stationMaxItemCount;
itemCountMax += station.isStellar ? GameMain.history.remoteStationExtraStorage : GameMain.history.localStationExtraStorage;
}