Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -14,15 +14,13 @@

import net.minecraft.network.chat.Component;

import brachy.modularui.drawable.ItemDrawable;
import brachy.modularui.drawable.UITexture;
import brachy.modularui.screen.UISettings;
import brachy.modularui.utils.Color;
import brachy.modularui.value.sync.DoubleSyncValue;
import brachy.modularui.value.sync.IntSyncValue;
import brachy.modularui.value.sync.PanelSyncManager;
import brachy.modularui.widget.ParentWidget;
import brachy.modularui.widgets.ButtonWidget;
import brachy.modularui.widgets.layout.Flow;
import lombok.Setter;
import lombok.experimental.Accessors;
Expand Down Expand Up @@ -137,11 +135,7 @@ public MachineUIPanel build(PanelSyncManager syncManager, UISettings settings) {
}

for (var cover : machine.getCoverContainer().getCovers()) {
attachLeft.child(new ButtonWidget<>()
.overlay(new ItemDrawable(cover.getAttachItem()))
.onMousePressed((context, button) -> {
return true;
}));
GTMuiWidgets.createCoverWidget(attachLeft, cover, null, syncManager, settings);
}

return panel;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
import com.gregtechceu.gtceu.GTCEu;
import com.gregtechceu.gtceu.api.capability.IControllable;
import com.gregtechceu.gtceu.api.capability.recipe.IO;
import com.gregtechceu.gtceu.api.cover.CoverBehavior;
import com.gregtechceu.gtceu.api.cover.IMuiCover;
import com.gregtechceu.gtceu.api.cover.filter.Filter;
import com.gregtechceu.gtceu.api.cover.filter.FilterHandler;
import com.gregtechceu.gtceu.api.machine.MachineDefinition;
Expand Down Expand Up @@ -365,6 +367,28 @@ public static CycleButtonWidget createIOCycleButton(EnumSyncValue<IO> syncValue,
return cycleButton;
}

public static ParentWidget<?> createCoverWidget(Flow flow, CoverBehavior cover, SidedPosGuiData data,
PanelSyncManager syncManager, UISettings settings) {
IMuiCover muiCover;
if (cover instanceof IMuiCover) {
muiCover = (IMuiCover) cover;
} else {
muiCover = null;
return null;
}
IPanelHandler panelHandler = syncManager.syncedPanel(
cover.getAttachItem().getDisplayName() + cover.attachedSide.name(), true,
(sm, sh) -> muiCover.buildUI(data, sm, settings).disablePanelsBelow(true)
.closeOnOutOfBoundsClick(true));
return flow.child(new ButtonWidget<>()
.overlay(new ItemDrawable(cover.getAttachItem()))
.tooltip(r -> r.addFromItem(cover.getAttachItem()))
.onMousePressed((context, button) -> {
panelHandler.togglePanel();
return true;
}));
}

public static <T, S extends Filter<T, S>> ParentWidget<?> createFilterRow(Flow existingRow,
FilterHandler<T, S> filterHandler,
SidedPosGuiData data,
Expand Down
Loading