11package gregtech .common .metatileentities .electric ;
22
33import gregtech .api .GTValues ;
4- import gregtech .api .gui .GuiTextures ;
5- import gregtech .api .gui .ModularUI ;
6- import gregtech .api .gui .widgets .SlotWidget ;
74import gregtech .api .items .itemhandlers .GTItemStackHandler ;
85import gregtech .api .metatileentity .MetaTileEntity ;
96import gregtech .api .metatileentity .TieredMetaTileEntity ;
107import gregtech .api .metatileentity .interfaces .IGregTechTileEntity ;
8+ import gregtech .api .mui .GTGuiTextures ;
9+ import gregtech .api .mui .GTGuis ;
1110import gregtech .api .unification .OreDictUnifier ;
1211import gregtech .api .util .GTTransferUtils ;
1312import gregtech .client .renderer .texture .Textures ;
1413
1514import net .minecraft .block .BlockLiquid ;
1615import net .minecraft .block .material .Material ;
1716import net .minecraft .client .resources .I18n ;
18- import net .minecraft .entity .player .EntityPlayer ;
1917import net .minecraft .item .ItemStack ;
2018import net .minecraft .util .EnumFacing ;
2119import net .minecraft .util .ResourceLocation ;
3028import codechicken .lib .render .CCRenderState ;
3129import codechicken .lib .render .pipeline .IVertexOperation ;
3230import codechicken .lib .vec .Matrix4 ;
31+ import com .cleanroommc .modularui .api .drawable .IKey ;
32+ import com .cleanroommc .modularui .api .widget .IWidget ;
33+ import com .cleanroommc .modularui .factory .PosGuiData ;
34+ import com .cleanroommc .modularui .screen .ModularPanel ;
35+ import com .cleanroommc .modularui .value .sync .PanelSyncManager ;
36+ import com .cleanroommc .modularui .value .sync .SyncHandlers ;
37+ import com .cleanroommc .modularui .widgets .ItemSlot ;
38+ import com .cleanroommc .modularui .widgets .SlotGroupWidget ;
39+ import com .cleanroommc .modularui .widgets .layout .Grid ;
3340import org .jetbrains .annotations .NotNull ;
3441import org .jetbrains .annotations .Nullable ;
3542
43+ import java .util .ArrayList ;
3644import java .util .List ;
3745
3846public class MetaTileEntityFisher extends TieredMetaTileEntity {
@@ -57,25 +65,41 @@ public MetaTileEntity createMetaTileEntity(IGregTechTileEntity tileEntity) {
5765 }
5866
5967 @ Override
60- protected ModularUI createUI (EntityPlayer entityPlayer ) {
61- int rowSize = (int ) Math .sqrt (inventorySize );
68+ public boolean usesMui2 () {
69+ return true ;
70+ }
6271
63- ModularUI .Builder builder = ModularUI .builder (GuiTextures .BACKGROUND , 176 ,
64- 18 + 18 * rowSize + 94 )
65- .label (10 , 5 , getMetaFullName ())
66- .widget (new SlotWidget (importItems , 0 , 18 , 18 , true , true )
67- .setBackgroundTexture (GuiTextures .SLOT , GuiTextures .STRING_SLOT_OVERLAY ));
68-
69- for (int y = 0 ; y < rowSize ; y ++) {
70- for (int x = 0 ; x < rowSize ; x ++) {
71- int index = y * rowSize + x ;
72- builder .widget (new SlotWidget (exportItems , index , 89 - rowSize * 9 + x * 18 , 18 + y * 18 , true , false )
73- .setBackgroundTexture (GuiTextures .SLOT ));
72+ @ Override
73+ public ModularPanel buildUI (PosGuiData guiData , PanelSyncManager guiSyncManager ) {
74+ int rowSize = (int ) Math .sqrt (inventorySize );
75+ guiSyncManager .registerSlotGroup ("item_in" , 1 );
76+ guiSyncManager .registerSlotGroup ("item_out" , rowSize );
77+
78+ List <List <IWidget >> widgets = new ArrayList <>();
79+ for (int i = 0 ; i < rowSize ; i ++) {
80+ widgets .add (new ArrayList <>());
81+ for (int j = 0 ; j < rowSize ; j ++) {
82+ int index = i * rowSize + j ;
83+ widgets .get (i ).add (new ItemSlot ()
84+ .slot (SyncHandlers .itemSlot (exportItems , index )
85+ .slotGroup ("item_out" )
86+ .accessibility (false , true )));
7487 }
7588 }
7689
77- builder .bindPlayerInventory (entityPlayer .inventory , GuiTextures .SLOT , 7 , 18 + 18 * rowSize + 12 );
78- return builder .build (getHolder (), entityPlayer );
90+ return GTGuis .createPanel (this , 176 , 18 + 18 * rowSize + 94 )
91+ .child (IKey .lang (getMetaFullName ()).asWidget ().pos (5 , 5 ))
92+ .child (SlotGroupWidget .playerInventory ().left (7 ).bottom (7 ))
93+ .child (new ItemSlot ().slot (SyncHandlers .itemSlot (importItems , 0 )
94+ .slotGroup ("item_in" ))
95+ .background (GTGuiTextures .SLOT , GTGuiTextures .STRING_SLOT_OVERLAY )
96+ .pos (7 + 9 , 9 * (rowSize + 1 )))
97+ .child (new Grid ()
98+ .top (18 ).alignX (0.5f )
99+ .height (rowSize * 18 )
100+ .minElementMargin (0 , 0 )
101+ .minColWidth (18 ).minRowHeight (18 )
102+ .matrix (widgets ));
79103 }
80104
81105 @ Override
0 commit comments