Skip to content

Commit ceefb8f

Browse files
[MUI2] HPCA (#4675)
1 parent 76118e3 commit ceefb8f

15 files changed

Lines changed: 178 additions & 80 deletions

File tree

src/generated/resources/assets/gtceu/lang/en_ud.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3377,10 +3377,9 @@
33773377
"gtceu.multiblock.hpca.info_bridging_disabled": "pǝןqɐsıᗡ buıbpıɹᗺ",
33783378
"gtceu.multiblock.hpca.info_bridging_enabled": "pǝןqɐuƎ buıbpıɹᗺ",
33793379
"gtceu.multiblock.hpca.info_coolant_name": "ʇuɐןooƆ ᗺƆԀ",
3380+
"gtceu.multiblock.hpca.info_cooling_demand": "%d / %s :puɐɯǝᗡ buıןooƆ",
33803381
"gtceu.multiblock.hpca.info_max_computation": "%s :ʇ/∩MƆ xɐW",
33813382
"gtceu.multiblock.hpca.info_max_coolant_required": "%s :pǝpǝǝN ʇuɐןooƆ",
3382-
"gtceu.multiblock.hpca.info_max_cooling_available": "%s :ǝןqɐןıɐʌⱯ buıןooƆ",
3383-
"gtceu.multiblock.hpca.info_max_cooling_demand": "%s :puɐɯǝᗡ buıןooƆ",
33843383
"gtceu.multiblock.hpca.temperature": "%s :ǝɹnʇɐɹǝdɯǝ⟘",
33853384
"gtceu.multiblock.hpca.warning_low_cooling": "buıןooɔ ɥbnouǝ ʇoN -",
33863385
"gtceu.multiblock.hpca.warning_multiple_bridges": ")ʇıɟǝuǝq ןɐuoıʇıppɐ ou sǝpıʌoɹd( ǝɹnʇɔnɹʇs uı sǝbpıɹq ǝןdıʇןnW -",

src/generated/resources/assets/gtceu/lang/en_us.json

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3377,10 +3377,9 @@
33773377
"gtceu.multiblock.hpca.info_bridging_disabled": "Bridging Disabled",
33783378
"gtceu.multiblock.hpca.info_bridging_enabled": "Bridging Enabled",
33793379
"gtceu.multiblock.hpca.info_coolant_name": "PCB Coolant",
3380+
"gtceu.multiblock.hpca.info_cooling_demand": "Cooling Demand: %s / %d",
33803381
"gtceu.multiblock.hpca.info_max_computation": "Max CWU/t: %s",
33813382
"gtceu.multiblock.hpca.info_max_coolant_required": "Coolant Needed: %s",
3382-
"gtceu.multiblock.hpca.info_max_cooling_available": "Cooling Available: %s",
3383-
"gtceu.multiblock.hpca.info_max_cooling_demand": "Cooling Demand: %s",
33843383
"gtceu.multiblock.hpca.temperature": "Temperature: %s",
33853384
"gtceu.multiblock.hpca.warning_low_cooling": "- Not enough cooling",
33863385
"gtceu.multiblock.hpca.warning_multiple_bridges": "- Multiple bridges in structure (provides no additional benefit)",

src/main/java/com/gregtechceu/gtceu/api/machine/multiblock/MultiblockControllerMachine.java

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,8 @@
88
import com.gregtechceu.gtceu.api.machine.MultiblockMachineDefinition;
99
import com.gregtechceu.gtceu.api.machine.feature.multiblock.IMultiPart;
1010
import com.gregtechceu.gtceu.api.machine.property.GTMachineModelProperties;
11+
import com.gregtechceu.gtceu.api.mui.base.widget.IWidget;
12+
import com.gregtechceu.gtceu.api.mui.value.sync.PanelSyncManager;
1113
import com.gregtechceu.gtceu.api.pattern.BlockPattern;
1214
import com.gregtechceu.gtceu.api.pattern.MultiblockState;
1315
import com.gregtechceu.gtceu.api.pattern.MultiblockWorldSavedData;
@@ -410,4 +412,15 @@ public boolean checkPatternWithTryLock() {
410412
return false;
411413
}
412414
}
415+
416+
/**
417+
* Can be overridden to just add widgets to the black box in the middle instead of overriding the whole UI.
418+
* Don't forget to invoke {@code super.getWidgetsForDisplay} to add the default lines (progress, voltage, etc.).
419+
*
420+
* @param syncManager the sync manager
421+
* @return list of widgets to be displayed inside the black box in the middle of a standard multiblock UI
422+
*/
423+
public List<IWidget> getWidgetsForDisplay(PanelSyncManager syncManager) {
424+
return new ArrayList<>();
425+
}
413426
}

