diff options
4 files changed, 51 insertions, 28 deletions
diff --git a/src/main/java/gregtech/api/net/GT_Packet_SetLockedFluid.java b/src/main/java/gregtech/api/net/GT_Packet_SetLockedFluid.java index deea71feab..911d48223b 100644 --- a/src/main/java/gregtech/api/net/GT_Packet_SetLockedFluid.java +++ b/src/main/java/gregtech/api/net/GT_Packet_SetLockedFluid.java @@ -85,7 +85,9 @@ public class GT_Packet_SetLockedFluid extends GT_Packet_New { if (!(mte instanceof GT_MetaTileEntity_Hatch_Output)) return; Fluid tFluid = FluidRegistry.getFluid(mFluidID); if (tFluid == null) return; - ((GT_MetaTileEntity_Hatch_Output) mte).setLockedFluidName(tFluid.getName()); + GT_MetaTileEntity_Hatch_Output hatch = (GT_MetaTileEntity_Hatch_Output) mte; + hatch.setLockedFluidName(tFluid.getName()); + hatch.mMode = 9; GT_Utility.sendChatToPlayer(mPlayer, String.format(GT_LanguageManager.addStringLocalization("Interaction_DESCRIPTION_Index_151.4", "Sucessfully locked Fluid to %s", false), new FluidStack(tFluid, 1).getLocalizedName())); } } diff --git a/src/main/java/gregtech/common/gui/GT_GUIContainer_OutputHatch.java b/src/main/java/gregtech/common/gui/GT_GUIContainer_OutputHatch.java index 5c29c3d7a6..5c7eacd701 100644 --- a/src/main/java/gregtech/common/gui/GT_GUIContainer_OutputHatch.java +++ b/src/main/java/gregtech/common/gui/GT_GUIContainer_OutputHatch.java @@ -1,15 +1,27 @@ package gregtech.common.gui; +import codechicken.nei.VisiblityData; +import codechicken.nei.api.INEIGuiHandler; +import codechicken.nei.api.TaggedInventoryArea; +import cpw.mods.fml.common.Optional; +import gregtech.api.enums.GT_Values; import gregtech.api.gui.GT_GUIContainerMetaTile_Machine; import gregtech.api.interfaces.tileentity.IGregTechTileEntity; +import gregtech.api.net.GT_Packet_SetLockedFluid; import gregtech.api.util.GT_Utility; +import net.minecraft.client.gui.inventory.GuiContainer; import net.minecraft.entity.player.InventoryPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.StatCollector; +import net.minecraftforge.fluids.FluidStack; + +import java.util.Collections; +import java.util.List; import static gregtech.api.enums.GT_Values.RES_PATH_GUI; -public class GT_GUIContainer_OutputHatch extends GT_GUIContainerMetaTile_Machine { +@Optional.Interface(modid = "NotEnoughItems", iface = "codechicken.nei.api.INEIGuiHandler") +public class GT_GUIContainer_OutputHatch extends GT_GUIContainerMetaTile_Machine implements INEIGuiHandler { private final String mName; @@ -39,4 +51,38 @@ public class GT_GUIContainer_OutputHatch extends GT_GUIContainerMetaTile_Machine int y = (height - ySize) / 2; drawTexturedModalRect(x, y, 0, 0, xSize, ySize); } -}
\ No newline at end of file + + @Override + @Optional.Method(modid = "NotEnoughItems") + public VisiblityData modifyVisiblity(GuiContainer gui, VisiblityData currentVisibility) { + return currentVisibility; + } + + @Override + public Iterable<Integer> getItemSpawnSlots(GuiContainer gui, ItemStack item) { + return Collections.emptyList(); + } + + @Override + public List<TaggedInventoryArea> getInventoryAreas(GuiContainer gui) { + return null; + } + + @Override + public boolean handleDragNDrop(GuiContainer gui, int mousex, int mousey, ItemStack draggedStack, int button) { + if (gui instanceof GT_GUIContainer_OutputHatch && ((GT_GUIContainer_OutputHatch) gui).isMouseOverSlot(3, mousex, mousey)) { + // the instanceof check should be unnecessary, but we will do it regardless, just in case. + FluidStack tFluidStack = GT_Utility.getFluidForFilledItem(draggedStack, true); + if (tFluidStack != null) { + GT_Values.NW.sendToServer(new GT_Packet_SetLockedFluid(((GT_GUIContainer_OutputHatch) gui).mContainer.mTileEntity, tFluidStack)); + return true; + } + } + return false; + } + + @Override + public boolean hideItemPanelSlot(GuiContainer gui, int x, int y, int w, int h) { + return false; + } +} diff --git a/src/main/java/gregtech/nei/GT_NEI_GuiAdapter.java b/src/main/java/gregtech/nei/GT_NEI_GuiAdapter.java deleted file mode 100644 index f70462110d..0000000000 --- a/src/main/java/gregtech/nei/GT_NEI_GuiAdapter.java +++ /dev/null @@ -1,24 +0,0 @@ -package gregtech.nei; - -import codechicken.nei.api.INEIGuiAdapter; -import gregtech.api.enums.GT_Values; -import gregtech.api.net.GT_Packet_SetLockedFluid; -import gregtech.api.util.GT_Utility; -import gregtech.common.gui.GT_GUIContainer_OutputHatch; -import net.minecraft.client.gui.inventory.GuiContainer; -import net.minecraft.item.ItemStack; -import net.minecraftforge.fluids.FluidStack; - -public class GT_NEI_GuiAdapter extends INEIGuiAdapter { - @Override - public boolean handleDragNDrop(GuiContainer gui, int mousex, int mousey, ItemStack draggedStack, int button) { - if (gui instanceof GT_GUIContainer_OutputHatch && ((GT_GUIContainer_OutputHatch) gui).isMouseOverSlot(3, mousex, mousey)) { - FluidStack tFluidStack = GT_Utility.getFluidForFilledItem(draggedStack, true); - if (tFluidStack != null) { - GT_Values.NW.sendToServer(new GT_Packet_SetLockedFluid(((GT_GUIContainer_OutputHatch) gui).mContainer.mTileEntity, tFluidStack)); - return true; - } - } - return super.handleDragNDrop(gui, mousex, mousey, draggedStack, button); - } -} diff --git a/src/main/java/gregtech/nei/NEI_GT_Config.java b/src/main/java/gregtech/nei/NEI_GT_Config.java index b5cf8776e1..0b4476eeef 100644 --- a/src/main/java/gregtech/nei/NEI_GT_Config.java +++ b/src/main/java/gregtech/nei/NEI_GT_Config.java @@ -62,7 +62,6 @@ public class NEI_GT_Config implements IConfigureNEI { handlers.forEach(NEI_GT_Config::addHandler); codechicken.nei.api.API.addItemListEntry(ItemList.VOLUMETRIC_FLASK.get(1)); - codechicken.nei.api.API.registerNEIGuiHandler(new GT_NEI_GuiAdapter()); } sIsAdded = true; } |