Skip to content

Commit 38af9e4

Browse files
committed
Fix master merge-in
1 parent 42e9a89 commit 38af9e4

File tree

3 files changed

+84
-81
lines changed

3 files changed

+84
-81
lines changed

src/main/java/gregtech/api/capability/IMiner.java

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,22 @@
11
package gregtech.api.capability;
22

3+
import gregtech.common.mui.widget.ScrollableTextWidget;
4+
5+
import net.minecraftforge.items.IItemHandlerModifiable;
6+
37
import codechicken.lib.vec.Cuboid6;
8+
import com.cleanroommc.modularui.drawable.UITexture;
9+
import com.cleanroommc.modularui.drawable.text.RichText;
10+
import com.cleanroommc.modularui.utils.Alignment;
11+
import com.cleanroommc.modularui.value.sync.PanelSyncManager;
12+
import com.cleanroommc.modularui.value.sync.SyncHandlers;
13+
import com.cleanroommc.modularui.widget.Widget;
14+
import com.cleanroommc.modularui.widgets.layout.Flow;
15+
import com.cleanroommc.modularui.widgets.layout.Grid;
16+
import com.cleanroommc.modularui.widgets.slot.ItemSlot;
17+
import org.jetbrains.annotations.NotNull;
18+
19+
import java.util.function.Consumer;
420

