Skip to content

Commit 58df346

Browse files
committed
introduce mapped synchandler
1 parent 436000e commit 58df346

File tree

2 files changed

+44
-14
lines changed

2 files changed

+44
-14
lines changed
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
package gregtech.api.mui.sync;
2+
3+
import com.cleanroommc.modularui.value.sync.SyncHandler;
4+
5+
import it.unimi.dsi.fastutil.ints.Int2ObjectArrayMap;
6+
import it.unimi.dsi.fastutil.ints.Int2ObjectMap;
7+
8+
import net.minecraft.network.PacketBuffer;
9+
10+
import java.io.IOException;
11+
import java.util.function.Consumer;
12+
13+
public final class MappedSyncHandler extends SyncHandler {
14+
15+
private final Int2ObjectMap<Consumer<PacketBuffer>> clientHandlers = new Int2ObjectArrayMap<>();
16+
private final Int2ObjectMap<Consumer<PacketBuffer>> serverHandlers = new Int2ObjectArrayMap<>();
17+
18+
public MappedSyncHandler addClientHandler(int id, Consumer<PacketBuffer> handler) {
19+
clientHandlers.put(id, handler);
20+
return this;
21+
}
22+
23+
public MappedSyncHandler addServerHandler(int id, Consumer<PacketBuffer> handler) {
24+
serverHandlers.put(id, handler);
25+
return this;
26+
}
27+
28+
@Override
29+
public void readOnClient(int id, PacketBuffer buf) throws IOException {
30+
clientHandlers.get(id).accept(buf);
31+
}
32+
33+
@Override
34+
public void readOnServer(int id, PacketBuffer buf) throws IOException {
35+
serverHandlers.get(id).accept(buf);
36+
}
37+
}

src/main/java/gregtech/api/mui/widget/QuantumItemRendererWidget.java

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
package gregtech.api.mui.widget;
22

3+
import gregtech.api.mui.sync.MappedSyncHandler;
4+
35
import net.minecraft.client.renderer.GlStateManager;
6+
import net.minecraft.client.renderer.RenderHelper;
47
import net.minecraft.item.ItemStack;
5-
import net.minecraft.network.PacketBuffer;
68

79
import com.cleanroommc.modularui.api.widget.Interactable;
810
import com.cleanroommc.modularui.integration.jei.JeiGhostIngredientSlot;
@@ -17,7 +19,6 @@
1719
import org.jetbrains.annotations.NotNull;
1820
import org.jetbrains.annotations.Nullable;
1921

20-
import java.io.IOException;
2122
import java.util.function.Consumer;
2223
import java.util.function.Supplier;
2324

@@ -27,18 +28,8 @@ public class QuantumItemRendererWidget extends Widget<QuantumItemRendererWidget>
2728

2829
private final Supplier<ItemStack> virtualStack;
2930
private DynamicValue<ItemStack> lockedStack;
30-
private final SyncHandler syncHandler = new SyncHandler() {
31-
32-
@Override
33-
public void readOnClient(int id, PacketBuffer buf) throws IOException {}
34-
35-
@Override
36-
public void readOnServer(int id, PacketBuffer buf) throws IOException {
37-
if (id == 0) {
38-
lockedStack.setValue(NetworkUtils.readItemStack(buf));
39-
}
40-
}
41-
};
31+
private final SyncHandler syncHandler = new MappedSyncHandler()
32+
.addServerHandler(0, buffer -> lockedStack.setValue(NetworkUtils.readItemStack(buffer)));
4233

4334
public QuantumItemRendererWidget(Supplier<ItemStack> virtualStack) {
4435
this.virtualStack = virtualStack;
@@ -77,7 +68,9 @@ public void draw(GuiContext context, WidgetTheme widgetTheme) {
7768
screenWrapper.setZ(100);
7869
renderer.zLevel = 100;
7970
GlStateManager.disableDepth();
71+
RenderHelper.enableGUIStandardItemLighting();
8072
renderer.renderItemAndEffectIntoGUI(stack, 1, 1);
73+
RenderHelper.enableStandardItemLighting();
8174
GlStateManager.enableDepth();
8275
screenWrapper.setZ(0);
8376
renderer.zLevel = 0;

0 commit comments

Comments
 (0)