mirror of
https://github.com/Ellpeck/ActuallyAdditions.git
synced 2024-11-25 16:38:33 +01:00
Sorted of fixed FastBench compat
This commit is contained in:
parent
9dbbb7b913
commit
f44c4de74a
3 changed files with 109 additions and 103 deletions
|
@ -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 {
|
||||
|
|
|
@ -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);
|
||||
// }
|
||||
// };
|
||||
// }
|
||||
//
|
||||
//}
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue