diff --git a/UXAssist/FactoryPatch.cs b/UXAssist/FactoryPatch.cs index be4b772..795767f 100644 --- a/UXAssist/FactoryPatch.cs +++ b/UXAssist/FactoryPatch.cs @@ -1646,8 +1646,8 @@ public static class FactoryPatch ID = 301, Name = "存储单元", GridIndex = 3601, - IconPath = "assets/memory.png", - _iconSprite = Util.LoadSprite($"{pluginfolder}/assets/memory.png"), + IconPath = "assets/signal/memory.png", + _iconSprite = Util.LoadSprite($"{pluginfolder}/assets/signal/memory.png"), SID = "" }, new SignalProto @@ -1655,8 +1655,8 @@ public static class FactoryPatch ID = 302, Name = "能量碎片", GridIndex = 3602, - IconPath = "assets/energy-fragment.png", - _iconSprite = Util.LoadSprite($"{pluginfolder}/assets/energy-fragment.png"), + IconPath = "assets/signal/energy-fragment.png", + _iconSprite = Util.LoadSprite($"{pluginfolder}/assets/signal/energy-fragment.png"), SID = "" }, new SignalProto @@ -1664,8 +1664,8 @@ public static class FactoryPatch ID = 303, Name = "硅基神经元", GridIndex = 3603, - IconPath = "assets/silicon-neuron.png", - _iconSprite = Util.LoadSprite($"{pluginfolder}/assets/silicon-neuron.png"), + IconPath = "assets/signal/silicon-neuron.png", + _iconSprite = Util.LoadSprite($"{pluginfolder}/assets/signal/silicon-neuron.png"), SID = "" }, new SignalProto @@ -1673,8 +1673,8 @@ public static class FactoryPatch ID = 304, Name = "负熵奇点", GridIndex = 3604, - IconPath = "Assets/negentropy.png", - _iconSprite = Util.LoadSprite($"{pluginfolder}/assets/negentropy.png"), + IconPath = "assets/signal/negentropy.png", + _iconSprite = Util.LoadSprite($"{pluginfolder}/assets/signal/negentropy.png"), SID = "" }, new SignalProto @@ -1682,8 +1682,8 @@ public static class FactoryPatch ID = 305, Name = "物质重组器", GridIndex = 3605, - IconPath = "assets/reassembler.png", - _iconSprite = Util.LoadSprite($"{pluginfolder}/assets/reassembler.png"), + IconPath = "assets/signal/reassembler.png", + _iconSprite = Util.LoadSprite($"{pluginfolder}/assets/signal/reassembler.png"), SID = "" }, new SignalProto @@ -1691,8 +1691,8 @@ public static class FactoryPatch ID = 306, Name = "虚粒子", GridIndex = 3606, - IconPath = "assets/virtual-particle.png", - _iconSprite = Util.LoadSprite($"{pluginfolder}/assets/virtual-particle.png"), + IconPath = "assets/signal/virtual-particle.png", + _iconSprite = Util.LoadSprite($"{pluginfolder}/assets/signal/virtual-particle.png"), SID = "" }, ]; diff --git a/UXAssist/GamePatch.cs b/UXAssist/GamePatch.cs index e409cf3..4464df8 100644 --- a/UXAssist/GamePatch.cs +++ b/UXAssist/GamePatch.cs @@ -55,7 +55,7 @@ public static class GamePatch LoadLastWindowRectEnabled.SettingChanged += (_, _) => LoadLastWindowRect.Enable(LoadLastWindowRectEnabled.Value); MouseCursorScaleUpMultiplier.SettingChanged += (_, _) => { - MouseCursorScaleUp.Enable(MouseCursorScaleUpMultiplier.Value > 1); + MouseCursorScaleUp.Enable(MouseCursorScaleUpMultiplier.Value > 1, true); }; // AutoSaveOptEnabled.SettingChanged += (_, _) => AutoSaveOpt.Enable(AutoSaveOptEnabled.Value); ConvertSavesFromPeaceEnabled.SettingChanged += (_, _) => ConvertSavesFromPeace.Enable(ConvertSavesFromPeaceEnabled.Value); @@ -69,7 +69,7 @@ public static class GamePatch }; EnableWindowResize.Enable(EnableWindowResizeEnabled.Value); LoadLastWindowRect.Enable(LoadLastWindowRectEnabled.Value); - MouseCursorScaleUp.Enable(MouseCursorScaleUpMultiplier.Value > 1); + MouseCursorScaleUp.Enable(MouseCursorScaleUpMultiplier.Value > 1, false); // AutoSaveOpt.Enable(AutoSaveOptEnabled.Value); ConvertSavesFromPeace.Enable(ConvertSavesFromPeaceEnabled.Value); _gamePatch ??= Harmony.CreateAndPatchAll(typeof(GamePatch)); @@ -79,7 +79,7 @@ public static class GamePatch { LoadLastWindowRect.Enable(false); EnableWindowResize.Enable(false); - MouseCursorScaleUp.Enable(false); + MouseCursorScaleUp.Enable(false, false); // AutoSaveOpt.Enable(false); ConvertSavesFromPeace.Enable(false); _gamePatch?.UnpatchSelf(); @@ -500,11 +500,12 @@ public static class GamePatch { private static Harmony _patch; - public static void Enable(bool on) + public static void Enable(bool on, bool reload) { if (on) { _patch ??= Harmony.CreateAndPatchAll(typeof(MouseCursorScaleUp)); + if (!reload) return; if (!UICursor.loaded) return; UICursor.loaded = false; UICursor.LoadCursors(); @@ -513,6 +514,7 @@ public static class GamePatch _patch?.UnpatchSelf(); _patch = null; + if (!reload) return; if (!UICursor.loaded) return; UICursor.loaded = false; UICursor.LoadCursors(); @@ -524,20 +526,60 @@ public static class GamePatch { var matcher = new CodeMatcher(instructions, generator); matcher.Start().MatchForward(false, + new CodeMatch(OpCodes.Ldc_I4_S), + new CodeMatch(OpCodes.Newarr) + ); + var startPos = matcher.Pos; + matcher.Advance(2).MatchForward(false, + new CodeMatch(OpCodes.Stsfld, AccessTools.Field(typeof(UICursor), nameof(UICursor.cursorTexs))) + ); + var endPos = matcher.Pos + 1; + matcher.Start().Advance(startPos).RemoveInstructions(endPos - startPos); + matcher.InsertAndAdvance( + Transpilers.EmitDelegate(() => + { + var pluginfolder = Util.PluginFolder; + UICursor.cursorTexs = + [ + Util.LoadTexture($"{pluginfolder}/assets/cursor/cursor.png"), + Util.LoadTexture($"{pluginfolder}/assets/cursor/cursor-transfer.png"), + Util.LoadTexture($"{pluginfolder}/assets/cursor/cursor-target-in.png"), + Util.LoadTexture($"{pluginfolder}/assets/cursor/cursor-target-out.png"), + Util.LoadTexture($"{pluginfolder}/assets/cursor/cursor-target-a.png"), + Util.LoadTexture($"{pluginfolder}/assets/cursor/cursor-target-b.png"), + Util.LoadTexture($"{pluginfolder}/assets/cursor/cursor-ban.png"), + Util.LoadTexture($"{pluginfolder}/assets/cursor/cursor-delete.png"), + Util.LoadTexture($"{pluginfolder}/assets/cursor/cursor-reform.png"), + Util.LoadTexture($"{pluginfolder}/assets/cursor/cursor-dyson-node-create.png"), + Util.LoadTexture($"{pluginfolder}/assets/cursor/cursor-painter.png"), + Util.LoadTexture($"{pluginfolder}/assets/cursor/cursor-eyedropper.png"), + Util.LoadTexture($"{pluginfolder}/assets/cursor/cursor-eraser.png"), + Util.LoadTexture($"{pluginfolder}/assets/cursor/cursor-upgrade.png"), + Util.LoadTexture($"{pluginfolder}/assets/cursor/cursor-downgrade.png"), + Util.LoadTexture($"{pluginfolder}/assets/cursor/cursor-blank.png"), + Util.LoadTexture($"{pluginfolder}/assets/cursor/cursor-remove.png") + ]; + }) + ); + matcher.MatchForward(false, + new CodeMatch(OpCodes.Stsfld, AccessTools.Field(typeof(UICursor), nameof(UICursor.cursorHots))), new CodeMatch(OpCodes.Ldc_I4_1), new CodeMatch(OpCodes.Stsfld, AccessTools.Field(typeof(UICursor), nameof(UICursor.loaded))) - ).InsertAndAdvance( + ).Advance(1).InsertAndAdvance( Transpilers.EmitDelegate(() => { var multiplier = MouseCursorScaleUpMultiplier.Value; - if (multiplier <= 1) return; for (var i = 0; i < UICursor.cursorTexs.Length; i++) { var cursor = UICursor.cursorTexs[i]; if (cursor == null) continue; - UICursor.cursorTexs[i] = ResizeTexture2D(cursor, cursor.width * multiplier, cursor.height * multiplier); + var newWidth = 32 * multiplier; + var newHeight = 32 * multiplier; + if (cursor.width == newWidth && cursor.height == newHeight) continue; + UICursor.cursorTexs[i] = ResizeTexture2D(cursor, 32 * multiplier, 32 * multiplier); } + if (multiplier <= 1) return; for (var i = UICursor.cursorHots.Length - 1; i >= 0; i--) { UICursor.cursorHots[i] = new Vector2(UICursor.cursorHots[i].x * multiplier, UICursor.cursorHots[i].y * multiplier); @@ -559,7 +601,7 @@ public static class GamePatch RenderTexture.active = rt; Graphics.Blit(texture2D, rt); rt.ResolveAntiAliasedSurface(); - var result = new Texture2D(targetWidth, targetHeight, texture2D.format, texture2D.mipmapCount > 1); + var result = new Texture2D(targetWidth, targetHeight, texture2D.format, false); result.ReadPixels(new Rect(0, 0, targetWidth, targetHeight), 0, 0); result.Apply(); RenderTexture.active = oldActive; diff --git a/UXAssist/package/plugins/assets/cursor/cursor-ban.png b/UXAssist/package/plugins/assets/cursor/cursor-ban.png index 57dd883..ea6f6cf 100644 Binary files a/UXAssist/package/plugins/assets/cursor/cursor-ban.png and b/UXAssist/package/plugins/assets/cursor/cursor-ban.png differ diff --git a/UXAssist/package/plugins/assets/cursor/cursor-delete.png b/UXAssist/package/plugins/assets/cursor/cursor-delete.png index c9f8c90..5cbbd9e 100644 Binary files a/UXAssist/package/plugins/assets/cursor/cursor-delete.png and b/UXAssist/package/plugins/assets/cursor/cursor-delete.png differ diff --git a/UXAssist/package/plugins/assets/cursor/cursor-downgrade.png b/UXAssist/package/plugins/assets/cursor/cursor-downgrade.png index 47321d6..a03d678 100644 Binary files a/UXAssist/package/plugins/assets/cursor/cursor-downgrade.png and b/UXAssist/package/plugins/assets/cursor/cursor-downgrade.png differ diff --git a/UXAssist/package/plugins/assets/cursor/cursor-dyson-node-create.png b/UXAssist/package/plugins/assets/cursor/cursor-dyson-node-create.png index d038f4a..a3b2e2e 100644 Binary files a/UXAssist/package/plugins/assets/cursor/cursor-dyson-node-create.png and b/UXAssist/package/plugins/assets/cursor/cursor-dyson-node-create.png differ diff --git a/UXAssist/package/plugins/assets/cursor/cursor-eraser.png b/UXAssist/package/plugins/assets/cursor/cursor-eraser.png index 557ddae..46ce9e4 100644 Binary files a/UXAssist/package/plugins/assets/cursor/cursor-eraser.png and b/UXAssist/package/plugins/assets/cursor/cursor-eraser.png differ diff --git a/UXAssist/package/plugins/assets/cursor/cursor-eyedropper.png b/UXAssist/package/plugins/assets/cursor/cursor-eyedropper.png index bee0df2..fe8f909 100644 Binary files a/UXAssist/package/plugins/assets/cursor/cursor-eyedropper.png and b/UXAssist/package/plugins/assets/cursor/cursor-eyedropper.png differ diff --git a/UXAssist/package/plugins/assets/cursor/cursor-painter.png b/UXAssist/package/plugins/assets/cursor/cursor-painter.png index 8995063..29fe1e0 100644 Binary files a/UXAssist/package/plugins/assets/cursor/cursor-painter.png and b/UXAssist/package/plugins/assets/cursor/cursor-painter.png differ diff --git a/UXAssist/package/plugins/assets/cursor/cursor-reform.png b/UXAssist/package/plugins/assets/cursor/cursor-reform.png index fea86e3..97f4773 100644 Binary files a/UXAssist/package/plugins/assets/cursor/cursor-reform.png and b/UXAssist/package/plugins/assets/cursor/cursor-reform.png differ diff --git a/UXAssist/package/plugins/assets/cursor/cursor-remove.png b/UXAssist/package/plugins/assets/cursor/cursor-remove.png index d284fe3..00917fd 100644 Binary files a/UXAssist/package/plugins/assets/cursor/cursor-remove.png and b/UXAssist/package/plugins/assets/cursor/cursor-remove.png differ diff --git a/UXAssist/package/plugins/assets/cursor/cursor-target-a.png b/UXAssist/package/plugins/assets/cursor/cursor-target-a.png index 62ec11c..b2684c5 100644 Binary files a/UXAssist/package/plugins/assets/cursor/cursor-target-a.png and b/UXAssist/package/plugins/assets/cursor/cursor-target-a.png differ diff --git a/UXAssist/package/plugins/assets/cursor/cursor-target-b.png b/UXAssist/package/plugins/assets/cursor/cursor-target-b.png index 61ee760..5e5430f 100644 Binary files a/UXAssist/package/plugins/assets/cursor/cursor-target-b.png and b/UXAssist/package/plugins/assets/cursor/cursor-target-b.png differ diff --git a/UXAssist/package/plugins/assets/cursor/cursor-target-in.png b/UXAssist/package/plugins/assets/cursor/cursor-target-in.png index bbdf341..d4c3bae 100644 Binary files a/UXAssist/package/plugins/assets/cursor/cursor-target-in.png and b/UXAssist/package/plugins/assets/cursor/cursor-target-in.png differ diff --git a/UXAssist/package/plugins/assets/cursor/cursor-target-out.png b/UXAssist/package/plugins/assets/cursor/cursor-target-out.png index 033518c..dcd0c0e 100644 Binary files a/UXAssist/package/plugins/assets/cursor/cursor-target-out.png and b/UXAssist/package/plugins/assets/cursor/cursor-target-out.png differ diff --git a/UXAssist/package/plugins/assets/cursor/cursor-transfer.png b/UXAssist/package/plugins/assets/cursor/cursor-transfer.png index e6894e0..a2c6166 100644 Binary files a/UXAssist/package/plugins/assets/cursor/cursor-transfer.png and b/UXAssist/package/plugins/assets/cursor/cursor-transfer.png differ diff --git a/UXAssist/package/plugins/assets/cursor/cursor-upgrade.png b/UXAssist/package/plugins/assets/cursor/cursor-upgrade.png index e03c5e2..bf5da43 100644 Binary files a/UXAssist/package/plugins/assets/cursor/cursor-upgrade.png and b/UXAssist/package/plugins/assets/cursor/cursor-upgrade.png differ diff --git a/UXAssist/package/plugins/assets/cursor/cursor.png b/UXAssist/package/plugins/assets/cursor/cursor.png index bba66a0..33edc8f 100644 Binary files a/UXAssist/package/plugins/assets/cursor/cursor.png and b/UXAssist/package/plugins/assets/cursor/cursor.png differ