From 9e954a1df262ba9e2cb49faff7d5a660e1ea9804 Mon Sep 17 00:00:00 2001 From: Raoul Van den Berge Date: Mon, 4 Apr 2016 15:32:37 +0200 Subject: [PATCH] Make it work more --- .../java/refinedstorage/tile/TileMachine.java | 20 +++++++++++++++---- .../tile/grid/WirelessGrid.java | 1 + 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/src/main/java/refinedstorage/tile/TileMachine.java b/src/main/java/refinedstorage/tile/TileMachine.java index f64111a1f..6d1099d76 100755 --- a/src/main/java/refinedstorage/tile/TileMachine.java +++ b/src/main/java/refinedstorage/tile/TileMachine.java @@ -1,6 +1,7 @@ package refinedstorage.tile; import io.netty.buffer.ByteBuf; +import net.minecraft.block.Block; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.util.math.BlockPos; import refinedstorage.block.BlockMachine; @@ -12,8 +13,10 @@ public abstract class TileMachine extends TileBase implements INetworkTile, IRed protected RedstoneMode redstoneMode = RedstoneMode.IGNORE; protected TileController controller; + private Block machineBlock; + public void onConnected(TileController controller) { - if (worldObj != null && worldObj.getBlockState(pos).getBlock() == blockType) { + if (worldObj != null && worldObj.getBlockState(pos).getBlock() == machineBlock) { markDirty(); this.connected = true; @@ -24,7 +27,7 @@ public abstract class TileMachine extends TileBase implements INetworkTile, IRed } public void onDisconnected() { - if (worldObj != null && worldObj.getBlockState(pos).getBlock() == blockType) { + if (worldObj != null && worldObj.getBlockState(pos).getBlock() == machineBlock) { markDirty(); this.connected = false; @@ -40,9 +43,18 @@ public abstract class TileMachine extends TileBase implements INetworkTile, IRed @Override public void update() { + if (worldObj == null) { + super.update(); + return; + } + + if (ticks == 0) { + machineBlock = worldObj.getBlockState(pos).getBlock(); + } + super.update(); - if (worldObj != null && !worldObj.isRemote && isConnected()) { + if (!worldObj.isRemote && isConnected()) { updateMachine(); } } @@ -75,7 +87,7 @@ public abstract class TileMachine extends TileBase implements INetworkTile, IRed connected = buf.readBoolean(); if (lastConnected != connected) { - // @TODO: make this work and use correct flags? + // @TODO: Am I using the correct flags? worldObj.notifyBlockUpdate(pos, worldObj.getBlockState(pos), worldObj.getBlockState(pos), 2 | 4); } } diff --git a/src/main/java/refinedstorage/tile/grid/WirelessGrid.java b/src/main/java/refinedstorage/tile/grid/WirelessGrid.java index 065144602..f152d77b7 100755 --- a/src/main/java/refinedstorage/tile/grid/WirelessGrid.java +++ b/src/main/java/refinedstorage/tile/grid/WirelessGrid.java @@ -13,6 +13,7 @@ import refinedstorage.util.HandUtils; import java.util.List; +// @TODO: Fix this as well public class WirelessGrid implements IGrid { private ItemStack stack; private EnumHand hand;