Skip to content

Commit

Permalink
Added one time use instant rebalance button to LSC
Browse files Browse the repository at this point in the history
  • Loading branch information
ReignOfFROZE committed Jun 3, 2024
1 parent 153c7f2 commit ec5a76d
Show file tree
Hide file tree
Showing 5 changed files with 60 additions and 30 deletions.
10 changes: 5 additions & 5 deletions dependencies.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -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")
Expand All @@ -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')
Expand Down
4 changes: 4 additions & 0 deletions src/main/java/client/gui/KT_UITextures.java
Original file line number Diff line number Diff line change
Expand Up @@ -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");

}
Original file line number Diff line number Diff line change
Expand Up @@ -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<Long> energyInputValues = new LinkedList<>();
private final Queue<Long> energyOutputValues = new LinkedList<>();
Expand Down Expand Up @@ -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.
Expand Down Expand Up @@ -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
*
Expand Down Expand Up @@ -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<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> {
Expand Down
1 change: 1 addition & 0 deletions src/main/resources/assets/kekztech/lang/en_US.lang
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit ec5a76d

Please sign in to comment.