11package gregtech .common .mui .widget .workbench ;
22
3+ import gregtech .api .util .GTUtility ;
34import gregtech .client .utils .RenderUtil ;
45import gregtech .common .metatileentities .storage .CraftingRecipeLogic ;
56
1314import com .cleanroommc .modularui .drawable .GuiDraw ;
1415import com .cleanroommc .modularui .integration .jei .JeiGhostIngredientSlot ;
1516import com .cleanroommc .modularui .integration .jei .JeiIngredientProvider ;
17+ import com .cleanroommc .modularui .network .NetworkUtils ;
1618import com .cleanroommc .modularui .screen .RichTooltip ;
1719import com .cleanroommc .modularui .screen .viewport .ModularGuiContext ;
1820import com .cleanroommc .modularui .theme .WidgetTheme ;
2325import org .jetbrains .annotations .NotNull ;
2426import org .jetbrains .annotations .Nullable ;
2527
26- import java .io .IOException ;
27-
2828public class CraftingInputSlot extends Widget <CraftingOutputSlot > implements Interactable ,
2929 JeiGhostIngredientSlot <ItemStack >,
3030 JeiIngredientProvider {
@@ -149,21 +149,22 @@ public void init(String key, PanelSyncManager syncHandler) {
149149 @ Override
150150 public void readOnClient (int id , PacketBuffer buf ) {
151151 if (id == 1 ) {
152- boolean c = buf .readBoolean ();
153- var s = readStackSafe (buf );
154- boolean i = buf .readBoolean ();
155- this .handler .setStackInSlot (this .index , s );
156- this .listener .onChange (s , c , true , i );
152+ boolean onlyAmt = buf .readBoolean ();
153+ var stack = NetworkUtils .readItemStack (buf );
154+ boolean init = buf .readBoolean ();
155+
156+ this .handler .setStackInSlot (this .index , stack );
157+ this .listener .onChange (stack , onlyAmt , true , init );
157158 }
158159 }
159160
160161 @ Override
161162 public void readOnServer (int id , PacketBuffer buf ) {
162163 if (id == 1 ) {
163- var b = buf .readBoolean ();
164- var s = readStackSafe (buf );
165- this .handler .setStackInSlot (this .index , s );
166- this .listener .onChange (s , b , false , false );
164+ var onlyAmt = buf .readBoolean ();
165+ var stack = NetworkUtils . readItemStack (buf );
166+ this .handler .setStackInSlot (this .index , stack );
167+ this .listener .onChange (stack , onlyAmt , false , false );
167168 }
168169 }
169170
@@ -184,23 +185,22 @@ public void detectAndSendChanges(boolean init) {
184185 final boolean finalOnlyAmountChanged = onlyAmountChanged ;
185186 syncToClient (1 , buffer -> {
186187 buffer .writeBoolean (finalOnlyAmountChanged );
187- buffer .writeItemStack (itemStack );
188+ NetworkUtils .writeItemStack (buffer , itemStack );
188189 buffer .writeBoolean (init );
189190 });
190191 }
191192 }
192193
193194 public void syncStack () {
194- final var cursorStack = getSyncManager ().getCursorItem ().copy ();
195- cursorStack .setCount (1 );
195+ final var cursorStack = GTUtility .copy (1 , getSyncManager ().getCursorItem ());
196196 final var curStack = getStack ();
197197 final boolean onlyAmt = ItemHandlerHelper .canItemStacksStackRelaxed (curStack , cursorStack );
198198
199199 this .handler .setStackInSlot (this .index , cursorStack );
200200 this .listener .onChange (cursorStack , onlyAmt , true , false );
201201 syncToServer (1 , buffer -> {
202202 buffer .writeBoolean (onlyAmt );
203- buffer .writeItemStack (cursorStack );
203+ NetworkUtils .writeItemStack (buffer , cursorStack );
204204 });
205205 }
206206
@@ -217,13 +217,5 @@ public void setStack(ItemStack stack) {
217217 this .handler .setStackInSlot (this .index , stack );
218218 this .listener .onChange (stack , false , getSyncManager ().isClient (), false );
219219 }
220-
221- private ItemStack readStackSafe (PacketBuffer buffer ) {
222- ItemStack ret = ItemStack .EMPTY ;
223- try {
224- ret = buffer .readItemStack ();
225- } catch (IOException ignored ) {}
226- return ret ;
227- }
228220 }
229221}
0 commit comments