Skip to content

Commit 7f68831

Browse files
committed
improve/cleanup existing mui2 code
add todo
1 parent 4b08cf4 commit 7f68831

File tree

3 files changed

+20
-24
lines changed

3 files changed

+20
-24
lines changed

src/main/java/gregtech/api/metatileentity/SimpleGeneratorMetaTileEntity.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939
import org.jetbrains.annotations.Nullable;
4040

4141
import java.util.List;
42+
import java.util.Objects;
4243
import java.util.function.Function;
4344

4445
public class SimpleGeneratorMetaTileEntity extends WorkableTieredMetaTileEntity implements IActiveOutputSide {
@@ -135,8 +136,6 @@ protected void renderOverlays(CCRenderState renderState, Matrix4 translation, IV
135136
workable.isWorkingEnabled());
136137
}
137138

138-
// todo mui2 check
139-
140139
@Override
141140
public boolean usesMui2() {
142141
RecipeMap<?> map = getRecipeMap();
@@ -145,7 +144,7 @@ public boolean usesMui2() {
145144

146145
@Override
147146
public ModularPanel buildUI(PosGuiData guiData, PanelSyncManager guiSyncManager) {
148-
RecipeMap<?> workableRecipeMap = workable.getRecipeMap();
147+
RecipeMap<?> workableRecipeMap = Objects.requireNonNull(workable.getRecipeMap(), "recipe map is null");
149148
int yOffset = 0;
150149
if (workableRecipeMap.getMaxInputs() >= 6 || workableRecipeMap.getMaxFluidInputs() >= 6 ||
151150
workableRecipeMap.getMaxOutputs() >= 6 || workableRecipeMap.getMaxFluidOutputs() >= 6) {

src/main/java/gregtech/api/metatileentity/SimpleMachineMetaTileEntity.java

Lines changed: 16 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@
7171

7272
import java.util.Arrays;
7373
import java.util.List;
74+
import java.util.Objects;
7475
import java.util.function.Function;
7576

7677
import static gregtech.api.capability.GregtechDataCodes.*;
@@ -498,7 +499,7 @@ public boolean usesMui2() {
498499

499500
@Override
500501
public ModularPanel buildUI(PosGuiData guiData, PanelSyncManager guiSyncManager) {
501-
RecipeMap<?> workableRecipeMap = workable.getRecipeMap();
502+
RecipeMap<?> workableRecipeMap = Objects.requireNonNull(workable.getRecipeMap(), "recipe map is null");
502503
int yOffset = 0;
503504
if (workableRecipeMap.getMaxInputs() >= 6 || workableRecipeMap.getMaxFluidInputs() >= 6 ||
504505
workableRecipeMap.getMaxOutputs() >= 6 || workableRecipeMap.getMaxFluidOutputs() >= 6) {
@@ -509,53 +510,47 @@ public ModularPanel buildUI(PosGuiData guiData, PanelSyncManager guiSyncManager)
509510
Widget<?> widget = workableRecipeMap.getRecipeMapUI().buildWidget(workable::getProgressPercent, importItems,
510511
exportItems, importFluids, exportFluids, yOffset, guiSyncManager);
511512

513+
BooleanSyncValue hasEnergy = new BooleanSyncValue(workable::isHasNotEnoughEnergy);
514+
512515
panel.child(widget)
513516
.child(IKey.lang(getMetaFullName()).asWidget().pos(5, 5))
514517
.child(new ItemSlot()
515518
.slot(SyncHandlers.itemSlot(chargerInventory, 0))
516519
.pos(79, 62 + yOffset)
517520
.background(GTGuiTextures.SLOT, GTGuiTextures.CHARGER_OVERLAY)
518-
.tooltip(t -> t.addLine(IKey.lang("gregtech.gui.charger_slot.tooltip", GTValues.VNF[getTier()],
519-
GTValues.VNF[getTier()]))))
521+
.addTooltipLine(IKey.lang("gregtech.gui.charger_slot.tooltip",
522+
GTValues.VNF[getTier()], GTValues.VNF[getTier()])))
520523
.child(new Widget<>()
521524
.size(18, 18)
522525
.pos(79, 42 + yOffset)
523526
.background(GTGuiTextures.INDICATOR_NO_ENERGY)
524-
// todo this isnt synced, and flicker appears on ui open even when it has enough energy
525-
.setEnabledIf($ -> workable.isHasNotEnoughEnergy()))
527+
// todo flicker appears on ui open even when it has enough energy
528+
// will need to test this
529+
.setEnabledIf($ -> hasEnergy.getBoolValue()))
526530
.bindPlayerInventory();
527531

528532
int leftButtonStartX = 7;
529533

530534
if (exportItems.getSlots() > 0) {
531-
BooleanSyncValue outputValue = new BooleanSyncValue(() -> autoOutputItems, val -> autoOutputItems = val);
532-
guiSyncManager.syncValue("item_auto_output", outputValue);
533535

534536
panel.child(new ToggleButton()
535537
.pos(leftButtonStartX, 62 + yOffset)
536-
.value(new BoolValue.Dynamic(outputValue::getBoolValue, outputValue::setBoolValue))
537538
.overlay(GTGuiTextures.BUTTON_ITEM_OUTPUT)
538-
.tooltipBuilder(t -> t
539-
.setAutoUpdate(true)
540-
.addLine(outputValue.getBoolValue() ?
541-
IKey.lang("gregtech.gui.item_auto_output.tooltip.enabled") :
542-
IKey.lang("gregtech.gui.item_auto_output.tooltip.disabled"))));
539+
.value(new BooleanSyncValue(() -> autoOutputItems, val -> autoOutputItems = val))
540+
.addTooltip(true, IKey.lang("gregtech.gui.item_auto_output.tooltip.enabled"))
541+
.addTooltip(false, IKey.lang("gregtech.gui.item_auto_output.tooltip.disabled")));
542+
543543
leftButtonStartX += 18;
544544
}
545545

546546
if (exportFluids.getTanks() > 0) {
547-
BooleanSyncValue outputValue = new BooleanSyncValue(() -> autoOutputFluids, val -> autoOutputFluids = val);
548-
guiSyncManager.syncValue("fluid_auto_output", outputValue);
549547

550548
panel.child(new ToggleButton()
551549
.pos(leftButtonStartX, 62 + yOffset)
552-
.value(new BoolValue.Dynamic(outputValue::getBoolValue, outputValue::setBoolValue))
553550
.overlay(GTGuiTextures.BUTTON_FLUID_OUTPUT)
554-
.tooltipBuilder(t -> t
555-
.setAutoUpdate(true)
556-
.addLine(outputValue.getBoolValue() ?
557-
IKey.lang("gregtech.gui.fluid_auto_output.tooltip.enabled") :
558-
IKey.lang("gregtech.gui.fluid_auto_output.tooltip.disabled"))));
551+
.value(new BooleanSyncValue(() -> autoOutputFluids, val -> autoOutputFluids = val))
552+
.addTooltip(true, IKey.lang("gregtech.gui.fluid_auto_output.tooltip.enabled"))
553+
.addTooltip(false, IKey.lang("gregtech.gui.fluid_auto_output.tooltip.disabled")));
559554
}
560555

561556
if (exportItems.getSlots() + exportFluids.getTanks() <= 9) {

src/main/java/gregtech/api/metatileentity/SteamMetaTileEntity.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,8 @@ public ModularPanel buildUI(PosGuiData guiData, PanelSyncManager guiSyncManager)
148148

149149
ModularPanel modularPanel = GTGuis.defaultPanel(this);
150150

151+
// todo this method needs options to ignore certain handlers
152+
// actually, steam machines manually construct their ui instead of using the recipe map ui
151153
Widget<?> widget = map.getRecipeMapUI().buildWidget(workableHandler::getProgressPercent, importItems,
152154
exportItems, EMPTY, exportFluids, 0, guiSyncManager);
153155

0 commit comments

Comments
 (0)