From 7d64f80c790d262b10eddae72042b09c4816d327 Mon Sep 17 00:00:00 2001 From: miozune Date: Thu, 17 Aug 2023 13:38:26 +0900 Subject: Fix server crash with RecipeFilter (#2231) * Fix server crash with RecipeFilter * Make client send filtered machines to server * Use mUniqueIdentifier --- .../GT_MetaTileEntity_SpecialFilter.java | 55 ++++++++++++---------- 1 file changed, 30 insertions(+), 25 deletions(-) (limited to 'src/main/java/gregtech/api') diff --git a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_SpecialFilter.java b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_SpecialFilter.java index cb293e51a9..1a71f17ec8 100644 --- a/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_SpecialFilter.java +++ b/src/main/java/gregtech/api/metatileentity/implementations/GT_MetaTileEntity_SpecialFilter.java @@ -40,8 +40,6 @@ public abstract class GT_MetaTileEntity_SpecialFilter extends GT_MetaTileEntity_ super(aName, aTier, aInvSlotCount, aDescription, aTextures); } - public abstract void clickTypeIcon(boolean aRightClick, ItemStack aHandStack); - @Override public void saveNBTData(NBTTagCompound aNBT) { super.saveNBTData(aNBT); @@ -88,29 +86,10 @@ public abstract class GT_MetaTileEntity_SpecialFilter extends GT_MetaTileEntity_ new DrawableWidget().setDrawable(GT_UITextures.PICTURE_ARROW_24_RED.apply(19, true)) .setPos(152, 19) .setSize(19, 24)) - .widget(new SlotWidget(BaseSlot.phantom(inventoryHandler, 9)) { - - @Override - protected void phantomClick(ClickData clickData, ItemStack cursorStack) { - clickTypeIcon(clickData.mouseButton != 0, cursorStack); - } - - @Override - public void buildTooltip(List tooltip) { - super.buildTooltip(tooltip); - List emptySlotTooltip = getEmptySlotTooltip(); - if (emptySlotTooltip != null) { - tooltip.addAll(emptySlotTooltip); - } - } - - @Override - public Function, List> getOverwriteItemStackTooltip() { - return getItemStackReplacementTooltip(); - } - }.disableShiftInsert() - .setPos(34, 22) - .setBackground(GT_UITextures.BUTTON_STANDARD)) + .widget( + createFilterIconSlot(BaseSlot.phantom(inventoryHandler, 9)).disableShiftInsert() + .setPos(34, 22) + .setBackground(GT_UITextures.BUTTON_STANDARD)) .widget( SlotGroup.ofItemHandler(inventoryHandler, 3) .endAtSlot(8) @@ -126,4 +105,30 @@ public abstract class GT_MetaTileEntity_SpecialFilter extends GT_MetaTileEntity_ GT_UITextures.OVERLAY_BUTTON_NBT, () -> mTooltipCache.getData(ALLOW_NBT_TOOLTIP))); } + + protected abstract SlotWidget createFilterIconSlot(BaseSlot slot); + + protected abstract class FilterIconSlotWidget extends SlotWidget { + + public FilterIconSlotWidget(BaseSlot slot) { + super(slot); + } + + @Override + protected abstract void phantomClick(ClickData clickData, ItemStack cursorStack); + + @Override + public void buildTooltip(List tooltip) { + super.buildTooltip(tooltip); + List emptySlotTooltip = getEmptySlotTooltip(); + if (emptySlotTooltip != null) { + tooltip.addAll(emptySlotTooltip); + } + } + + @Override + public Function, List> getOverwriteItemStackTooltip() { + return getItemStackReplacementTooltip(); + } + } } -- cgit