diff --git a/src/main/java/openblocks/common/tileentity/TileEntityBlockManipulator.java b/src/main/java/openblocks/common/tileentity/TileEntityBlockManipulator.java index b783d7ba..7be4030f 100644 --- a/src/main/java/openblocks/common/tileentity/TileEntityBlockManipulator.java +++ b/src/main/java/openblocks/common/tileentity/TileEntityBlockManipulator.java @@ -31,13 +31,18 @@ public abstract class TileEntityBlockManipulator extends OpenTileEntity implemen } if (isPowered) - triggerBreakBlock(newState); + triggerBlockAction(newState); } } } - private void triggerBreakBlock(IBlockState newState) { - final EnumFacing direction = getFront(newState); + protected void triggerBlockAction() { + final IBlockState state = worldObj.getBlockState(getPos()); + triggerBlockAction(state); + } + + private void triggerBlockAction(IBlockState state) { + final EnumFacing direction = getFront(state); final BlockPos target = pos.offset(direction); if (worldObj.isBlockLoaded(target)) { diff --git a/src/main/java/openblocks/common/tileentity/TileEntityBlockPlacer.java b/src/main/java/openblocks/common/tileentity/TileEntityBlockPlacer.java index 8916c765..fae20bf1 100644 --- a/src/main/java/openblocks/common/tileentity/TileEntityBlockPlacer.java +++ b/src/main/java/openblocks/common/tileentity/TileEntityBlockPlacer.java @@ -16,6 +16,7 @@ import net.minecraftforge.items.CapabilityItemHandler; import openblocks.client.gui.GuiBlockPlacer; import openblocks.common.container.ContainerBlockPlacer; import openmods.api.IHasGui; +import openmods.api.IInventoryCallback; import openmods.fakeplayer.FakePlayerPool; import openmods.fakeplayer.UseItemAction; import openmods.include.IncludeInterface; @@ -27,7 +28,14 @@ public class TileEntityBlockPlacer extends TileEntityBlockManipulator implements static final int BUFFER_SIZE = 9; - private final GenericInventory inventory = registerInventoryCallback(new TileEntityInventory(this, "blockPlacer", false, BUFFER_SIZE)); + private final GenericInventory inventory = new TileEntityInventory(this, "blockPlacer", false, BUFFER_SIZE) + .addCallback(new IInventoryCallback() { + @Override + public void onInventoryChanged(IInventory inventory, int slotNumber) { + markUpdated(); + triggerBlockAction(); + } + }); @Override protected boolean canWork(IBlockState targetState, BlockPos target, EnumFacing direction) {