From 6c8370bcb305a22fe56865c6daaf3f05ff79d306 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20N=C3=BCcke?= Date: Sun, 7 Jun 2015 12:01:22 +0200 Subject: [PATCH] Fixed interaction of agents with trapped chests adjacent to normal chests in certain orientations (would insert/remove into/from wrong chest). Closes #1205. --- src/main/scala/li/cil/oc/util/InventoryUtils.scala | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/main/scala/li/cil/oc/util/InventoryUtils.scala b/src/main/scala/li/cil/oc/util/InventoryUtils.scala index d06862471..8a51f0d70 100644 --- a/src/main/scala/li/cil/oc/util/InventoryUtils.scala +++ b/src/main/scala/li/cil/oc/util/InventoryUtils.scala @@ -1,6 +1,7 @@ package li.cil.oc.util import li.cil.oc.util.ExtendedWorld._ +import net.minecraft.block.BlockChest import net.minecraft.entity.item.EntityItem import net.minecraft.entity.item.EntityMinecartContainer import net.minecraft.entity.player.EntityPlayer @@ -20,9 +21,9 @@ object InventoryUtils { * mine carts with chests. */ def inventoryAt(position: BlockPosition): Option[IInventory] = position.world match { - case Some(world) if world.blockExists(position) => world.getTileEntity(position) match { - case chest: TileEntityChest => Option(net.minecraft.init.Blocks.chest.func_149951_m(world, chest.xCoord, chest.yCoord, chest.zCoord)) - case inventory: IInventory => Some(inventory) + case Some(world) if world.blockExists(position) => (world.getBlock(position), world.getTileEntity(position)) match { + case (block: BlockChest, chest: TileEntityChest) => Option(block.func_149951_m(world, chest.xCoord, chest.yCoord, chest.zCoord)) + case (_, inventory: IInventory) => Some(inventory) case _ => world.getEntitiesWithinAABB(classOf[EntityMinecartContainer], position.bounds). map(_.asInstanceOf[EntityMinecartContainer]). find(!_.isDead)