From 76226305eceb3fd49a8968f0da38426b58389d0c Mon Sep 17 00:00:00 2001 From: Shadowfacts Date: Mon, 3 Oct 2016 13:50:08 -0400 Subject: [PATCH 1/2] Allow inserting items into the Table Sieve by right-click --- .../magneticraft/block/BlockTableSieve.kt | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/main/kotlin/com/cout970/magneticraft/block/BlockTableSieve.kt b/src/main/kotlin/com/cout970/magneticraft/block/BlockTableSieve.kt index 9a628320..b7bbd3df 100644 --- a/src/main/kotlin/com/cout970/magneticraft/block/BlockTableSieve.kt +++ b/src/main/kotlin/com/cout970/magneticraft/block/BlockTableSieve.kt @@ -5,7 +5,11 @@ import com.cout970.magneticraft.tileentity.TileTableSieve import net.minecraft.block.ITileEntityProvider import net.minecraft.block.material.Material import net.minecraft.block.state.IBlockState +import net.minecraft.entity.player.EntityPlayer +import net.minecraft.item.ItemStack import net.minecraft.tileentity.TileEntity +import net.minecraft.util.EnumFacing +import net.minecraft.util.EnumHand import net.minecraft.util.math.BlockPos import net.minecraft.util.math.Vec3d import net.minecraft.world.IBlockAccess @@ -25,5 +29,17 @@ object BlockTableSieve : BlockBase(Material.WOOD, "table_sieve"), ITileEntityPro override fun isFullCube(state: IBlockState?) = false override fun isVisuallyOpaque() = false + override fun onBlockActivated(world: World, pos: BlockPos, state: IBlockState, player: EntityPlayer, hand: EnumHand, heldItem: ItemStack?, side: EnumFacing?, hitX: Float, hitY: Float, hitZ: Float): Boolean { + if (heldItem != null) { + val tile = world.getTileEntity(pos) as TileTableSieve + if (tile.getRecipe(heldItem) != null) { + val inserted = tile.inventory.insertItem(0, heldItem, false) + player.setHeldItem(hand, inserted) + return true + } + } + return false + } + override fun createNewTileEntity(worldIn: World?, meta: Int): TileEntity? = TileTableSieve() } \ No newline at end of file From 7b9df9d7dfef63164bf309a7a1984e899ab874ca Mon Sep 17 00:00:00 2001 From: Shadowfacts Date: Mon, 3 Oct 2016 13:53:23 -0400 Subject: [PATCH 2/2] Clean up TileEntitySieve.suckItems --- .../magneticraft/tileentity/TileTableSieve.kt | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/src/main/kotlin/com/cout970/magneticraft/tileentity/TileTableSieve.kt b/src/main/kotlin/com/cout970/magneticraft/tileentity/TileTableSieve.kt index 156adf97..b96b6cf6 100644 --- a/src/main/kotlin/com/cout970/magneticraft/tileentity/TileTableSieve.kt +++ b/src/main/kotlin/com/cout970/magneticraft/tileentity/TileTableSieve.kt @@ -104,18 +104,15 @@ class TileTableSieve : TileBase(), ITickable { fun suckItems() { val aabb = AxisAlignedBB(pos, pos.up().add(1.0, 1.0, 1.0)) - val items = worldObj.getEntitiesInAABBexcluding(null, aabb, { it is EntityItem }) + val items = worldObj.getEntitiesWithinAABB(EntityItem::class.java, aabb) for (i in items) { - if (i !is EntityItem) continue val item = i.entityItem if (getRecipe(item) == null) continue - val inserted = inventory.insertItem(0, item, true) - if (inserted == null) { - inventory.insertItem(0, item.copy(), false) + val inserted = inventory.insertItem(0, item, false) + if (inserted != null) { + i.setEntityItemStack(inserted) + } else { i.setDead() - } else if (inserted.stackSize != item.stackSize) { - inventory.insertItem(0, item.copy(), false) - item.stackSize = inserted.stackSize } } }