From f5707d6d5d27e7a1e26c35131451535821c64709 Mon Sep 17 00:00:00 2001 From: Raoul Van den Berge Date: Sun, 15 May 2016 21:08:41 +0200 Subject: [PATCH] These changes make shit work. I don't know why, but it fucking works. --- .../java/refinedstorage/tile/TileMachine.java | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/main/java/refinedstorage/tile/TileMachine.java b/src/main/java/refinedstorage/tile/TileMachine.java index 4cda743ad..ec1c13605 100755 --- a/src/main/java/refinedstorage/tile/TileMachine.java +++ b/src/main/java/refinedstorage/tile/TileMachine.java @@ -48,6 +48,8 @@ public abstract class TileMachine extends TileBase implements ISynchronizedConta } else { if (newController == null) { onDisconnected(world); + } else { + connected = true; } } } @@ -66,7 +68,7 @@ public abstract class TileMachine extends TileBase implements ISynchronizedConta TileEntity tile = worldObj.getTileEntity(new BlockPos(controllerX, controllerY, controllerZ)); if (tile instanceof TileController) { - search = !tryConnect(worldObj, (TileController) tile); + search = !tryConnect((TileController) tile); } } @@ -76,7 +78,7 @@ public abstract class TileMachine extends TileBase implements ISynchronizedConta } if (connected && !redstoneMode.isEnabled(worldObj, pos)) { - onDisconnected(worldObj); + onDisconnected(worldObj, false); } if (!(this instanceof TileCable)) { @@ -86,13 +88,13 @@ public abstract class TileMachine extends TileBase implements ISynchronizedConta } public void onConnected(World world, TileController controller) { - if (tryConnect(world, controller)) { + if (tryConnect(controller)) { world.notifyNeighborsOfStateChange(pos, block); } } - private boolean tryConnect(World world, TileController controller) { - if (!controller.canRun() || !redstoneMode.isEnabled(world, pos)) { + private boolean tryConnect(TileController controller) { + if (!controller.canRun()) { return false; } @@ -105,9 +107,13 @@ public abstract class TileMachine extends TileBase implements ISynchronizedConta } public void onDisconnected(World world) { + onDisconnected(world, true); + } + + public void onDisconnected(World world, boolean removeController) { this.connected = false; - if (this.controller != null) { + if (removeController && this.controller != null) { this.controller.removeMachine(this); this.controller = null; }