--- ../src-base/minecraft/net/minecraft/tileentity/TileEntityLockable.java +++ ../src-work/minecraft/net/minecraft/tileentity/TileEntityLockable.java @@ -48,4 +48,27 @@ { return (ITextComponent)(this.func_145818_k_() ? new TextComponentString(this.func_70005_c_()) : new TextComponentTranslation(this.func_70005_c_(), new Object[0])); } + + private net.minecraftforge.items.IItemHandler itemHandler; + + protected net.minecraftforge.items.IItemHandler createUnSidedHandler() + { + return new net.minecraftforge.items.wrapper.InvWrapper(this); + } + + @SuppressWarnings("unchecked") + @Override + @javax.annotation.Nullable + public T getCapability(net.minecraftforge.common.capabilities.Capability capability, @javax.annotation.Nullable net.minecraft.util.EnumFacing facing) + { + if (capability == net.minecraftforge.items.CapabilityItemHandler.ITEM_HANDLER_CAPABILITY) + return (T) (itemHandler == null ? (itemHandler = createUnSidedHandler()) : itemHandler); + return super.getCapability(capability, facing); + } + + @Override + public boolean hasCapability(net.minecraftforge.common.capabilities.Capability capability, @javax.annotation.Nullable net.minecraft.util.EnumFacing facing) + { + return capability == net.minecraftforge.items.CapabilityItemHandler.ITEM_HANDLER_CAPABILITY || super.hasCapability(capability, facing); + } }