/** * This class was created by <Vazkii>. It's distributed as * part of the Botania Mod. Get the Source Code in github: * https://github.com/Vazkii/Botania * * Botania is Open Source and distributed under the * Botania License: http://botaniamod.net/license.php * * File Created @ [Nov 14, 2014, 5:26:39 PM (GMT)] */ package vazkii.botania.common.block.tile.string; import java.util.Arrays; import javax.annotation.Nonnull; import net.minecraft.tileentity.TileEntity; import net.minecraft.util.EnumFacing; import net.minecraft.util.math.BlockPos; import net.minecraftforge.common.capabilities.Capability; import net.minecraftforge.items.CapabilityItemHandler; public class TileRedStringContainer extends TileRedString { @Override public boolean acceptBlock(BlockPos pos) { TileEntity tile = world.getTileEntity(pos); return tile != null && Arrays.stream(EnumFacing.VALUES) .anyMatch(e -> tile.hasCapability(CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, e)); } @Override public boolean hasCapability(@Nonnull Capability<?> cap, EnumFacing side) { if(cap == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY && getTileAtBinding() != null && getTileAtBinding().hasCapability(cap, side)) return true; return super.hasCapability(cap, side); } @Override public <T> T getCapability(@Nonnull Capability<T> cap, EnumFacing side) { if(cap == CapabilityItemHandler.ITEM_HANDLER_CAPABILITY && getTileAtBinding() != null && getTileAtBinding().hasCapability(cap, side)) return getTileAtBinding().getCapability(cap, side); return super.getCapability(cap, side); } @Override public void markDirty() { super.markDirty(); TileEntity tile = getTileAtBinding(); if(tile != null) tile.markDirty(); } }