From 043e7a8e703bb877d7a9519ec747cb5be360e74e Mon Sep 17 00:00:00 2001 From: Soar Qin Date: Wed, 19 Feb 2025 14:33:13 +0800 Subject: [PATCH] UXAssist 1.2.15, which fixed #54 and #57 --- UXAssist/CHANGELOG.md | 6 ++++++ UXAssist/Patches/FactoryPatch.cs | 8 ++++---- UXAssist/Patches/LogisticsPatch.cs | 15 ++++++--------- UXAssist/UXAssist.csproj | 2 +- UXAssist/package/manifest.json | 2 +- 5 files changed, 18 insertions(+), 15 deletions(-) diff --git a/UXAssist/CHANGELOG.md b/UXAssist/CHANGELOG.md index 1625cef..854995e 100644 --- a/UXAssist/CHANGELOG.md +++ b/UXAssist/CHANGELOG.md @@ -1,5 +1,8 @@ ## Changlog +* 1.2.15 + + `Off-grid building and stepped rotation`: Fix compatibility with DSP 0.10.32.25682. (#57) + + `Enhanced control for logistic storage limits`: Try to fix possible crash. (#54) * 1.2.14 + Fix an issue that an unexpected menu icon is shown in the top-right corner of the config panel. + `Stop ejectors when available nodes are all filled up`: Fix compatibility with `Dyson Sphere Program v0.10.32.25496`. @@ -236,6 +239,9 @@ ## 更新日志 +* 1.2.15 + + `脱离网格建造和小角度旋转`:修复了与0.10.32.25682的兼容性 (#57) + + `物流塔存储数量限制控制改进`:修复了可能导致崩溃的问题 (#54) * 1.2.14 + 修正设置窗口右上角多出一个菜单图标的问题 + `当可用节点全部造完时停止弹射`:修复了与`戴森球计划 v0.10.32.25496`的兼容性 diff --git a/UXAssist/Patches/FactoryPatch.cs b/UXAssist/Patches/FactoryPatch.cs index 8539985..71e2f93 100644 --- a/UXAssist/Patches/FactoryPatch.cs +++ b/UXAssist/Patches/FactoryPatch.cs @@ -614,7 +614,7 @@ public class FactoryPatch : PatchImpl 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 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 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 begin = begin.normalized; end = end.normalized; var finalCount = 1; - var ignoreGrid = VFInput._ignoreGrid; + var ignoreGrid = VFInput._switchGridSnap; if (ignoreGrid) snaps[0] = begin; else diff --git a/UXAssist/Patches/LogisticsPatch.cs b/UXAssist/Patches/LogisticsPatch.cs index 02b2ddd..7cc5436 100644 --- a/UXAssist/Patches/LogisticsPatch.cs +++ b/UXAssist/Patches/LogisticsPatch.cs @@ -143,8 +143,8 @@ public static class LogisticsPatch foreach (var target in targets) { var stationStorage = target.gameObject.GetComponentInParent(); - 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; } diff --git a/UXAssist/UXAssist.csproj b/UXAssist/UXAssist.csproj index 5010ec1..70bce5a 100644 --- a/UXAssist/UXAssist.csproj +++ b/UXAssist/UXAssist.csproj @@ -4,7 +4,7 @@ net472 org.soardev.uxassist DSP MOD - UXAssist - 1.2.14 + 1.2.15 true latest UXAssist diff --git a/UXAssist/package/manifest.json b/UXAssist/package/manifest.json index 999f764..43513b0 100644 --- a/UXAssist/package/manifest.json +++ b/UXAssist/package/manifest.json @@ -1,6 +1,6 @@ { "name": "UXAssist", - "version_number": "1.2.14", + "version_number": "1.2.15", "website_url": "https://github.com/soarqin/DSP_Mods/tree/master/UXAssist", "description": "Some functions and patches for better user experience / 一些提升用户体验的功能和补丁", "dependencies": [