Re-add JEI sync in Grid + JEI ingredient under mouse handler
This commit is contained in:
@@ -1,53 +0,0 @@
|
|||||||
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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
@@ -0,0 +1,40 @@
|
|||||||
|
package com.raoulvdberge.refinedstorage.integration.jei;
|
||||||
|
|
||||||
|
import com.raoulvdberge.refinedstorage.container.BaseContainer;
|
||||||
|
import com.raoulvdberge.refinedstorage.container.slot.filter.FluidFilterSlot;
|
||||||
|
import com.raoulvdberge.refinedstorage.screen.BaseScreen;
|
||||||
|
import com.raoulvdberge.refinedstorage.screen.grid.GridScreen;
|
||||||
|
import com.raoulvdberge.refinedstorage.util.RenderUtils;
|
||||||
|
import mezz.jei.api.gui.handlers.IGuiContainerHandler;
|
||||||
|
import net.minecraftforge.fluids.FluidStack;
|
||||||
|
|
||||||
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
|
public class GuiContainerHandler implements IGuiContainerHandler<BaseScreen> {
|
||||||
|
@Nullable
|
||||||
|
@Override
|
||||||
|
public Object getIngredientUnderMouse(BaseScreen screen, double mouseX, double mouseY) {
|
||||||
|
mouseX -= screen.getGuiLeft();
|
||||||
|
mouseY -= screen.getGuiTop();
|
||||||
|
|
||||||
|
if (screen instanceof GridScreen) {
|
||||||
|
GridScreen grid = (GridScreen) screen;
|
||||||
|
|
||||||
|
if (!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 (screen.getContainer() instanceof BaseContainer) {
|
||||||
|
for (FluidFilterSlot slot : ((BaseContainer) screen.getContainer()).getFluidSlots()) {
|
||||||
|
FluidStack fluidInSlot = slot.getFluidInventory().getFluid(slot.getSlotIndex());
|
||||||
|
|
||||||
|
if (!fluidInSlot.isEmpty() && RenderUtils.inBounds(slot.xPos, slot.yPos, 18, 18, mouseX, mouseY)) {
|
||||||
|
return fluidInSlot;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
package com.raoulvdberge.refinedstorage.integration.jei;
|
|
||||||
/*
|
|
||||||
import net.minecraftforge.fml.common.Loader;
|
|
||||||
|
|
||||||
public final class IntegrationJEI {
|
|
||||||
public static boolean isLoaded() {
|
|
||||||
return Loader.isModLoaded("jei");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
@@ -0,0 +1,10 @@
|
|||||||
|
package com.raoulvdberge.refinedstorage.integration.jei;
|
||||||
|
|
||||||
|
import net.minecraftforge.fml.ModList;
|
||||||
|
|
||||||
|
public final class JeiIntegration {
|
||||||
|
public static boolean isLoaded() {
|
||||||
|
return ModList.get().isLoaded("jei");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@@ -1,38 +0,0 @@
|
|||||||
package com.raoulvdberge.refinedstorage.integration.jei;
|
|
||||||
/*
|
|
||||||
import mezz.jei.api.IJeiRuntime;
|
|
||||||
import mezz.jei.api.IModPlugin;
|
|
||||||
import mezz.jei.api.IModRegistry;
|
|
||||||
import mezz.jei.api.JEIPlugin;
|
|
||||||
|
|
||||||
@JEIPlugin
|
|
||||||
public class RSJEIPlugin implements IModPlugin {
|
|
||||||
public static RSJEIPlugin INSTANCE;
|
|
||||||
|
|
||||||
private IJeiRuntime runtime;
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void register(IModRegistry registry) {
|
|
||||||
INSTANCE = this;
|
|
||||||
|
|
||||||
registry.getRecipeTransferRegistry().addUniversalRecipeTransferHandler(new RecipeTransferHandlerGrid());
|
|
||||||
|
|
||||||
registry.addAdvancedGuiHandlers(new AdvancedGuiHandler());
|
|
||||||
|
|
||||||
registry.addRecipeRegistryPlugin(new RecipeRegistryPluginCover());
|
|
||||||
registry.addRecipeRegistryPlugin(new RecipeRegistryPluginHollowCover());
|
|
||||||
|
|
||||||
// TODO: https://github.com/mezz/JustEnoughItems/issues/1307
|
|
||||||
// registry.addGhostIngredientHandler(GuiBase.class, new GhostIngredientHandler());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onRuntimeAvailable(IJeiRuntime runtime) {
|
|
||||||
this.runtime = runtime;
|
|
||||||
}
|
|
||||||
|
|
||||||
public IJeiRuntime getRuntime() {
|
|
||||||
return runtime;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
@@ -0,0 +1,39 @@
|
|||||||
|
package com.raoulvdberge.refinedstorage.integration.jei;
|
||||||
|
|
||||||
|
import com.raoulvdberge.refinedstorage.RS;
|
||||||
|
import com.raoulvdberge.refinedstorage.screen.BaseScreen;
|
||||||
|
import mezz.jei.api.IModPlugin;
|
||||||
|
import mezz.jei.api.JeiPlugin;
|
||||||
|
import mezz.jei.api.registration.IGuiHandlerRegistration;
|
||||||
|
import mezz.jei.api.runtime.IJeiRuntime;
|
||||||
|
import net.minecraft.util.ResourceLocation;
|
||||||
|
|
||||||
|
@JeiPlugin
|
||||||
|
public class RSJeiPlugin implements IModPlugin {
|
||||||
|
private static final ResourceLocation ID = new ResourceLocation(RS.ID, "plugin");
|
||||||
|
|
||||||
|
public static IJeiRuntime RUNTIME;
|
||||||
|
|
||||||
|
// TODO registry.getRecipeTransferRegistry().addUniversalRecipeTransferHandler(new RecipeTransferHandlerGrid());
|
||||||
|
|
||||||
|
// TODO registry.addRecipeRegistryPlugin(new RecipeRegistryPluginCover());
|
||||||
|
// TODO registry.addRecipeRegistryPlugin(new RecipeRegistryPluginHollowCover());
|
||||||
|
|
||||||
|
// TODO: https://github.com/mezz/JustEnoughItems/issues/1307
|
||||||
|
// registry.addGhostIngredientHandler(GuiBase.class, new GhostIngredientHandler());
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ResourceLocation getPluginUid() {
|
||||||
|
return ID;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void registerGuiHandlers(IGuiHandlerRegistration registration) {
|
||||||
|
registration.addGuiContainerHandler(BaseScreen.class, new GuiContainerHandler());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onRuntimeAvailable(IJeiRuntime runtime) {
|
||||||
|
RUNTIME = runtime;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -115,7 +115,11 @@ public class GuiCrafterManager extends BaseScreen<CrafterManagerContainer> imple
|
|||||||
|
|
||||||
if (searchField == null) {
|
if (searchField == null) {
|
||||||
searchField = new SearchWidget(font, sx, sy, 88 - 6);
|
searchField = new SearchWidget(font, sx, sy, 88 - 6);
|
||||||
searchField.func_212954_a(value -> container.initSlots(null));
|
searchField.func_212954_a(value -> {
|
||||||
|
searchField.updateJei();
|
||||||
|
|
||||||
|
container.initSlots(null);
|
||||||
|
});
|
||||||
searchField.setMode(crafterManager.getSearchBoxMode());
|
searchField.setMode(crafterManager.getSearchBoxMode());
|
||||||
} else {
|
} else {
|
||||||
searchField.x = sx;
|
searchField.x = sx;
|
||||||
|
|||||||
@@ -104,7 +104,9 @@ public class GridScreen extends BaseScreen<GridContainer> implements IScreenInfo
|
|||||||
if (searchField == null) {
|
if (searchField == null) {
|
||||||
searchField = new SearchWidget(font, sx, sy, 88 - 6);
|
searchField = new SearchWidget(font, sx, sy, 88 - 6);
|
||||||
searchField.func_212954_a(value -> {
|
searchField.func_212954_a(value -> {
|
||||||
this.getView().sort(); // Use getter since this view can be replaced.
|
searchField.updateJei();
|
||||||
|
|
||||||
|
getView().sort(); // Use getter since this view can be replaced.
|
||||||
});
|
});
|
||||||
searchField.setMode(grid.getSearchBoxMode());
|
searchField.setMode(grid.getSearchBoxMode());
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@@ -2,6 +2,8 @@ package com.raoulvdberge.refinedstorage.screen.widget;
|
|||||||
|
|
||||||
import com.raoulvdberge.refinedstorage.RSKeyBindings;
|
import com.raoulvdberge.refinedstorage.RSKeyBindings;
|
||||||
import com.raoulvdberge.refinedstorage.api.network.grid.IGrid;
|
import com.raoulvdberge.refinedstorage.api.network.grid.IGrid;
|
||||||
|
import com.raoulvdberge.refinedstorage.integration.jei.JeiIntegration;
|
||||||
|
import com.raoulvdberge.refinedstorage.integration.jei.RSJeiPlugin;
|
||||||
import com.raoulvdberge.refinedstorage.screen.BaseScreen;
|
import com.raoulvdberge.refinedstorage.screen.BaseScreen;
|
||||||
import net.minecraft.client.gui.FontRenderer;
|
import net.minecraft.client.gui.FontRenderer;
|
||||||
import net.minecraft.client.gui.widget.TextFieldWidget;
|
import net.minecraft.client.gui.widget.TextFieldWidget;
|
||||||
@@ -22,12 +24,12 @@ public class SearchWidget extends TextFieldWidget {
|
|||||||
this.setEnableBackgroundDrawing(false);
|
this.setEnableBackgroundDrawing(false);
|
||||||
this.setVisible(true);
|
this.setVisible(true);
|
||||||
this.setTextColor(16777215);
|
this.setTextColor(16777215);
|
||||||
|
}
|
||||||
|
|
||||||
/* TODO this.listeners.add(() -> {
|
public void updateJei() {
|
||||||
if (IntegrationJEI.isLoaded() && (mode == IGrid.SEARCH_BOX_MODE_JEI_SYNCHRONIZED || mode == IGrid.SEARCH_BOX_MODE_JEI_SYNCHRONIZED_AUTOSELECTED)) {
|
if (JeiIntegration.isLoaded() && (mode == IGrid.SEARCH_BOX_MODE_JEI_SYNCHRONIZED || mode == IGrid.SEARCH_BOX_MODE_JEI_SYNCHRONIZED_AUTOSELECTED)) {
|
||||||
RSJEIPlugin.INSTANCE.getRuntime().getIngredientFilter().setFilterText(getText());
|
RSJeiPlugin.RUNTIME.getIngredientFilter().setFilterText(getText());
|
||||||
}
|
}
|
||||||
});*/
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package com.raoulvdberge.refinedstorage.screen.widget.sidebutton;
|
package com.raoulvdberge.refinedstorage.screen.widget.sidebutton;
|
||||||
|
|
||||||
import com.raoulvdberge.refinedstorage.api.network.grid.IGrid;
|
import com.raoulvdberge.refinedstorage.api.network.grid.IGrid;
|
||||||
|
import com.raoulvdberge.refinedstorage.integration.jei.JeiIntegration;
|
||||||
import com.raoulvdberge.refinedstorage.screen.grid.GridScreen;
|
import com.raoulvdberge.refinedstorage.screen.grid.GridScreen;
|
||||||
import net.minecraft.client.resources.I18n;
|
import net.minecraft.client.resources.I18n;
|
||||||
import net.minecraft.util.text.TextFormatting;
|
import net.minecraft.util.text.TextFormatting;
|
||||||
@@ -29,11 +30,11 @@ public class GridSearchBoxModeSideButton extends SideButton {
|
|||||||
if (mode == IGrid.SEARCH_BOX_MODE_NORMAL) {
|
if (mode == IGrid.SEARCH_BOX_MODE_NORMAL) {
|
||||||
mode = IGrid.SEARCH_BOX_MODE_NORMAL_AUTOSELECTED;
|
mode = IGrid.SEARCH_BOX_MODE_NORMAL_AUTOSELECTED;
|
||||||
} else if (mode == IGrid.SEARCH_BOX_MODE_NORMAL_AUTOSELECTED) {
|
} else if (mode == IGrid.SEARCH_BOX_MODE_NORMAL_AUTOSELECTED) {
|
||||||
//TODO if (IntegrationJEI.isLoaded()) {
|
if (JeiIntegration.isLoaded()) {
|
||||||
// mode = IGrid.SEARCH_BOX_MODE_JEI_SYNCHRONIZED;
|
mode = IGrid.SEARCH_BOX_MODE_JEI_SYNCHRONIZED;
|
||||||
//} else {
|
} else {
|
||||||
mode = IGrid.SEARCH_BOX_MODE_NORMAL;
|
mode = IGrid.SEARCH_BOX_MODE_NORMAL;
|
||||||
//}
|
}
|
||||||
} else if (mode == IGrid.SEARCH_BOX_MODE_JEI_SYNCHRONIZED) {
|
} else if (mode == IGrid.SEARCH_BOX_MODE_JEI_SYNCHRONIZED) {
|
||||||
mode = IGrid.SEARCH_BOX_MODE_JEI_SYNCHRONIZED_AUTOSELECTED;
|
mode = IGrid.SEARCH_BOX_MODE_JEI_SYNCHRONIZED_AUTOSELECTED;
|
||||||
} else if (mode == IGrid.SEARCH_BOX_MODE_JEI_SYNCHRONIZED_AUTOSELECTED) {
|
} else if (mode == IGrid.SEARCH_BOX_MODE_JEI_SYNCHRONIZED_AUTOSELECTED) {
|
||||||
|
|||||||
Reference in New Issue
Block a user