521
public interface IMiner {
622

@@ -19,4 +35,31 @@ default boolean drainFluid(boolean simulate) {
1935
default int getWorkingArea(int maximumRadius) {
2036
return maximumRadius * 2 + 1;
2137
}
38+
39+
default Widget<?> createMinerWidgets(@NotNull PanelSyncManager panelSyncManager,
40+
@NotNull IItemHandlerModifiable inventory, int inventorySize,
41+
@NotNull UITexture textDisplayBackground,
42+
@NotNull Consumer<RichText> textBuilder) {
43+
int rowSize = (int) Math.sqrt(inventorySize);
44+
panelSyncManager.registerSlotGroup("export_items", rowSize);
45+
46+
return Flow.row()
47+
.coverChildren()
48+
.child(new ScrollableTextWidget()
49+
.size(105 - 3 * 2, 75 - 3 * 2)
50+
.autoUpdate(true)
51+
.alignment(Alignment.TopLeft)
52+
.textBuilder(textBuilder)
53+
.background(textDisplayBackground.asIcon()
54+
.margin(-3)))
55+
.child(new Grid()
56+
.marginLeft(6)
57+
.minElementMargin(0)
58+
.minColWidth(18)
59+
.minRowHeight(18)
60+
.mapTo(rowSize, inventorySize, index -> new ItemSlot()
61+
.slot(SyncHandlers.itemSlot(inventory, index)
62+
.slotGroup("export_items")
63+
.accessibility(false, true))));
64+
}
2265
}

src/main/java/gregtech/common/metatileentities/electric/MetaTileEntityMiner.java

Lines changed: 34 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616
import gregtech.api.mui.GTGuis;
1717
import gregtech.api.util.KeyUtil;
1818
import gregtech.client.renderer.texture.Textures;
19-
import gregtech.common.mui.widget.ScrollableTextWidget;
2019
import gregtech.core.sound.GTSoundEvents;
2120

2221
import net.minecraft.client.resources.I18n;
@@ -42,14 +41,12 @@
4241
import com.cleanroommc.modularui.api.drawable.IKey;
4342
import com.cleanroommc.modularui.factory.PosGuiData;
4443
import com.cleanroommc.modularui.screen.ModularPanel;
45-
import com.cleanroommc.modularui.utils.Alignment;
44+
import com.cleanroommc.modularui.screen.UISettings;
4645
import com.cleanroommc.modularui.value.sync.BooleanSyncValue;
4746
import com.cleanroommc.modularui.value.sync.IntSyncValue;
4847
import com.cleanroommc.modularui.value.sync.PanelSyncManager;
49-
import com.cleanroommc.modularui.value.sync.SyncHandlers;
50-
import com.cleanroommc.modularui.widgets.ItemSlot;
5148
import com.cleanroommc.modularui.widgets.SlotGroupWidget;
52-
import com.cleanroommc.modularui.widgets.layout.Grid;
49+
import com.cleanroommc.modularui.widgets.slot.ItemSlot;
5350
import org.jetbrains.annotations.NotNull;
5451
import org.jetbrains.annotations.Nullable;
5552

@@ -112,10 +109,7 @@ public boolean usesMui2() {
112109

113110
@SuppressWarnings("DuplicatedCode")
114111
@Override
115-
public ModularPanel buildUI(PosGuiData guiData, PanelSyncManager panelSyncManager) {
116-
int rowSize = (int) Math.sqrt(inventorySize);
117-
panelSyncManager.registerSlotGroup("export_items", rowSize);
118-
112+
public ModularPanel buildUI(PosGuiData guiData, PanelSyncManager panelSyncManager, UISettings settings) {
119113
IntSyncValue radiusSync = new IntSyncValue(() -> getWorkingArea(minerLogic.getCurrentRadius()));
120114
BooleanSyncValue isDoneSync = new BooleanSyncValue(minerLogic::isDone);
121115
BooleanSyncValue isWorkingSync = new BooleanSyncValue(minerLogic::isWorking);
@@ -140,51 +134,37 @@ public ModularPanel buildUI(PosGuiData guiData, PanelSyncManager panelSyncManage
140134
.child(IKey.lang(getMetaFullName())
141135
.asWidget()
142136
.pos(5, 5))
143-
.child(new ScrollableTextWidget()
144-
.pos(7 + 3, 15 + 3)
145-
.size(105 - 3 * 2, 75 - 3 * 2)
146-
.autoUpdate(true)
147-
.alignment(Alignment.TopLeft)
148-
.textBuilder(text -> {
149-
text.addLine(KeyUtil.lang(TextFormatting.WHITE, "gregtech.machine.miner.mining_at"));
150-
text.addLine(KeyUtil.lang(TextFormatting.WHITE, "gregtech.machine.miner.mining_pos_x",
151-
xPosSync.getIntValue()));
152-
text.addLine(KeyUtil.lang(TextFormatting.WHITE, "gregtech.machine.miner.mining_pos_y",
153-
yPosSync.getIntValue()));
154-
text.addLine(KeyUtil.lang(TextFormatting.WHITE, "gregtech.machine.miner.mining_pos_z",
155-
zPosSync.getIntValue()));
156-
157-
text.addLine(KeyUtil.lang(TextFormatting.WHITE, "gregtech.machine.miner.working_area",
158-
radiusSync.getIntValue(), radiusSync.getIntValue()));
159-
160-
if (isDoneSync.getBoolValue()) {
161-
text.addLine(KeyUtil.lang(TextFormatting.GREEN, "gregtech.machine.miner.done"));
162-
} else if (isWorkingSync.getBoolValue()) {
163-
text.addLine(KeyUtil.lang(TextFormatting.GOLD, "gregtech.machine.miner.working"));
164-
} else if (!isWorkingEnabledSync.getBoolValue()) {
165-
text.addLine(KeyUtil.lang("gregtech.multiblock.work_paused"));
166-
}
167-
168-
if (isInventoryFullSync.getBoolValue()) {
169-
text.addLine(KeyUtil.lang(TextFormatting.RED, "gregtech.machine.miner.invfull"));
170-
}
171-
172-
if (!hasEnoughEnergySync.getBoolValue()) {
173-
text.addLine(KeyUtil.lang(TextFormatting.RED, "gregtech.machine.miner.needspower"));
174-
}
175-
})
176-
.background(GTGuiTextures.DISPLAY.asIcon()
177-
.margin(-3)))
178-
.child(new Grid()
179-
.pos(151 - 18 * 2, 15)
180-
.minElementMargin(0)
181-
.minColWidth(18)
182-
.minRowHeight(18)
183-
.mapTo(rowSize, inventorySize, index -> new ItemSlot()
184-
.slot(SyncHandlers.itemSlot(exportItems, index)
185-
.slotGroup("export_items")
186-
.accessibility(false, true))))
187-
.child(SlotGroupWidget.playerInventory()
137+
.child(createMinerWidgets(panelSyncManager, exportItems, inventorySize, GTGuiTextures.DISPLAY, text -> {
138+
text.addLine(KeyUtil.lang(TextFormatting.WHITE, "gregtech.machine.miner.mining_at"));
139+
text.addLine(KeyUtil.lang(TextFormatting.WHITE, "gregtech.machine.miner.mining_pos_x",
140+
xPosSync.getIntValue()));
141+
text.addLine(KeyUtil.lang(TextFormatting.WHITE, "gregtech.machine.miner.mining_pos_y",
142+
yPosSync.getIntValue()));
143+
text.addLine(KeyUtil.lang(TextFormatting.WHITE, "gregtech.machine.miner.mining_pos_z",
144+
zPosSync.getIntValue()));
145+
146+
text.addLine(KeyUtil.lang(TextFormatting.WHITE, "gregtech.machine.miner.working_area",
147+
radiusSync.getIntValue(), radiusSync.getIntValue()));
148+
149+
if (isDoneSync.getBoolValue()) {
150+
text.addLine(KeyUtil.lang(TextFormatting.GREEN, "gregtech.machine.miner.done"));
151+
} else if (isWorkingSync.getBoolValue()) {
152+
text.addLine(KeyUtil.lang(TextFormatting.GOLD, "gregtech.machine.miner.working"));
153+
} else if (!isWorkingEnabledSync.getBoolValue()) {
154+
text.addLine(KeyUtil.lang("gregtech.multiblock.work_paused"));
155+
}
156+
157+
if (isInventoryFullSync.getBoolValue()) {
158+
text.addLine(KeyUtil.lang(TextFormatting.RED, "gregtech.machine.miner.invfull"));
159+
}
160+
161+
if (!hasEnoughEnergySync.getBoolValue()) {
162+
text.addLine(KeyUtil.lang(TextFormatting.RED, "gregtech.machine.miner.needspower"));
163+
}
164+
})
165+
.left(10)
166+
.top(18))
167+
.child(SlotGroupWidget.playerInventory(false)
188168
.left(7)
189169
.bottom(7))
190170
.child(new ItemSlot()

src/main/java/gregtech/common/metatileentities/steam/SteamMiner.java

Lines changed: 7 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
import gregtech.client.renderer.texture.Textures;
2020
import gregtech.client.renderer.texture.cube.SimpleSidedCubeRenderer;
2121
import gregtech.common.ConfigHolder;
22-
import gregtech.common.mui.widget.ScrollableTextWidget;
2322

2423
import net.minecraft.block.Block;
2524
import net.minecraft.block.state.IBlockState;
@@ -50,14 +49,11 @@
5049
import com.cleanroommc.modularui.api.drawable.IKey;
5150
import com.cleanroommc.modularui.factory.PosGuiData;
5251
import com.cleanroommc.modularui.screen.ModularPanel;
53-
import com.cleanroommc.modularui.utils.Alignment;
52+
import com.cleanroommc.modularui.screen.UISettings;
5453
import com.cleanroommc.modularui.value.sync.BooleanSyncValue;
5554
import com.cleanroommc.modularui.value.sync.IntSyncValue;
5655
import com.cleanroommc.modularui.value.sync.PanelSyncManager;
57-
import com.cleanroommc.modularui.value.sync.SyncHandlers;
58-
import com.cleanroommc.modularui.widgets.ItemSlot;
5956
import com.cleanroommc.modularui.widgets.SlotGroupWidget;
60-
import com.cleanroommc.modularui.widgets.layout.Grid;
6157
import org.apache.commons.lang3.ArrayUtils;
6258
import org.apache.commons.lang3.tuple.Pair;
6359
import org.jetbrains.annotations.NotNull;
@@ -135,10 +131,7 @@ public GTGuiTheme getUITheme() {
135131

136132
@SuppressWarnings("DuplicatedCode")
137133
@Override
138-
public ModularPanel buildUI(PosGuiData guiData, PanelSyncManager panelSyncManager) {
139-
int rowSize = (int) Math.sqrt(inventorySize);
140-
panelSyncManager.registerSlotGroup("export_items", rowSize);
141-
134+
public ModularPanel buildUI(PosGuiData guiData, PanelSyncManager panelSyncManager, UISettings settings) {
142135
IntSyncValue radiusSync = new IntSyncValue(() -> getWorkingArea(minerLogic.getCurrentRadius()));
143136
BooleanSyncValue isDoneSync = new BooleanSyncValue(minerLogic::isDone);
144137
BooleanSyncValue isWorkingSync = new BooleanSyncValue(minerLogic::isWorking);
@@ -165,12 +158,8 @@ public ModularPanel buildUI(PosGuiData guiData, PanelSyncManager panelSyncManage
165158
.child(IKey.lang(getMetaFullName())
166159
.asWidget()
167160
.pos(5, 5))
168-
.child(new ScrollableTextWidget()
169-
.pos(7 + 3, 15 + 3)
170-
.size(105 - 3 * 2, 75 - 3 * 2)
171-
.autoUpdate(true)
172-
.alignment(Alignment.TopLeft)
173-
.textBuilder(text -> {
161+
.child(createMinerWidgets(panelSyncManager, exportItems, inventorySize, GTGuiTextures.DISPLAY_BRONZE,
162+
text -> {
174163
text.addLine(KeyUtil.lang(TextFormatting.WHITE, "gregtech.machine.miner.mining_at"));
175164
text.addLine(KeyUtil.lang(TextFormatting.WHITE, "gregtech.machine.miner.mining_pos_x",
176165
xPosSync.getIntValue()));
@@ -206,18 +195,9 @@ public ModularPanel buildUI(PosGuiData guiData, PanelSyncManager panelSyncManage
206195
text.addLine(KeyUtil.lang(TextFormatting.RED, "gregtech.machine.steam_miner.steam"));
207196
}
208197
})
209-
.background(GTGuiTextures.DISPLAY_BRONZE.asIcon()
210-
.margin(-3)))
211-
.child(new Grid()
212-
.pos(151 - 18 * 2, 15)
213-
.minElementMargin(0)
214-
.minColWidth(18)
215-
.minRowHeight(18)
216-
.mapTo(rowSize, inventorySize, index -> new ItemSlot()
217-
.slot(SyncHandlers.itemSlot(exportItems, index)
218-
.slotGroup("export_items")
219-
.accessibility(false, true))))
220-
.child(SlotGroupWidget.playerInventory()
198+
.left(10)
199+
.top(18))
200+
.child(SlotGroupWidget.playerInventory(false)
221201
.left(7)
222202
.bottom(7));
223203
}

0 commit comments

Comments
 (0)