Sorted of fixed FastBench compat

This commit is contained in:
Michael 2020-09-09 16:57:31 +01:00
parent 9dbbb7b913
commit f44c4de74a
No known key found for this signature in database
GPG key ID: 971C5B254742488F
3 changed files with 109 additions and 103 deletions

View file

@ -70,6 +70,9 @@ repositories {
name = "ModMaven / JEI Mirror"
url = "https://modmaven.k-4u.nl"
}
maven {
url = "https://www.cursemaven.com"
}
}
dependencies {
@ -79,6 +82,8 @@ dependencies {
compileOnly fg.deobf("mezz.jei:jei-${mc_version}:${jei_version}:api")
// at runtime, use the full JEI jar
runtimeOnly fg.deobf("mezz.jei:jei-${mc_version}:${jei_version}")
compile "curse.maven:fastworkbench:3003114"
}
jar {

View file

@ -1,92 +1,93 @@
package de.ellpeck.actuallyadditions.common.util.compat;
import org.cyclops.commoncapabilities.api.capability.itemhandler.DefaultSlotlessItemHandlerWrapper;
import org.cyclops.commoncapabilities.api.capability.itemhandler.ISlotlessItemHandler;
import de.ellpeck.actuallyadditions.common.tile.TileEntityItemViewer;
import de.ellpeck.actuallyadditions.common.tile.TileEntityItemViewer.SlotlessItemHandlerInfo;
import de.ellpeck.actuallyadditions.common.util.StackUtil;
import net.minecraft.item.ItemStack;
import net.minecraftforge.items.IItemHandler;
public final class CommonCapsUtil {
public static ISlotlessItemHandler createSlotlessItemViewerHandler(final TileEntityItemViewer tile, IItemHandler normalHandler) {
return new DefaultSlotlessItemHandlerWrapper(normalHandler) {
@Override
public ItemStack insertItem(ItemStack stack, boolean simulate) {
ItemStack remain = stack.copy();
for (SlotlessItemHandlerInfo handler : tile.slotlessInfos) {
if (handler.isLoaded() && tile.isWhitelisted(handler, stack, false)) {
if (handler.handler instanceof ISlotlessItemHandler) {
remain = ((ISlotlessItemHandler) handler.handler).insertItem(stack, simulate);
if (!ItemStack.areItemStacksEqual(remain, stack) && !simulate) {
tile.markDirty();
tile.doItemParticle(stack, handler.relayInQuestion.getPos(), tile.connectedRelay.getPos());
}
if (!StackUtil.isValid(remain)) { return StackUtil.getEmpty(); }
}
}
}
return super.insertItem(remain, simulate);
}
@Override
public ItemStack extractItem(int amount, boolean simulate) {
for (SlotlessItemHandlerInfo handler : tile.slotlessInfos) {
if (handler.isLoaded()) {
if (handler.handler instanceof ISlotlessItemHandler) {
ISlotlessItemHandler slotless = (ISlotlessItemHandler) handler.handler;
ItemStack would = slotless.extractItem(amount, true);
if (StackUtil.isValid(would)) {
if (tile.isWhitelisted(handler, would, true)) {
ItemStack has;
if (simulate) {
has = would;
} else {
has = slotless.extractItem(amount, false);
}
if (StackUtil.isValid(has) && !simulate) {
tile.markDirty();
tile.doItemParticle(has, tile.connectedRelay.getPos(), handler.relayInQuestion.getPos());
}
return has;
}
}
}
}
}
return super.extractItem(amount, simulate);
}
@Override
public ItemStack extractItem(ItemStack matchStack, int matchFlags, boolean simulate) {
for (SlotlessItemHandlerInfo handler : tile.slotlessInfos) {
if (handler.isLoaded()) {
if (handler.handler instanceof ISlotlessItemHandler) {
ISlotlessItemHandler slotless = (ISlotlessItemHandler) handler.handler;
ItemStack would = slotless.extractItem(matchStack, matchFlags, true);
if (StackUtil.isValid(would)) {
if (tile.isWhitelisted(handler, would, true)) {
if (simulate) {
return would;
} else {
return slotless.extractItem(matchStack, matchFlags, false);
}
}
}
}
}
}
return super.extractItem(matchStack, matchFlags, simulate);
}
};
}
}
// @todo: check to see if any mod takes over for this one
//package de.ellpeck.actuallyadditions.common.util.compat;
//
//import org.cyclops.commoncapabilities.api.capability.itemhandler.DefaultSlotlessItemHandlerWrapper;
//import org.cyclops.commoncapabilities.api.capability.itemhandler.ISlotlessItemHandler;
//
//import de.ellpeck.actuallyadditions.common.tile.TileEntityItemViewer;
//import de.ellpeck.actuallyadditions.common.tile.TileEntityItemViewer.SlotlessItemHandlerInfo;
//import de.ellpeck.actuallyadditions.common.util.StackUtil;
//import net.minecraft.item.ItemStack;
//import net.minecraftforge.items.IItemHandler;
//
//public final class CommonCapsUtil {
//
// public static ISlotlessItemHandler createSlotlessItemViewerHandler(final TileEntityItemViewer tile, IItemHandler normalHandler) {
// return new DefaultSlotlessItemHandlerWrapper(normalHandler) {
// @Override
// public ItemStack insertItem(ItemStack stack, boolean simulate) {
// ItemStack remain = stack.copy();
// for (SlotlessItemHandlerInfo handler : tile.slotlessInfos) {
// if (handler.isLoaded() && tile.isWhitelisted(handler, stack, false)) {
// if (handler.handler instanceof ISlotlessItemHandler) {
// remain = ((ISlotlessItemHandler) handler.handler).insertItem(stack, simulate);
//
// if (!ItemStack.areItemStacksEqual(remain, stack) && !simulate) {
// tile.markDirty();
// tile.doItemParticle(stack, handler.relayInQuestion.getPos(), tile.connectedRelay.getPos());
// }
//
// if (!StackUtil.isValid(remain)) { return StackUtil.getEmpty(); }
// }
// }
// }
// return super.insertItem(remain, simulate);
// }
//
// @Override
// public ItemStack extractItem(int amount, boolean simulate) {
// for (SlotlessItemHandlerInfo handler : tile.slotlessInfos) {
// if (handler.isLoaded()) {
// if (handler.handler instanceof ISlotlessItemHandler) {
// ISlotlessItemHandler slotless = (ISlotlessItemHandler) handler.handler;
//
// ItemStack would = slotless.extractItem(amount, true);
// if (StackUtil.isValid(would)) {
// if (tile.isWhitelisted(handler, would, true)) {
// ItemStack has;
// if (simulate) {
// has = would;
// } else {
// has = slotless.extractItem(amount, false);
// }
//
// if (StackUtil.isValid(has) && !simulate) {
// tile.markDirty();
// tile.doItemParticle(has, tile.connectedRelay.getPos(), handler.relayInQuestion.getPos());
// }
//
// return has;
// }
// }
// }
// }
// }
// return super.extractItem(amount, simulate);
// }
//
// @Override
// public ItemStack extractItem(ItemStack matchStack, int matchFlags, boolean simulate) {
// for (SlotlessItemHandlerInfo handler : tile.slotlessInfos) {
// if (handler.isLoaded()) {
// if (handler.handler instanceof ISlotlessItemHandler) {
// ISlotlessItemHandler slotless = (ISlotlessItemHandler) handler.handler;
//
// ItemStack would = slotless.extractItem(matchStack, matchFlags, true);
// if (StackUtil.isValid(would)) {
// if (tile.isWhitelisted(handler, would, true)) {
// if (simulate) {
// return would;
// } else {
// return slotless.extractItem(matchStack, matchFlags, false);
// }
// }
// }
// }
// }
// }
// return super.extractItem(matchStack, matchFlags, simulate);
// }
// };
// }
//
//}

View file

@ -1,29 +1,29 @@
package de.ellpeck.actuallyadditions.common.util.compat;
import net.minecraft.client.gui.Gui;
import net.minecraft.entity.player.EntityPlayer;
import net.minecraft.inventory.Container;
import net.minecraft.client.gui.screen.Screen;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.inventory.container.Container;
import net.minecraft.util.math.BlockPos;
import net.minecraft.world.World;
import net.minecraftforge.fml.relauncher.Side;
import net.minecraftforge.fml.relauncher.SideOnly;
import net.minecraftforge.api.distmarker.Dist;
import net.minecraftforge.api.distmarker.OnlyIn;
import shadows.fastbench.gui.ContainerFastBench;
import shadows.fastbench.gui.GuiFastBench;
public class CompatFastBench {
public static Container getFastBenchContainer(EntityPlayer p, World world) {
return new ContainerFastBench(p, world, BlockPos.ORIGIN) {
public static Container getFastBenchContainer(PlayerEntity p, World world) {
return new ContainerFastBench(0, p, world, BlockPos.ZERO) {
@Override
public boolean canInteractWith(EntityPlayer playerIn) {
public boolean canInteractWith(PlayerEntity playerIn) {
return true;
}
};
}
@SideOnly(Side.CLIENT)
public static Gui getFastBenchGui(EntityPlayer p, World world) {
return new GuiFastBench(p.inventory, world, BlockPos.ORIGIN);
@OnlyIn(Dist.CLIENT)
public static Screen getFastBenchGui(PlayerEntity p, World world) {
return new GuiFastBench(p.inventory, world, BlockPos.ZERO);
}
}