From bc72c25af9fe06f1bfab3e827f0d262a2fd9458f Mon Sep 17 00:00:00 2001 From: Raoul Van den Berge Date: Fri, 13 May 2016 22:26:08 +0200 Subject: [PATCH] Very unstable improved machine searching part3 --- .../java/refinedstorage/block/BlockMachine.java | 11 ----------- .../java/refinedstorage/proxy/CommonProxy.java | 2 +- .../java/refinedstorage/tile/TileController.java | 6 +++++- src/main/java/refinedstorage/tile/TileMachine.java | 14 +++++++++++--- 4 files changed, 17 insertions(+), 16 deletions(-) diff --git a/src/main/java/refinedstorage/block/BlockMachine.java b/src/main/java/refinedstorage/block/BlockMachine.java index 0b556c965..f3439f0dc 100755 --- a/src/main/java/refinedstorage/block/BlockMachine.java +++ b/src/main/java/refinedstorage/block/BlockMachine.java @@ -5,8 +5,6 @@ import net.minecraft.block.properties.IProperty; import net.minecraft.block.properties.PropertyBool; import net.minecraft.block.state.BlockStateContainer; import net.minecraft.block.state.IBlockState; -import net.minecraft.entity.EntityLivingBase; -import net.minecraft.item.ItemStack; import net.minecraft.util.math.BlockPos; import net.minecraft.world.IBlockAccess; import net.minecraft.world.World; @@ -51,15 +49,6 @@ public abstract class BlockMachine extends BlockBase { super.breakBlock(world, pos, state); } - @Override - public void onBlockPlacedBy(World world, BlockPos pos, IBlockState state, EntityLivingBase player, ItemStack stack) { - super.onBlockPlacedBy(world, pos, state, player, stack); - - if (!world.isRemote) { - ((TileMachine) world.getTileEntity(pos)).searchController(); - } - } - @Override public void onNeighborBlockChange(World world, BlockPos pos, IBlockState state, Block neighborBlock) { super.onNeighborBlockChange(world, pos, state, neighborBlock); diff --git a/src/main/java/refinedstorage/proxy/CommonProxy.java b/src/main/java/refinedstorage/proxy/CommonProxy.java index f712344a9..a71dda556 100755 --- a/src/main/java/refinedstorage/proxy/CommonProxy.java +++ b/src/main/java/refinedstorage/proxy/CommonProxy.java @@ -382,7 +382,7 @@ public class CommonProxy { GameRegistry.addShapelessRecipe(disk, new ItemStack(RefinedStorageItems.STORAGE_HOUSING), - new ItemStack(RefinedStorageItems.STORAGE_PART, type, type) + new ItemStack(RefinedStorageItems.STORAGE_PART, 1, type) ); } diff --git a/src/main/java/refinedstorage/tile/TileController.java b/src/main/java/refinedstorage/tile/TileController.java index 3ba6de0e8..ee4a55163 100755 --- a/src/main/java/refinedstorage/tile/TileController.java +++ b/src/main/java/refinedstorage/tile/TileController.java @@ -80,6 +80,7 @@ public class TileController extends TileBase implements IEnergyReceiver, INetwor } public void removeMachine(TileMachine machine) { + System.out.println("Added for removal!"); machinesToRemove.add(machine.getPos()); } @@ -92,8 +93,11 @@ public class TileController extends TileBase implements IEnergyReceiver, INetwor machinesToAdd.clear(); for (BlockPos pos : machinesToRemove) { + System.out.println("ToRemove:" + pos.getX() + "," + pos.getY() + "," + pos.getZ()); for (TileMachine machine : machines) { - if (machine.getPos().getX() == pos.getX() && machine.getPos().getY() == pos.getY() && machine.getPos().getZ() == pos.getZ()) { + System.out.println("Machine:" + machine.getPos().getX() + "," + machine.getPos().getY() + "," + machine.getPos().getZ()); + if (machine.getPos().equals(pos)) { + System.out.println("Found! Removing"); machines.remove(machine); break; } diff --git a/src/main/java/refinedstorage/tile/TileMachine.java b/src/main/java/refinedstorage/tile/TileMachine.java index c1ccbb323..d8140ecde 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; @@ -14,6 +15,7 @@ public abstract class TileMachine extends TileBase implements INetworkTile, IRed protected boolean connected = false; protected RedstoneMode redstoneMode = RedstoneMode.IGNORE; protected TileController controller; + private Block block; private Set visited = new HashSet(); @@ -41,7 +43,9 @@ public abstract class TileMachine extends TileBase implements INetworkTile, IRed public void onLoad() { super.onLoad(); - if (!worldObj.isRemote && !connected) { + if (!worldObj.isRemote) { + block = worldObj.getBlockState(pos).getBlock(); + searchController(); } } @@ -49,7 +53,9 @@ public abstract class TileMachine extends TileBase implements INetworkTile, IRed public void onConnected() { connected = true; - worldObj.setBlockState(pos, worldObj.getBlockState(pos).withProperty(BlockMachine.CONNECTED, true)); + if (worldObj.getBlockState(pos).getBlock() == block) { + worldObj.setBlockState(pos, worldObj.getBlockState(pos).withProperty(BlockMachine.CONNECTED, true)); + } controller.addMachine(this); } @@ -57,7 +63,9 @@ public abstract class TileMachine extends TileBase implements INetworkTile, IRed public void onDisconnected() { connected = false; - worldObj.setBlockState(pos, worldObj.getBlockState(pos).withProperty(BlockMachine.CONNECTED, false)); + if (worldObj.getBlockState(pos).getBlock() == block) { + worldObj.setBlockState(pos, worldObj.getBlockState(pos).withProperty(BlockMachine.CONNECTED, false)); + } controller.removeMachine(this); }