From 17bfebb52a8501590993c1717c65dde1f11c6089 Mon Sep 17 00:00:00 2001 From: AJ Heflin Date: Sun, 2 Jun 2024 23:12:47 -0400 Subject: [PATCH] Added one time use instant rebalance button to LSC --- dependencies.gradle | 10 +-- src/main/java/client/gui/KT_UITextures.java | 4 + .../GTMTE_LapotronicSuperCapacitor.java | 75 ++++++++++++------ .../resources/assets/kekztech/lang/en_US.lang | 1 + .../gui/overlay_button/wireless_rebalance.png | Bin 0 -> 282 bytes 5 files changed, 60 insertions(+), 30 deletions(-) create mode 100644 src/main/resources/assets/kekztech/textures/gui/overlay_button/wireless_rebalance.png diff --git a/dependencies.gradle b/dependencies.gradle index 07b952756d1..623ec32bc7f 100644 --- a/dependencies.gradle +++ b/dependencies.gradle @@ -53,15 +53,15 @@ dependencies { implementation("com.github.GTNewHorizons:Avaritia:1.49:dev") implementation("com.github.GTNewHorizons:ForestryMC:4.9.3:dev") { transitive = false } - compileOnlyApi('com.github.GTNewHorizons:Angelica:1.0.0-alpha51:api') { transitive = false } + compileOnlyApi('com.github.GTNewHorizons:Angelica:1.0.0-alpha52:api') { transitive = false } compileOnlyApi("com.github.GTNewHorizons:AppleCore:3.3.0:dev") { transitive = false } compileOnlyApi("com.github.GTNewHorizons:BuildCraft:7.1.39:dev") { transitive = false } - compileOnlyApi("com.github.GTNewHorizons:EnderIO:2.8.0:dev") { transitive = false } + compileOnlyApi("com.github.GTNewHorizons:EnderIO:2.8.4:dev") { transitive = false } compileOnlyApi("com.github.GTNewHorizons:ProjectRed:4.10.0-GTNH:dev") { transitive = false } compileOnlyApi("com.github.GTNewHorizons:Railcraft:9.15.8:dev") { transitive = false } compileOnly("TGregworks:TGregworks:1.7.10-GTNH-1.0.26:deobf") {transitive = false} - compileOnly("com.github.GTNewHorizons:ThaumicBases:1.6.4:dev") { transitive = false } + compileOnly("com.github.GTNewHorizons:ThaumicBases:1.7.0:dev") { transitive = false } compileOnly("com.github.GTNewHorizons:EnderCore:0.4.6:dev") { transitive = false } implementation("com.github.GTNewHorizons:Galacticraft:3.1.5-GTNH:dev") { transitive = false } implementation("com.github.GTNewHorizons:TinkersConstruct:1.12.2-GTNH:dev") @@ -70,8 +70,8 @@ dependencies { compileOnly rfg.deobf("curse.maven:cofh-core-69162:2388751") compileOnly("com.github.GTNewHorizons:Nuclear-Control:2.6.2:dev") { transitive = false } compileOnly("thaumcraft:Thaumcraft:1.7.10-4.2.3.5:dev") { transitive = false } - compileOnly("com.github.GTNewHorizons:Hodgepodge:2.5.11:dev") { transitive = false } - compileOnly('com.github.GTNewHorizons:Botania:1.11.1-GTNH:dev') { transitive = false } + compileOnly("com.github.GTNewHorizons:Hodgepodge:2.5.15:dev") { transitive = false } + compileOnly('com.github.GTNewHorizons:Botania:1.11.3-GTNH:dev') { transitive = false } compileOnly('com.github.GTNewHorizons:HoloInventory:2.4.10-GTNH:dev') { transitive = false } compileOnly rfg.deobf("curse.maven:extra-utilities-225561:2264384") compileOnly rfg.deobf('curse.maven:minefactory-reloaded-66672:2366150') diff --git a/src/main/java/client/gui/KT_UITextures.java b/src/main/java/client/gui/KT_UITextures.java index 6f28a0280b0..ec324666fa1 100644 --- a/src/main/java/client/gui/KT_UITextures.java +++ b/src/main/java/client/gui/KT_UITextures.java @@ -14,4 +14,8 @@ public class KT_UITextures { public static final UITexture OVERLAY_BUTTON_WIRELESS_OFF_DISABLED = UITexture .fullImage(KekzCore.MODID, "gui/overlay_button/wireless_off_disabled"); + + public static final UITexture OVERLAY_BUTTON_WIRELESS_REBALANCE = UITexture + .fullImage(KekzCore.MODID, "gui/overlay_button/wireless_rebalance"); + } diff --git a/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java b/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java index 40fbb656c8b..9f636832529 100644 --- a/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java +++ b/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java @@ -106,6 +106,7 @@ private enum TopState { private boolean wireless_mode = false; private boolean not_processed_lsc = true; private int counter = 1; + private boolean balanced = false; private final Queue energyInputValues = new LinkedList<>(); private final Queue energyOutputValues = new LinkedList<>(); @@ -770,30 +771,7 @@ public boolean onRunningTick(ItemStack stack) { if (wireless_mode && (counter >= LSC_time_between_wireless_rebalance_in_ticks)) { // Reset tick counter. - counter = 1; - - // Find difference. - BigInteger transferred_eu = stored.subtract( - (LSC_wireless_eu_cap.multiply(BigInteger.valueOf(getUHVCapacitorCount()))) - .add(UEV_wireless_eu_cap.multiply(BigInteger.valueOf(getUEVCapacitorCount()))) - .add(UIV_wireless_eu_cap.multiply(BigInteger.valueOf(getUIVCapacitorCount()))) - .add(UMV_wireless_eu_cap.multiply(BigInteger.valueOf(getUMVCapacitorCount())))); - - if (transferred_eu.signum() == 1) { - inputLastTick += transferred_eu.longValue(); - } else { - outputLastTick += transferred_eu.longValue(); - } - - // If that difference can be added then do so. - if (WirelessNetworkManager.addEUToGlobalEnergyMap(global_energy_user_uuid, transferred_eu)) { - // If it succeeds there was sufficient energy so set the internal capacity as such. - stored = LSC_wireless_eu_cap.multiply(BigInteger.valueOf(getUHVCapacitorCount())) - .add( - UEV_wireless_eu_cap.multiply(BigInteger.valueOf(getUEVCapacitorCount())) - .add(UIV_wireless_eu_cap.multiply(BigInteger.valueOf(getUIVCapacitorCount()))) - .add(UMV_wireless_eu_cap.multiply(BigInteger.valueOf(getUMVCapacitorCount())))); - } + counter = rebalance(); } // Lose some energy. @@ -829,6 +807,36 @@ public boolean onRunningTick(ItemStack stack) { return true; } + private int rebalance() { + + balanced = true; + + // Find difference. + BigInteger transferred_eu = stored.subtract( + (LSC_wireless_eu_cap.multiply(BigInteger.valueOf(getUHVCapacitorCount()))) + .add(UEV_wireless_eu_cap.multiply(BigInteger.valueOf(getUEVCapacitorCount()))) + .add(UIV_wireless_eu_cap.multiply(BigInteger.valueOf(getUIVCapacitorCount()))) + .add(UMV_wireless_eu_cap.multiply(BigInteger.valueOf(getUMVCapacitorCount())))); + + if (transferred_eu.signum() == 1) { + inputLastTick += transferred_eu.longValue(); + } else { + outputLastTick += transferred_eu.longValue(); + } + + // If that difference can be added then do so. + if (WirelessNetworkManager.addEUToGlobalEnergyMap(global_energy_user_uuid, transferred_eu)) { + // If it succeeds there was sufficient energy so set the internal capacity as such. + stored = LSC_wireless_eu_cap.multiply(BigInteger.valueOf(getUHVCapacitorCount())) + .add( + UEV_wireless_eu_cap.multiply(BigInteger.valueOf(getUEVCapacitorCount())) + .add(UIV_wireless_eu_cap.multiply(BigInteger.valueOf(getUIVCapacitorCount()))) + .add(UMV_wireless_eu_cap.multiply(BigInteger.valueOf(getUMVCapacitorCount())))); + } + + return 1; + } + /** * To be called whenever the maintenance status changes or the capacity was recalculated * @@ -1149,7 +1157,24 @@ public void addUIWidgets(ModularWindow.Builder builder, UIBuildContext buildCont .addTooltip(StatCollector.translateToLocal("gui.kekztech_lapotronicenergyunit.wireless")) .setTooltipShowUpDelay(TOOLTIP_DELAY)) .widget(new FakeSyncWidget.BooleanSyncer(() -> wireless_mode, val -> wireless_mode = val)) - .widget(new FakeSyncWidget.BooleanSyncer(this::canUseWireless, val -> canUseWireless = val)); + .widget(new FakeSyncWidget.BooleanSyncer(this::canUseWireless, val -> canUseWireless = val)) + .widget(new ButtonWidget().setOnClick((clickData, widget) -> { + if (wireless_mode && canUseWireless && !balanced) { + counter = rebalance(); + } + }) + .setPlayClickSound(true) + .setBackground(() -> { + List ret = new ArrayList<>(); + ret.add(GT_UITextures.BUTTON_STANDARD); + ret.add(KT_UITextures.OVERLAY_BUTTON_WIRELESS_REBALANCE); + return ret.toArray(new IDrawable[0]); + }) + .setPos(98, 91) + .setSize(16, 16) + .setEnabled((widget) -> wireless_mode && canUseWireless && !balanced) + .addTooltip(StatCollector.translateToLocal("gui.kekztech_lapotronicenergyunit.wireless_rebalance")) + .setTooltipShowUpDelay(TOOLTIP_DELAY)); } private enum LSCHatchElement implements IHatchElement { diff --git a/src/main/resources/assets/kekztech/lang/en_US.lang b/src/main/resources/assets/kekztech/lang/en_US.lang index a77f21bcbea..30666033cb6 100644 --- a/src/main/resources/assets/kekztech/lang/en_US.lang +++ b/src/main/resources/assets/kekztech/lang/en_US.lang @@ -107,3 +107,4 @@ achievement.tile.kekztech_lapotronicenergyunit_block.10=Mega Ultimate Capacitor # -------- GUI gui.kekztech_lapotronicenergyunit.wireless=Wireless mode +gui.kekztech_lapotronicenergyunit.wireless_rebalance=Rebalance Wireless (One Time Use) diff --git a/src/main/resources/assets/kekztech/textures/gui/overlay_button/wireless_rebalance.png b/src/main/resources/assets/kekztech/textures/gui/overlay_button/wireless_rebalance.png new file mode 100644 index 0000000000000000000000000000000000000000..53c1b9c055a5d913d41b65be05856d0170df528b GIT binary patch literal 282 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1quc!S$Xljv*HQXD1!xYBu0$d+c!6)28b7@BKH~ zxE}f1mi*qWGHpxiw`c5^)O;V$Hz~27Q@yjY&dN;mM_+Q+A3+WmAv4q@A(A9CM9cwm5km>oHs%q@V9H7)L#*k*SAZ> aC4SA;nyx61NI{^}89ZJ6T-G@yGywqHTW%)+ literal 0 HcmV?d00001