src/main/java/com/gregtechceu/gtceu/api/machine/multiblock/WorkableElectricMultiblockMachine.java

Lines changed: 21 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -6,29 +6,27 @@
66
import com.gregtechceu.gtceu.api.capability.recipe.EURecipeCapability;
77
import com.gregtechceu.gtceu.api.capability.recipe.IO;
88
import com.gregtechceu.gtceu.api.capability.recipe.IRecipeHandler;
9-
import com.gregtechceu.gtceu.api.gui.fancy.*;
109
import com.gregtechceu.gtceu.api.machine.feature.IMuiMachine;
1110
import com.gregtechceu.gtceu.api.machine.feature.IOverclockMachine;
1211
import com.gregtechceu.gtceu.api.machine.feature.ITieredMachine;
1312
import com.gregtechceu.gtceu.api.machine.trait.RecipeLogic;
1413
import com.gregtechceu.gtceu.api.misc.EnergyContainerList;
14+
import com.gregtechceu.gtceu.api.mui.base.widget.IWidget;
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.widget.ParentWidget;
1818
import com.gregtechceu.gtceu.api.mui.widgets.SlotGroupWidget;
19-
import com.gregtechceu.gtceu.api.mui.widgets.layout.Column;
20-
import com.gregtechceu.gtceu.api.mui.widgets.layout.Row;
19+
import com.gregtechceu.gtceu.api.mui.widgets.layout.Flow;
2120
import com.gregtechceu.gtceu.api.sync_system.annotations.SaveField;
2221
import com.gregtechceu.gtceu.client.mui.screen.ModularPanel;
2322
import com.gregtechceu.gtceu.client.mui.screen.UISettings;
2423
import com.gregtechceu.gtceu.common.data.mui.GTMuiWidgets;
2524
import com.gregtechceu.gtceu.common.data.mui.GTMultiblockPanelUtil;
25+
import com.gregtechceu.gtceu.common.data.mui.GTMultiblockTextUtil;
2626
import com.gregtechceu.gtceu.common.mui.GTGuiTextures;
2727
import com.gregtechceu.gtceu.common.mui.GTGuis;
2828
import com.gregtechceu.gtceu.utils.GTUtil;
2929

30-
import com.lowdragmc.lowdraglib.gui.widget.*;
31-
3230
import net.minecraft.MethodsReturnNonnullByDefault;
3331

