diff options
Diffstat (limited to 'src/main')
-rw-r--r-- | src/main/java/client/gui/KT_UITextures.java | 4 | ||||
-rw-r--r-- | src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java | 75 | ||||
-rw-r--r-- | src/main/resources/assets/kekztech/lang/en_US.lang | 1 | ||||
-rw-r--r-- | src/main/resources/assets/kekztech/textures/gui/overlay_button/wireless_rebalance.png | bin | 0 -> 282 bytes |
4 files changed, 55 insertions, 25 deletions
diff --git a/src/main/java/client/gui/KT_UITextures.java b/src/main/java/client/gui/KT_UITextures.java index 6f28a0280b..ec324666fa 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 40fbb656c8..6a25474959 100644 --- a/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java +++ b/src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java @@ -106,6 +106,7 @@ public class GTMTE_LapotronicSuperCapacitor private boolean wireless_mode = false; private boolean not_processed_lsc = true; private int counter = 1; + private boolean balanced = false; private final Queue<Long> energyInputValues = new LinkedList<>(); private final Queue<Long> energyOutputValues = new LinkedList<>(); @@ -770,30 +771,7 @@ public class GTMTE_LapotronicSuperCapacitor 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 class GTMTE_LapotronicSuperCapacitor 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 class GTMTE_LapotronicSuperCapacitor .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 (mMachine && wireless_mode && canUseWireless && !balanced) { + counter = rebalance(); + } + }) + .setPlayClickSound(true) + .setBackground(() -> { + List<UITexture> 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<GTMTE_LapotronicSuperCapacitor> { diff --git a/src/main/resources/assets/kekztech/lang/en_US.lang b/src/main/resources/assets/kekztech/lang/en_US.lang index a77f21bcbe..30666033cb 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 Binary files differnew file mode 100644 index 0000000000..53c1b9c055 --- /dev/null +++ b/src/main/resources/assets/kekztech/textures/gui/overlay_button/wireless_rebalance.png |