aboutsummaryrefslogtreecommitdiff
path: root/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'src/main')
-rw-r--r--src/main/java/client/gui/KT_UITextures.java4
-rw-r--r--src/main/java/common/tileentities/GTMTE_LapotronicSuperCapacitor.java75
-rw-r--r--src/main/resources/assets/kekztech/lang/en_US.lang1
-rw-r--r--src/main/resources/assets/kekztech/textures/gui/overlay_button/wireless_rebalance.pngbin0 -> 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
new file mode 100644
index 0000000000..53c1b9c055
--- /dev/null
+++ b/src/main/resources/assets/kekztech/textures/gui/overlay_button/wireless_rebalance.png
Binary files differ