fix(UXAssist): enable AutoConstruct patch on setting change

- Rename ImmediateBuildPatch to FactoryBuildPatches
- Rename AutoConstructButton to AutoConstructPatch
- AutoConstructButtonEnabled now toggles the Harmony patch instead of only refreshing UI visibility
- Preserve AutoConstructEnabled state when the button option is toggled
This commit is contained in:
2026-07-06 21:46:46 +08:00
parent ab1d20683d
commit ff7ce158cc
2 changed files with 9 additions and 15 deletions
@@ -7,15 +7,9 @@ using GameLogicProc = UXAssist.Common.GameLogic;
namespace UXAssist.Patches.Factory; namespace UXAssist.Patches.Factory;
internal static class ImmediateBuildPatch internal static class FactoryBuildPatches
{ {
public static void Enable(bool enable) internal class AutoConstructPatch : PatchImpl<AutoConstructPatch>
{
AutoConstructButton.Enable(enable);
QuickBuildAndDismantleLab.Enable(enable);
}
internal class AutoConstructButton : PatchImpl<AutoConstructButton>
{ {
private static int _lastPrebuildCount = -1; private static int _lastPrebuildCount = -1;
+7 -7
View File
@@ -1,4 +1,4 @@
using System; using System;
using System.IO; using System.IO;
using BepInEx.Configuration; using BepInEx.Configuration;
using CommonAPI.Systems; using CommonAPI.Systems;
@@ -109,12 +109,12 @@ public static class FactoryPatch
LargerAreaForTerraformEnabled.SettingChanged += (_, _) => ArchitectModePatch.LargerAreaForTerraform.Enable(LargerAreaForTerraformEnabled.Value); LargerAreaForTerraformEnabled.SettingChanged += (_, _) => ArchitectModePatch.LargerAreaForTerraform.Enable(LargerAreaForTerraformEnabled.Value);
OffGridBuildingEnabled.SettingChanged += (_, _) => BuildToolPatch.OffGridBuilding.Enable(OffGridBuildingEnabled.Value); OffGridBuildingEnabled.SettingChanged += (_, _) => BuildToolPatch.OffGridBuilding.Enable(OffGridBuildingEnabled.Value);
TreatStackingAsSingleEnabled.SettingChanged += (_, _) => BuildToolPatch.TreatStackingAsSingle.Enable(TreatStackingAsSingleEnabled.Value); TreatStackingAsSingleEnabled.SettingChanged += (_, _) => BuildToolPatch.TreatStackingAsSingle.Enable(TreatStackingAsSingleEnabled.Value);
QuickBuildAndDismantleLabsEnabled.SettingChanged += (_, _) => ImmediateBuildPatch.QuickBuildAndDismantleLab.Enable(QuickBuildAndDismantleLabsEnabled.Value); QuickBuildAndDismantleLabsEnabled.SettingChanged += (_, _) => FactoryBuildPatches.QuickBuildAndDismantleLab.Enable(QuickBuildAndDismantleLabsEnabled.Value);
ProtectVeinsFromExhaustionEnabled.SettingChanged += (_, _) => VeinProtectionPatch.ProtectVeinsFromExhaustion.Enable(ProtectVeinsFromExhaustionEnabled.Value); ProtectVeinsFromExhaustionEnabled.SettingChanged += (_, _) => VeinProtectionPatch.ProtectVeinsFromExhaustion.Enable(ProtectVeinsFromExhaustionEnabled.Value);
DoNotRenderEntitiesEnabled.SettingChanged += (_, _) => RenderingPatch.DoNotRenderEntities.Enable(DoNotRenderEntitiesEnabled.Value); DoNotRenderEntitiesEnabled.SettingChanged += (_, _) => RenderingPatch.DoNotRenderEntities.Enable(DoNotRenderEntitiesEnabled.Value);
DragBuildPowerPolesEnabled.SettingChanged += (_, _) => BuildToolPatch.DragBuildPowerPoles.Enable(DragBuildPowerPolesEnabled.Value); DragBuildPowerPolesEnabled.SettingChanged += (_, _) => BuildToolPatch.DragBuildPowerPoles.Enable(DragBuildPowerPolesEnabled.Value);
DragBuildPowerPolesAlternatelyEnabled.SettingChanged += (_, _) => BuildToolPatch.DragBuildPowerPoles.AlternatelyChanged(); DragBuildPowerPolesAlternatelyEnabled.SettingChanged += (_, _) => BuildToolPatch.DragBuildPowerPoles.AlternatelyChanged();
AutoConstructButtonEnabled.SettingChanged += (_, _) => Functions.UIFunctions.UpdateToggleAutoConstructCheckButtonVisiblility(); AutoConstructButtonEnabled.SettingChanged += (_, _) => FactoryBuildPatches.AutoConstructPatch.Enable(AutoConstructButtonEnabled.Value);
AutoConstructEnabled.SettingChanged += (_, _) => Functions.UIFunctions.UpdateToggleAutoConstructCheckButtonVisiblility(); AutoConstructEnabled.SettingChanged += (_, _) => Functions.UIFunctions.UpdateToggleAutoConstructCheckButtonVisiblility();
BeltSignalsForBuyOutEnabled.SettingChanged += (_, _) => BeltSignalPatch.BeltSignalsForBuyOut.Enable(BeltSignalsForBuyOutEnabled.Value); BeltSignalsForBuyOutEnabled.SettingChanged += (_, _) => BeltSignalPatch.BeltSignalsForBuyOut.Enable(BeltSignalsForBuyOutEnabled.Value);
TankFastFillInAndTakeOutEnabled.SettingChanged += (_, _) => BuildToolPatch.TankFastFillInAndTakeOut.Enable(TankFastFillInAndTakeOutEnabled.Value); TankFastFillInAndTakeOutEnabled.SettingChanged += (_, _) => BuildToolPatch.TankFastFillInAndTakeOut.Enable(TankFastFillInAndTakeOutEnabled.Value);
@@ -144,11 +144,11 @@ public static class FactoryPatch
ArchitectModePatch.LargerAreaForTerraform.Enable(LargerAreaForTerraformEnabled.Value); ArchitectModePatch.LargerAreaForTerraform.Enable(LargerAreaForTerraformEnabled.Value);
BuildToolPatch.OffGridBuilding.Enable(OffGridBuildingEnabled.Value); BuildToolPatch.OffGridBuilding.Enable(OffGridBuildingEnabled.Value);
BuildToolPatch.TreatStackingAsSingle.Enable(TreatStackingAsSingleEnabled.Value); BuildToolPatch.TreatStackingAsSingle.Enable(TreatStackingAsSingleEnabled.Value);
ImmediateBuildPatch.QuickBuildAndDismantleLab.Enable(QuickBuildAndDismantleLabsEnabled.Value); FactoryBuildPatches.QuickBuildAndDismantleLab.Enable(QuickBuildAndDismantleLabsEnabled.Value);
VeinProtectionPatch.ProtectVeinsFromExhaustion.Enable(ProtectVeinsFromExhaustionEnabled.Value); VeinProtectionPatch.ProtectVeinsFromExhaustion.Enable(ProtectVeinsFromExhaustionEnabled.Value);
RenderingPatch.DoNotRenderEntities.Enable(DoNotRenderEntitiesEnabled.Value); RenderingPatch.DoNotRenderEntities.Enable(DoNotRenderEntitiesEnabled.Value);
BuildToolPatch.DragBuildPowerPoles.Enable(DragBuildPowerPolesEnabled.Value); BuildToolPatch.DragBuildPowerPoles.Enable(DragBuildPowerPolesEnabled.Value);
ImmediateBuildPatch.AutoConstructButton.Enable(AutoConstructButtonEnabled.Value); FactoryBuildPatches.AutoConstructPatch.Enable(AutoConstructButtonEnabled.Value);
BeltSignalPatch.BeltSignalsForBuyOut.Enable(BeltSignalsForBuyOutEnabled.Value); BeltSignalPatch.BeltSignalsForBuyOut.Enable(BeltSignalsForBuyOutEnabled.Value);
BuildToolPatch.TankFastFillInAndTakeOut.Enable(TankFastFillInAndTakeOutEnabled.Value); BuildToolPatch.TankFastFillInAndTakeOut.Enable(TankFastFillInAndTakeOutEnabled.Value);
BuildingBufferPatch.TweakBuildingBuffer.Enable(TweakBuildingBufferEnabled.Value); BuildingBufferPatch.TweakBuildingBuffer.Enable(TweakBuildingBufferEnabled.Value);
@@ -166,11 +166,11 @@ public static class FactoryPatch
BuildingBufferPatch.TweakBuildingBuffer.Enable(false); BuildingBufferPatch.TweakBuildingBuffer.Enable(false);
BuildToolPatch.TankFastFillInAndTakeOut.Enable(false); BuildToolPatch.TankFastFillInAndTakeOut.Enable(false);
BeltSignalPatch.BeltSignalsForBuyOut.Enable(false); BeltSignalPatch.BeltSignalsForBuyOut.Enable(false);
ImmediateBuildPatch.AutoConstructButton.Enable(false); FactoryBuildPatches.AutoConstructPatch.Enable(false);
BuildToolPatch.DragBuildPowerPoles.Enable(false); BuildToolPatch.DragBuildPowerPoles.Enable(false);
RenderingPatch.DoNotRenderEntities.Enable(false); RenderingPatch.DoNotRenderEntities.Enable(false);
VeinProtectionPatch.ProtectVeinsFromExhaustion.Enable(false); VeinProtectionPatch.ProtectVeinsFromExhaustion.Enable(false);
ImmediateBuildPatch.QuickBuildAndDismantleLab.Enable(false); FactoryBuildPatches.QuickBuildAndDismantleLab.Enable(false);
BuildToolPatch.TreatStackingAsSingle.Enable(false); BuildToolPatch.TreatStackingAsSingle.Enable(false);
BuildToolPatch.OffGridBuilding.Enable(false); BuildToolPatch.OffGridBuilding.Enable(false);
ArchitectModePatch.LargerAreaForTerraform.Enable(false); ArchitectModePatch.LargerAreaForTerraform.Enable(false);