Fixed JEI hotkeys not working on fluid filter slots. Fixes #2211
This commit is contained in:
@@ -5,6 +5,7 @@
|
|||||||
- Fixed oredict crafting patterns redefining recipes (Darkere)
|
- Fixed oredict crafting patterns redefining recipes (Darkere)
|
||||||
- Fixed Portable Grids not keeping their enchantments when placed (Darkere)
|
- Fixed Portable Grids not keeping their enchantments when placed (Darkere)
|
||||||
- Shortened crafting text for the Russion translation to fix Grid overlays (yaroslav4167)
|
- Shortened crafting text for the Russion translation to fix Grid overlays (yaroslav4167)
|
||||||
|
- Fixed JEI hotkeys not working on fluid filter slots (raoulvdberge)
|
||||||
|
|
||||||
### 1.6.14
|
### 1.6.14
|
||||||
- Fixed server crash (raoulvdberge)
|
- Fixed server crash (raoulvdberge)
|
||||||
|
@@ -81,6 +81,10 @@ public abstract class ContainerBase extends Container {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public List<SlotFilterFluid> getFluidSlots() {
|
||||||
|
return fluidSlots;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ItemStack slotClick(int id, int dragType, ClickType clickType, EntityPlayer player) {
|
public ItemStack slotClick(int id, int dragType, ClickType clickType, EntityPlayer player) {
|
||||||
Slot slot = id >= 0 ? getSlot(id) : null;
|
Slot slot = id >= 0 ? getSlot(id) : null;
|
||||||
|
@@ -119,6 +119,10 @@ public abstract class GuiBase extends GuiContainer {
|
|||||||
return scrollbar;
|
return scrollbar;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isMouseOverSlotPublic(Slot slot, int mx, int my) {
|
||||||
|
return this.isPointInRegion(slot.xPos, slot.yPos, 16, 16, mx, my);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void initGui() {
|
public void initGui() {
|
||||||
if (initializing) { // Fix double initialize because of runRunnables
|
if (initializing) { // Fix double initialize because of runRunnables
|
||||||
|
@@ -0,0 +1,52 @@
|
|||||||
|
package com.raoulvdberge.refinedstorage.integration.jei;
|
||||||
|
|
||||||
|
import com.raoulvdberge.refinedstorage.container.ContainerBase;
|
||||||
|
import com.raoulvdberge.refinedstorage.container.slot.filter.SlotFilterFluid;
|
||||||
|
import com.raoulvdberge.refinedstorage.gui.GuiBase;
|
||||||
|
import com.raoulvdberge.refinedstorage.gui.grid.GuiGrid;
|
||||||
|
import mezz.jei.api.gui.IAdvancedGuiHandler;
|
||||||
|
import net.minecraftforge.fluids.FluidStack;
|
||||||
|
|
||||||
|
import javax.annotation.Nullable;
|
||||||
|
import java.awt.*;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class AdvancedGuiHandler implements IAdvancedGuiHandler<GuiBase> {
|
||||||
|
@Override
|
||||||
|
public Class<GuiBase> getGuiContainerClass() {
|
||||||
|
return GuiBase.class;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Nullable
|
||||||
|
@Override
|
||||||
|
public List<Rectangle> getGuiExtraAreas(GuiBase gui) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Nullable
|
||||||
|
@Override
|
||||||
|
public Object getIngredientUnderMouse(GuiBase gui, int mouseX, int mouseY) {
|
||||||
|
mouseX -= gui.getGuiLeft();
|
||||||
|
mouseY -= gui.getGuiTop();
|
||||||
|
|
||||||
|
if (gui instanceof GuiGrid) {
|
||||||
|
GuiGrid grid = (GuiGrid) gui;
|
||||||
|
|
||||||
|
if (grid.getScrollbar() != null && !grid.getSearchField().isFocused() && grid.isOverSlotArea(mouseX, mouseY)) {
|
||||||
|
return grid.getSlotNumber() >= 0 && grid.getSlotNumber() < grid.getView().getStacks().size() ? grid.getView().getStacks().get(grid.getSlotNumber()).getIngredient() : null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (gui.inventorySlots instanceof ContainerBase) {
|
||||||
|
for (SlotFilterFluid slot : ((ContainerBase) gui.inventorySlots).getFluidSlots()) {
|
||||||
|
FluidStack fluidInSlot = slot.getFluidInventory().getFluid(slot.getSlotIndex());
|
||||||
|
|
||||||
|
if (fluidInSlot != null && gui.isMouseOverSlotPublic(slot, mouseX + gui.getGuiLeft(), mouseY + gui.getGuiTop())) {
|
||||||
|
return fluidInSlot;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
@@ -1,34 +0,0 @@
|
|||||||
package com.raoulvdberge.refinedstorage.integration.jei;
|
|
||||||
|
|
||||||
import com.raoulvdberge.refinedstorage.gui.grid.GuiGrid;
|
|
||||||
import mezz.jei.api.gui.IAdvancedGuiHandler;
|
|
||||||
|
|
||||||
import javax.annotation.Nullable;
|
|
||||||
import java.awt.*;
|
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
public class AdvancedGuiHandlerGrid implements IAdvancedGuiHandler<GuiGrid> {
|
|
||||||
@Override
|
|
||||||
public Class<GuiGrid> getGuiContainerClass() {
|
|
||||||
return GuiGrid.class;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Nullable
|
|
||||||
@Override
|
|
||||||
public List<Rectangle> getGuiExtraAreas(GuiGrid gui) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Nullable
|
|
||||||
@Override
|
|
||||||
public Object getIngredientUnderMouse(GuiGrid gui, int mouseX, int mouseY) {
|
|
||||||
mouseX -= gui.getGuiLeft();
|
|
||||||
mouseY -= gui.getGuiTop();
|
|
||||||
|
|
||||||
if (gui.getScrollbar() != null && !gui.getSearchField().isFocused() && gui.isOverSlotArea(mouseX, mouseY)) {
|
|
||||||
return gui.getSlotNumber() >= 0 && gui.getSlotNumber() < gui.getView().getStacks().size() ? gui.getView().getStacks().get(gui.getSlotNumber()).getIngredient() : null;
|
|
||||||
}
|
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
@@ -17,7 +17,7 @@ public class RSJEIPlugin implements IModPlugin {
|
|||||||
|
|
||||||
registry.getRecipeTransferRegistry().addUniversalRecipeTransferHandler(new RecipeTransferHandlerGrid());
|
registry.getRecipeTransferRegistry().addUniversalRecipeTransferHandler(new RecipeTransferHandlerGrid());
|
||||||
|
|
||||||
registry.addAdvancedGuiHandlers(new AdvancedGuiHandlerGrid());
|
registry.addAdvancedGuiHandlers(new AdvancedGuiHandler());
|
||||||
|
|
||||||
registry.addRecipeRegistryPlugin(new RecipeRegistryPluginCover());
|
registry.addRecipeRegistryPlugin(new RecipeRegistryPluginCover());
|
||||||
registry.addRecipeRegistryPlugin(new RecipeRegistryPluginHollowCover());
|
registry.addRecipeRegistryPlugin(new RecipeRegistryPluginHollowCover());
|
||||||
|
Reference in New Issue
Block a user