From 91bf28e80338171724928531d18eb1346f4e6b3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20N=C3=BCcke?= Date: Mon, 1 Jun 2015 21:07:39 +0200 Subject: [PATCH] Notify neighbors of redstone emitting prints when they're broken, fixes #1193. --- src/main/scala/li/cil/oc/common/block/Print.scala | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/main/scala/li/cil/oc/common/block/Print.scala b/src/main/scala/li/cil/oc/common/block/Print.scala index 061df66c6..afc8d8ee3 100644 --- a/src/main/scala/li/cil/oc/common/block/Print.scala +++ b/src/main/scala/li/cil/oc/common/block/Print.scala @@ -12,6 +12,7 @@ import li.cil.oc.common.tileentity import li.cil.oc.integration.util.NEI import li.cil.oc.util.ExtendedAABB import li.cil.oc.util.ExtendedAABB._ +import net.minecraft.block.Block import net.minecraft.entity.Entity import net.minecraft.entity.EntityLivingBase import net.minecraft.entity.EnumCreatureType @@ -207,4 +208,16 @@ class Print(protected implicit val tileTag: ClassTag[tileentity.Print]) extends dropBlockAsItem(tileEntity.world, tileEntity.x, tileEntity.y, tileEntity.z, tileEntity.data.createItemStack()) } } + + override def breakBlock(world: World, x: Int, y: Int, z: Int, block: Block, metadata: Int): Unit = { + world.getTileEntity(x, y, z) match { + case print: tileentity.Print if print.data.emitRedstone(print.state) => + world.notifyBlocksOfNeighborChange(x, y, z, this) + for (side <- ForgeDirection.VALID_DIRECTIONS) { + world.notifyBlocksOfNeighborChange(x + side.offsetX, y + side.offsetY, z + side.offsetZ, this) + } + case _ => + } + super.breakBlock(world, x, y, z, block, metadata) + } }