Reimplement JEI ghost ingredient handler but leave it disabled since it's still broken

This commit is contained in:
raoulvdberge
2019-10-15 21:20:01 +02:00
parent 34ca5841ef
commit 632dec3d88
2 changed files with 21 additions and 27 deletions

View File

@@ -1,40 +1,35 @@
package com.raoulvdberge.refinedstorage.integration.jei;
/*
import com.raoulvdberge.refinedstorage.RS;
import com.raoulvdberge.refinedstorage.container.slot.filter.SlotFilter;
import com.raoulvdberge.refinedstorage.container.slot.filter.SlotFilterFluid;
import com.raoulvdberge.refinedstorage.container.slot.legacy.SlotLegacyFilter;
import com.raoulvdberge.refinedstorage.gui.GuiBase;
import com.raoulvdberge.refinedstorage.network.MessageSlotFilterSet;
import com.raoulvdberge.refinedstorage.network.MessageSlotFilterSetFluid;
import com.raoulvdberge.refinedstorage.util.StackUtils;
import mezz.jei.api.gui.IGhostIngredientHandler;
import net.minecraft.inventory.Slot;
import com.raoulvdberge.refinedstorage.container.slot.filter.FilterSlot;
import com.raoulvdberge.refinedstorage.container.slot.filter.FluidFilterSlot;
import com.raoulvdberge.refinedstorage.container.slot.legacy.LegacyFilterSlot;
import com.raoulvdberge.refinedstorage.screen.BaseScreen;
import mezz.jei.api.gui.handlers.IGhostIngredientHandler;
import net.minecraft.client.renderer.Rectangle2d;
import net.minecraft.inventory.container.Slot;
import net.minecraft.item.ItemStack;
import net.minecraftforge.fluids.Fluid;
import net.minecraftforge.fluids.FluidStack;
import java.awt.*;
import java.util.ArrayList;
import java.util.List;
public class GhostIngredientHandler implements IGhostIngredientHandler<GuiBase> {
public class GhostIngredientHandler implements IGhostIngredientHandler<BaseScreen> {
@Override
public <I> List<Target<I>> getTargets(GuiBase gui, I ingredient, boolean doStart) {
public <I> List<Target<I>> getTargets(BaseScreen gui, I ingredient, boolean doStart) {
List<Target<I>> targets = new ArrayList<>();
for (Slot slot : gui.inventorySlots.inventorySlots) {
for (Slot slot : gui.getContainer().inventorySlots) {
if (!slot.isEnabled()) {
continue;
}
Rectangle bounds = new Rectangle(gui.getGuiLeft() + slot.xPos, gui.getGuiTop() + slot.yPos, 17, 17);
Rectangle2d bounds = new Rectangle2d(gui.getGuiLeft() + slot.xPos, gui.getGuiTop() + slot.yPos, 17, 17);
if (ingredient instanceof ItemStack) {
if (slot instanceof SlotLegacyFilter || slot instanceof SlotFilter) {
if (slot instanceof LegacyFilterSlot || slot instanceof FilterSlot) {
targets.add(new Target<I>() {
@Override
public Rectangle getArea() {
public Rectangle2d getArea() {
return bounds;
}
@@ -42,21 +37,21 @@ public class GhostIngredientHandler implements IGhostIngredientHandler<GuiBase>
public void accept(I ingredient) {
slot.putStack((ItemStack) ingredient);
RS.INSTANCE.network.sendToServer(new MessageSlotFilterSet(slot.slotNumber, (ItemStack) ingredient));
// TODO RS.INSTANCE.network.sendToServer(new MessageSlotFilterSet(slot.slotNumber, (ItemStack) ingredient));
}
});
}
} else if (ingredient instanceof FluidStack) {
if (slot instanceof SlotFilterFluid) {
if (slot instanceof FluidFilterSlot) {
targets.add(new Target<I>() {
@Override
public Rectangle getArea() {
public Rectangle2d getArea() {
return bounds;
}
@Override
public void accept(I ingredient) {
RS.INSTANCE.network.sendToServer(new MessageSlotFilterSetFluid(slot.slotNumber, StackUtils.copy((FluidStack) ingredient, Fluid.BUCKET_VOLUME)));
// TODO RS.INSTANCE.network.sendToServer(new MessageSlotFilterSetFluid(slot.slotNumber, StackUtils.copy((FluidStack) ingredient, Fluid.BUCKET_VOLUME)));
}
});
}
@@ -71,4 +66,3 @@ public class GhostIngredientHandler implements IGhostIngredientHandler<GuiBase>
// NO OP
}
}
*/

View File

@@ -18,9 +18,6 @@ public class RSJeiPlugin implements IModPlugin {
// 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;
@@ -34,6 +31,9 @@ public class RSJeiPlugin implements IModPlugin {
@Override
public void registerGuiHandlers(IGuiHandlerRegistration registration) {
registration.addGuiContainerHandler(BaseScreen.class, new GuiContainerHandler());
// TODO: https://github.com/mezz/JustEnoughItems/issues/1307
// registration.addGhostIngredientHandler(BaseScreen.class, new GhostIngredientHandler());
}
@Override