48 lines
1.9 KiB
Diff
48 lines
1.9 KiB
Diff
--- ../src-base/minecraft/net/minecraft/tileentity/TileEntityChest.java
|
|
+++ ../src-work/minecraft/net/minecraft/tileentity/TileEntityChest.java
|
|
@@ -116,6 +116,7 @@
|
|
{
|
|
super.func_145836_u();
|
|
this.field_145984_a = false;
|
|
+ doubleChestHandler = null;
|
|
}
|
|
|
|
@SuppressWarnings("incomplete-switch")
|
|
@@ -167,6 +168,7 @@
|
|
{
|
|
if (!this.field_145984_a)
|
|
{
|
|
+ if (this.field_145850_b == null || !this.field_145850_b.func_175697_a(this.field_174879_c, 1)) return; // Forge: prevent loading unloaded chunks when checking neighbors
|
|
this.field_145984_a = true;
|
|
this.field_145991_k = this.func_174911_a(EnumFacing.WEST);
|
|
this.field_145990_j = this.func_174911_a(EnumFacing.EAST);
|
|
@@ -349,6 +351,29 @@
|
|
}
|
|
}
|
|
|
|
+ public net.minecraftforge.items.VanillaDoubleChestItemHandler doubleChestHandler;
|
|
+
|
|
+ @SuppressWarnings("unchecked")
|
|
+ @Override
|
|
+ @Nullable
|
|
+ public <T> T getCapability(net.minecraftforge.common.capabilities.Capability<T> capability, @Nullable net.minecraft.util.EnumFacing facing)
|
|
+ {
|
|
+ if (capability == net.minecraftforge.items.CapabilityItemHandler.ITEM_HANDLER_CAPABILITY)
|
|
+ {
|
|
+ if(doubleChestHandler == null || doubleChestHandler.needsRefresh())
|
|
+ doubleChestHandler = net.minecraftforge.items.VanillaDoubleChestItemHandler.get(this);
|
|
+ if (doubleChestHandler != null && doubleChestHandler != net.minecraftforge.items.VanillaDoubleChestItemHandler.NO_ADJACENT_CHESTS_INSTANCE)
|
|
+ return (T) doubleChestHandler;
|
|
+ }
|
|
+ return super.getCapability(capability, facing);
|
|
+ }
|
|
+
|
|
+ public net.minecraftforge.items.IItemHandler getSingleChestHandler()
|
|
+ {
|
|
+ return super.getCapability(net.minecraftforge.items.CapabilityItemHandler.ITEM_HANDLER_CAPABILITY, null);
|
|
+ }
|
|
+
|
|
+
|
|
public void func_145843_s()
|
|
{
|
|
super.func_145843_s();
|