Skip to content

Commit 15de3e0

Browse files
added power button
1 parent 1750ec2 commit 15de3e0

2 files changed

Lines changed: 25 additions & 5 deletions

File tree

src/main/java/com/gregtechceu/gtceu/common/data/mui/GTMuiWidgets.java

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,9 @@
3333
import net.minecraft.world.item.Items;
3434

3535
import com.mojang.blaze3d.platform.InputConstants;
36+
import it.unimi.dsi.fastutil.booleans.BooleanConsumer;
37+
38+
import java.util.function.BooleanSupplier;
3639

3740
public class GTMuiWidgets {
3841

@@ -75,20 +78,27 @@ public static Flow createTitleBar(MachineDefinition definition, int panelWidth,
7578
.size(Math.min(minPanelWidth, textTitleWidth), textHeight));
7679
}
7780

78-
public static ToggleButton createPowerButton(IRecipeLogicMachine recipeLogicMachine, PanelSyncManager syncManager) {
79-
BooleanSyncValue power = new BooleanSyncValue(() -> recipeLogicMachine.getRecipeLogic().isWorkingEnabled(),
80-
recipeLogicMachine::setWorkingEnabled);
81+
public static ToggleButton createPowerButton(BooleanSupplier getter, BooleanConsumer setter,
82+
PanelSyncManager syncManager) {
83+
BooleanSyncValue power = new BooleanSyncValue(getter, setter);
8184
syncManager.syncValue("working_enabled", power);
8285
return new ToggleButton()
8386
.value(new BoolValue.Dynamic(power::getBoolValue, power::setBoolValue))
8487
.selectedBackground(GTGuiTextures.BUTTON_POWER[1])
8588
.background(GTGuiTextures.BUTTON_POWER[0])
8689
.tooltipAutoUpdate(true)
8790
.tooltipBuilder((r) -> r.addLine(IKey.lang(Component.translatable(
88-
recipeLogicMachine.getRecipeLogic().isWorkingEnabled() ? "behaviour.soft_hammer.enabled" :
91+
power.getBoolValue() ? "behaviour.soft_hammer.enabled" :
8992
"behaviour.soft_hammer.disabled"))));
9093
}
9194

95+
public static ToggleButton createPowerButton(IRecipeLogicMachine recipeLogicMachine, PanelSyncManager syncManager) {
96+
return createPowerButton(
97+
() -> recipeLogicMachine.getRecipeLogic().isWorkingEnabled(),
98+
recipeLogicMachine::setWorkingEnabled,
99+
syncManager);
100+
}
101+
92102
public static ProgressWidget createProgressBar(IRecipeLogicMachine workableMachine, UITexture texture, int size) {
93103
return new ProgressWidget()
94104
.texture(texture, size)

src/main/java/com/gregtechceu/gtceu/common/machine/electric/BatteryBufferMachine.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
import com.gregtechceu.gtceu.api.mui.factory.PosGuiData;
1616
import com.gregtechceu.gtceu.api.mui.value.sync.PanelSyncManager;
1717
import com.gregtechceu.gtceu.api.mui.widgets.ProgressWidget;
18+
import com.gregtechceu.gtceu.api.mui.widgets.layout.Column;
1819
import com.gregtechceu.gtceu.api.mui.widgets.layout.Flow;
1920
import com.gregtechceu.gtceu.api.transfer.item.CustomItemStackHandler;
2021
import com.gregtechceu.gtceu.client.mui.screen.ModularPanel;
@@ -128,7 +129,16 @@ public ModularPanel buildUI(PosGuiData data, PanelSyncManager syncManager, UISet
128129
batteryInventory, "batteries",
129130
inventorySize, 'B',
130131
slot -> slot.background(GTGuiTextures.SLOT, GTGuiTextures.CHARGER_OVERLAY),
131-
matrix)))
132+
matrix))
133+
.child(new Column()
134+
.coverChildren()
135+
.leftRel(1.0f)
136+
.reverseLayout(true)
137+
.bottom(16)
138+
.padding(0, 8, 4, 4)
139+
.childPadding(2)
140+
.child(GTMuiWidgets.createPowerButton(this::isWorkingEnabled, this::setWorkingEnabled,
141+
syncManager))))
132142
.bindPlayerInventory();
133143
}
134144

0 commit comments

Comments
 (0)