3432
import lombok.Getter;
@@ -100,19 +98,20 @@ public void setBatchEnabled(boolean batch) {
10098
//////////////////////////////////////
10199
@Override
102100
public ModularPanel buildUI(PosGuiData data, PanelSyncManager syncManager, UISettings settings) {
103-
var panel = GTGuis.createPanel(this, 176, 164);
101+
var panel = GTGuis.createPanel(this, 196, 237);
104102

105103
var panelUtil = new GTMultiblockPanelUtil(this);
106104

107-
panel.child(GTMuiWidgets.createTitleBar(this.getDefinition(), 176))
105+
panel.child(GTMuiWidgets.createTitleBar(this.getDefinition(), 196))
108106
.child(new ParentWidget<>()
109107
.widthRel(0.95f)
110-
.heightRel(.45f)
108+
.heightRel(.65f)
111109
.margin(4, 0)
112-
.left(3).top(5)
113-
.child(new Row()
114-
.child(panelUtil.getMainTextPanel(syncManager, 170, 70))))
115-
.child(new Column()
110+
.left(3).top(2)
111+
.horizontalCenter()
112+
.child(Flow.row()
113+
.child(panelUtil.getMainTextPanel(syncManager, 186, 146))))
114+
.child(Flow.col()
116115
.coverChildren()
117116
.leftRel(1.0f)
118117
.reverseLayout(true)
@@ -122,11 +121,20 @@ public ModularPanel buildUI(PosGuiData data, PanelSyncManager syncManager, UISet
122121
.background(GTGuiTextures.BACKGROUND.getSubArea(0.25f, 0f, 1.0f, 1.0f))
123122
.child(GTMuiWidgets.createPowerButton(this, syncManager))
124123
.child(GTMuiWidgets.createVoidingButton(this, syncManager)))
125-
.child(SlotGroupWidget.playerInventory(false).left(7).bottom(7));
124+
.child(SlotGroupWidget.playerInventory(false).left(7).bottom(7).horizontalCenter());
126125

127126
return panel;
128127
}
129128

129+
@Override
130+
public List<IWidget> getWidgetsForDisplay(PanelSyncManager syncManager) {
131+
List<IWidget> widgets = new ArrayList<>();
132+
widgets.add(GTMultiblockTextUtil.addEnergyTierLine(this, syncManager));
133+
widgets.add(GTMultiblockTextUtil.addEnergyUsageLine(this, syncManager));
134+
widgets.addAll(super.getWidgetsForDisplay(syncManager));
135+
return widgets;
136+
}
137+
130138
// @Override
131139
// public void addDisplayText(List<Component> textList) {
132140
// int numParallels;

src/main/java/com/gregtechceu/gtceu/api/machine/multiblock/WorkableMultiblockMachine.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,14 @@
1010
import com.gregtechceu.gtceu.api.machine.feature.multiblock.IWorkableMultiController;
1111
import com.gregtechceu.gtceu.api.machine.property.GTMachineModelProperties;
1212
import com.gregtechceu.gtceu.api.machine.trait.*;
13+
import com.gregtechceu.gtceu.api.mui.base.widget.IWidget;
14+
import com.gregtechceu.gtceu.api.mui.value.sync.PanelSyncManager;
1315
import com.gregtechceu.gtceu.api.recipe.GTRecipe;
1416
import com.gregtechceu.gtceu.api.recipe.GTRecipeType;
1517
import com.gregtechceu.gtceu.api.sync_system.annotations.SaveField;
1618
import com.gregtechceu.gtceu.api.sync_system.annotations.SyncToClient;
1719
import com.gregtechceu.gtceu.client.model.machine.MachineRenderState;
20+
import com.gregtechceu.gtceu.common.data.mui.GTMultiblockTextUtil;
1821
import com.gregtechceu.gtceu.utils.ISubscription;
1922

2023
import net.minecraft.MethodsReturnNonnullByDefault;
@@ -320,4 +323,17 @@ public void setVoidingMode(VoidingMode mode) {
320323
voidingMode = mode;
321324
getRecipeLogic().updateTickSubscription();
322325
}
326+
327+
@Override
328+
public List<IWidget> getWidgetsForDisplay(PanelSyncManager syncManager) {
329+
List<IWidget> widgets = super.getWidgetsForDisplay(syncManager);
330+
widgets.add(GTMultiblockTextUtil.addProgressLine(this, syncManager));
331+
widgets.add(GTMultiblockTextUtil.addWorkingStatusLine(this, syncManager));
332+
widgets.add(GTMultiblockTextUtil.addParallelLine(this, syncManager));
333+
widgets.add(GTMultiblockTextUtil.addBatchModeLine(this, syncManager));
334+
widgets.add(GTMultiblockTextUtil.addSubtickParallelsLine(this, syncManager));
335+
widgets.add(GTMultiblockTextUtil.addTotalRunsLine(this, syncManager));
336+
widgets.add(GTMultiblockTextUtil.addOutputLines(this, syncManager));
337+
return widgets;
338+
}
323339
}

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

Lines changed: 2 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,6 @@
22

33
import com.gregtechceu.gtceu.api.machine.feature.IRecipeLogicMachine;
44
import com.gregtechceu.gtceu.api.machine.multiblock.MultiblockControllerMachine;
5-
import com.gregtechceu.gtceu.api.machine.multiblock.WorkableElectricMultiblockMachine;
6-
import com.gregtechceu.gtceu.api.machine.multiblock.WorkableMultiblockMachine;
75
import com.gregtechceu.gtceu.api.machine.trait.RecipeLogic;
86
import com.gregtechceu.gtceu.api.mui.base.widget.IWidget;
97
import com.gregtechceu.gtceu.api.mui.drawable.Icon;
@@ -18,15 +16,13 @@
1816

1917
public class GTMultiblockPanelUtil {
2018

21-
private MultiblockControllerMachine controller;
19+
private final MultiblockControllerMachine controller;
2220

2321
public GTMultiblockPanelUtil(MultiblockControllerMachine controller) {
2422
this.controller = controller;
2523
}
2624

2725
public Widget<?> getMainTextPanel(PanelSyncManager syncManager, int width, int height) {
28-
boolean isFormed = controller.isFormed();
29-
3026
var parentWidget = new ParentWidget<>();
3127
var listWidget = new ListWidget<>()
3228
.width(width - 6)
@@ -37,20 +33,7 @@ public Widget<?> getMainTextPanel(PanelSyncManager syncManager, int width, int h
3733
parentWidget.size(width, height)
3834
.background(GTGuiTextures.MUI_DISPLAY);
3935

40-
if (controller instanceof WorkableMultiblockMachine rlMachine) {
41-
listWidget.child(GTMultiblockTextUtil.addProgressLine(rlMachine, syncManager));
42-
43-
if (rlMachine instanceof WorkableElectricMultiblockMachine workableElectricMachine) {
44-
listWidget.child(GTMultiblockTextUtil.addEnergyTierLine(workableElectricMachine, syncManager));
45-
listWidget.child(GTMultiblockTextUtil.addEnergyUsageLine(workableElectricMachine, syncManager));
46-
}
47-
listWidget.child(GTMultiblockTextUtil.addWorkingStatusLine(rlMachine, syncManager));
48-
listWidget.child(GTMultiblockTextUtil.addParallelLine(rlMachine, syncManager));
49-
listWidget.child(GTMultiblockTextUtil.addBatchModeLine(rlMachine, syncManager));
50-
listWidget.child(GTMultiblockTextUtil.addSubtickParallelsLine(rlMachine, syncManager));
51-
listWidget.child(GTMultiblockTextUtil.addTotalRunsLine(rlMachine, syncManager));
52-
listWidget.child(GTMultiblockTextUtil.addOutputLines(rlMachine, syncManager));
53-
}
36+
listWidget.children(controller.getWidgetsForDisplay(syncManager));
5437
parentWidget.child(listWidget.left(3).top(3));
5538
return parentWidget;
5639
}

src/main/java/com/gregtechceu/gtceu/common/machine/multiblock/electric/research/HPCAMachine.java

Lines changed: 75 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
import com.gregtechceu.gtceu.api.capability.recipe.EURecipeCapability;
77
import com.gregtechceu.gtceu.api.capability.recipe.FluidRecipeCapability;
88
import com.gregtechceu.gtceu.api.capability.recipe.IO;
9-
import com.gregtechceu.gtceu.api.gui.GuiTextures;
109
import com.gregtechceu.gtceu.api.gui.util.TimedProgressSupplier;
1110
import com.gregtechceu.gtceu.api.machine.MetaMachine;
1211
import com.gregtechceu.gtceu.api.machine.TickableSubscription;
@@ -18,17 +17,27 @@
1817
import com.gregtechceu.gtceu.api.machine.trait.hpca.HPCAComputationProviderTrait;
1918
import com.gregtechceu.gtceu.api.machine.trait.hpca.HPCACoolantProviderTrait;
2019
import com.gregtechceu.gtceu.api.misc.EnergyContainerList;
20+
import com.gregtechceu.gtceu.api.mui.base.drawable.IDrawable;
21+
import com.gregtechceu.gtceu.api.mui.base.drawable.IKey;
22+
import com.gregtechceu.gtceu.api.mui.base.widget.IWidget;
23+
import com.gregtechceu.gtceu.api.mui.value.sync.GenericSyncValue;
24+
import com.gregtechceu.gtceu.api.mui.value.sync.PanelSyncManager;
25+
import com.gregtechceu.gtceu.api.mui.widgets.TextWidget;
26+
import com.gregtechceu.gtceu.api.mui.widgets.layout.Grid;
2127
import com.gregtechceu.gtceu.api.pattern.util.RelativeDirection;
2228
import com.gregtechceu.gtceu.api.sync_system.ISyncManaged;
2329
import com.gregtechceu.gtceu.api.sync_system.SyncDataHolder;
2430
import com.gregtechceu.gtceu.api.sync_system.annotations.SaveField;
2531
import com.gregtechceu.gtceu.api.sync_system.annotations.SyncToClient;
2632
import com.gregtechceu.gtceu.api.transfer.fluid.FluidHandlerList;
33+
import com.gregtechceu.gtceu.client.mui.screen.RichTooltip;
34+
import com.gregtechceu.gtceu.common.data.mui.GTMultiblockTextUtil;
2735
import com.gregtechceu.gtceu.common.machine.multiblock.part.hpca.HPCAComponentPartMachine;
36+
import com.gregtechceu.gtceu.common.mui.GTGuiTextures;
2837
import com.gregtechceu.gtceu.config.ConfigHolder;
38+
import com.gregtechceu.gtceu.utils.GTStringUtils;
2939
import com.gregtechceu.gtceu.utils.GTTransferUtils;
30-
31-
import com.lowdragmc.lowdraglib.gui.texture.ResourceTexture;
40+
import com.gregtechceu.gtceu.utils.serialization.network.ByteBufAdapters;
3241

3342
import net.minecraft.ChatFormatting;
3443
import net.minecraft.MethodsReturnNonnullByDefault;
@@ -39,6 +48,8 @@
3948
import net.minecraft.network.chat.MutableComponent;
4049
import net.minecraft.server.TickTask;
4150
import net.minecraft.server.level.ServerLevel;
51+
import net.minecraft.world.item.ItemStack;
52+
import net.minecraft.world.item.TooltipFlag;
4253
import net.minecraft.world.level.Level;
4354
import net.minecraftforge.fluids.FluidStack;
4455
import net.minecraftforge.fluids.capability.IFluidHandler;
@@ -240,6 +251,37 @@ private void consumeEnergy() {
240251
}
241252
}
242253

254+
@Override
255+
public List<IWidget> getWidgetsForDisplay(PanelSyncManager syncManager) {
256+
if (isRemote()) {
257+
hpcaHandler.clearClientComponents();
258+
if (isFormed()) {
259+
hpcaHandler.tryGatherClientComponents(getLevel(), getBlockPos(), getFrontFacing(), getUpwardsFacing(),
260+
isFlipped());
261+
}
262+
}
263+
GenericSyncValue<Component> text = GenericSyncValue.builder(Component.class)
264+
.adapter(ByteBufAdapters.COMPONENT)
265+
.getter(() -> {
266+
List<Component> list = new ArrayList<>();
267+
hpcaHandler.addErrors(list);
268+
hpcaHandler.addWarnings(list);
269+
hpcaHandler.addInfo(list);
270+
return GTStringUtils.toComponent(list);
271+
})
272+
.build();
273+
syncManager.syncValue("text", text);
274+
List<IWidget> widgets = new ArrayList<>();
275+
widgets.add(GTMultiblockTextUtil.addWorkingStatusLine(this, syncManager));
276+
widgets.add(GTMultiblockTextUtil.addEnergyUsageExactLine(this, syncManager));
277+
widgets.add(new TextWidget<>(IKey.dynamic(text::getValue)));
278+
widgets.add(new Grid()
279+
.mapTo(3, 9, i -> hpcaHandler.getComponentTexture(i).asWidget()
280+
.tooltip(hpcaHandler.getComponentTooltip(i)))
281+
.horizontalCenter());
282+
return widgets;
283+
}
284+
243285
// @Override
244286
// public Widget createUIWidget() {
245287
// WidgetGroup builder = (WidgetGroup) super.createUIWidget();
@@ -635,21 +677,25 @@ public int getMaxCoolantDemand() {
635677
}
636678

637679
public void addInfo(List<Component> textList) {
638-
// Max Computation
639-
MutableComponent data = Component.literal(Integer.toString(getMaxCWUt())).withStyle(ChatFormatting.AQUA);
640-
textList.add(Component.translatable("gtceu.multiblock.hpca.info_max_computation", data)
680+
// CWU/t
681+
Component cwutInfo = Component.literal(cachedCWUt + " / " + getMaxCWUt() + " CWU/t")
682+
.withStyle(ChatFormatting.AQUA);
683+
textList.add(Component.translatable("gtceu.multiblock.hpca.computation", cwutInfo)
684+
.withStyle(ChatFormatting.GRAY));
685+
686+
// Temperature
687+
Component tempInfo = Component.literal(Math.round(controller.temperature / 10.0D) + " °C")
688+
.withStyle(controller.getDisplayTemperatureColor());
689+
textList.add(Component.translatable("gtceu.multiblock.hpca.temperature", tempInfo)
641690
.withStyle(ChatFormatting.GRAY));
642691

643692
// Cooling
644693
ChatFormatting coolingColor = getMaxCoolingAmount() < getMaxCoolingDemand() ? ChatFormatting.RED :
645694
ChatFormatting.GREEN;
646-
data = Component.literal(Integer.toString(getMaxCoolingDemand())).withStyle(coolingColor);
647-
textList.add(Component.translatable("gtceu.multiblock.hpca.info_max_cooling_demand", data)
648-
.withStyle(ChatFormatting.GRAY));
649-
650-
data = Component.literal(Integer.toString(getMaxCoolingAmount())).withStyle(coolingColor);
651-
textList.add(Component.translatable("gtceu.multiblock.hpca.info_max_cooling_available", data)
652-
.withStyle(ChatFormatting.GRAY));
695+
MutableComponent data = Component.literal(Integer.toString(getMaxCoolingDemand())).withStyle(coolingColor);
696+
textList.add(
697+
Component.translatable("gtceu.multiblock.hpca.info_cooling_demand", data, getMaxCoolingAmount())
698+
.withStyle(ChatFormatting.GRAY));
653699

654700
// Coolant Required
655701
if (getMaxCoolantDemand() > 0) {
@@ -702,13 +748,26 @@ public void addErrors(List<Component> textList) {
702748
}
703749
}
704750

705-
public ResourceTexture getComponentTexture(int index) {
751+
public IDrawable getComponentTexture(int index) {
706752
if (components.size() <= index) {
707-
return GuiTextures.BLANK_TRANSPARENT;
753+
return GTGuiTextures.BLANK_TRANSPARENT;
708754
}
709755
if (components.get(index).getMachine() instanceof HPCAComponentPartMachine componentPartMachine)
710756
return componentPartMachine.getComponentIcon();
711-
return GuiTextures.BLANK_TRANSPARENT;
757+
return GTGuiTextures.BLANK_TRANSPARENT;
758+
}
759+
760+
public RichTooltip getComponentTooltip(int index) {
761+
if (components.size() <= index) {
762+
return new RichTooltip();
763+
}
764+
if (components.get(index).getMachine() instanceof HPCAComponentPartMachine componentPartMachine) {
765+
ItemStack stack = componentPartMachine.getDefinition().asStack();
766+
RichTooltip tooltip = new RichTooltip();
767+
stack.getTooltipLines(null, TooltipFlag.NORMAL).forEach(tooltip::addLine);
768+
return tooltip;
769+
}
770+
return new RichTooltip();
712771
}
713772

714773
public void tryGatherClientComponents(Level world, BlockPos pos, Direction frontFacing,

src/main/java/com/gregtechceu/gtceu/common/machine/multiblock/part/hpca/HPCABridgePartMachine.java

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,10 +2,9 @@
22

33
import com.gregtechceu.gtceu.api.GTValues;
44
import com.gregtechceu.gtceu.api.blockentity.BlockEntityCreationInfo;
5-
import com.gregtechceu.gtceu.api.gui.GuiTextures;
65
import com.gregtechceu.gtceu.api.machine.trait.hpca.HPCAComponentTrait;
7-
8-
import com.lowdragmc.lowdraglib.gui.texture.ResourceTexture;
6+
import com.gregtechceu.gtceu.api.mui.base.drawable.IDrawable;
7+
import com.gregtechceu.gtceu.common.mui.GTGuiTextures;
98

109
import net.minecraft.MethodsReturnNonnullByDefault;
1110

@@ -25,7 +24,7 @@ public boolean isAdvanced() {
2524
}
2625

2726
@Override
28-
public ResourceTexture getComponentIcon() {
29-
return GuiTextures.HPCA_ICON_BRIDGE_COMPONENT;
27+
public IDrawable getComponentIcon() {
28+
return GTGuiTextures.HPCA_BRIDGE_COMPONENT;
3029
}
3130
}

0 commit comments

Comments
 (0)