From 70f19e23055aaf1bf2f263d08b4e56aa31ab26d7 Mon Sep 17 00:00:00 2001 From: Vasco Lavos Date: Sun, 25 May 2014 21:14:13 +0100 Subject: [PATCH] Force Relays will not push the block they're bound to if pushed by a sticky piston. Remote Controlled Frames anybody? --- MODSRC/vazkii/botania/common/block/BlockPistonRelay.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/MODSRC/vazkii/botania/common/block/BlockPistonRelay.java b/MODSRC/vazkii/botania/common/block/BlockPistonRelay.java index a2a274899..5a8c58268 100644 --- a/MODSRC/vazkii/botania/common/block/BlockPistonRelay.java +++ b/MODSRC/vazkii/botania/common/block/BlockPistonRelay.java @@ -193,6 +193,7 @@ public class BlockPistonRelay extends BlockMod implements IWandable, ILexiconabl if(block == Blocks.piston_extension) { int meta = getBlockMetaAt(s); + boolean sticky = (meta & 8) == 8; ForgeDirection dir = ForgeDirection.getOrientation(meta & ~8); MinecraftServer server = MinecraftServer.getServer(); @@ -219,7 +220,7 @@ public class BlockPistonRelay extends BlockMod implements IWandable, ILexiconabl TileEntity tile = world.getTileEntity(x, y, z); Material mat = srcBlock.getMaterial(); - if(tile == null && mat.getMaterialMobility() == 0 && !srcBlock.isAir(world, x, y, z)) { + if(!sticky && tile == null && mat.getMaterialMobility() == 0 && !srcBlock.isAir(world, x, y, z)) { Material destMat = world.getBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ).getMaterial(); if(world.isAirBlock(x + dir.offsetX, y + dir.offsetY, z + dir.offsetZ) || destMat.isReplaceable()) { world.setBlock(x, y, z, Blocks.air);