From 16fd43c955ea4b654b54c2e11d20f9ed944de202 Mon Sep 17 00:00:00 2001 From: Raoul Van den Berge Date: Mon, 20 Jun 2016 22:12:27 +0200 Subject: [PATCH] WIP --- .../api/network/NetworkMaster.java | 4 +- .../api/network/NetworkMasterRegistry.java | 2 +- .../api/network/NetworkMasterSavedData.java | 6 +-- .../java/refinedstorage/tile/TileSlave.java | 35 ++++++++++++++-- .../tile/controller/ControllerSearcher.java | 40 ------------------- .../tile/controller/WirelessGridHandler.java | 2 +- .../refinedstorage/tile/grid/TileGrid.java | 2 +- 7 files changed, 40 insertions(+), 51 deletions(-) delete mode 100755 src/main/java/refinedstorage/tile/controller/ControllerSearcher.java diff --git a/src/main/java/refinedstorage/api/network/NetworkMaster.java b/src/main/java/refinedstorage/api/network/NetworkMaster.java index 47a2dde59..ed087c1e7 100755 --- a/src/main/java/refinedstorage/api/network/NetworkMaster.java +++ b/src/main/java/refinedstorage/api/network/NetworkMaster.java @@ -110,7 +110,7 @@ public class NetworkMaster { return energyUsage; } - public BlockPos getPos() { + public BlockPos getPosition() { return pos; } @@ -220,7 +220,7 @@ public class NetworkMaster { markDirty(); } - public void removeMachine(INetworkSlave slave) { + public void removeSlave(INetworkSlave slave) { slavesToRemove.add(slave); markDirty(); diff --git a/src/main/java/refinedstorage/api/network/NetworkMasterRegistry.java b/src/main/java/refinedstorage/api/network/NetworkMasterRegistry.java index aeb9deb1e..94b600362 100755 --- a/src/main/java/refinedstorage/api/network/NetworkMasterRegistry.java +++ b/src/main/java/refinedstorage/api/network/NetworkMasterRegistry.java @@ -13,7 +13,7 @@ public class NetworkMasterRegistry { NETWORKS.put(dimension, new HashMap()); } - NETWORKS.get(dimension).put(network.getPos(), network); + NETWORKS.get(dimension).put(network.getPosition(), network); } public static void remove(BlockPos pos, int dimension) { diff --git a/src/main/java/refinedstorage/api/network/NetworkMasterSavedData.java b/src/main/java/refinedstorage/api/network/NetworkMasterSavedData.java index 99428375a..c55bb1066 100755 --- a/src/main/java/refinedstorage/api/network/NetworkMasterSavedData.java +++ b/src/main/java/refinedstorage/api/network/NetworkMasterSavedData.java @@ -45,9 +45,9 @@ public class NetworkMasterSavedData extends WorldSavedData { for (NetworkMaster network : entry.getValue().values()) { NBTTagCompound networkTag = new NBTTagCompound(); - networkTag.setInteger(NBT_NETWORK_X, network.getPos().getX()); - networkTag.setInteger(NBT_NETWORK_Y, network.getPos().getY()); - networkTag.setInteger(NBT_NETWORK_Z, network.getPos().getZ()); + networkTag.setInteger(NBT_NETWORK_X, network.getPosition().getX()); + networkTag.setInteger(NBT_NETWORK_Y, network.getPosition().getY()); + networkTag.setInteger(NBT_NETWORK_Z, network.getPosition().getZ()); networkTag.setInteger(NBT_NETWORK_DIM, entry.getKey()); networkTag.setTag(NBT_NETWORK_DATA, network.writeToNBT(new NBTTagCompound())); diff --git a/src/main/java/refinedstorage/tile/TileSlave.java b/src/main/java/refinedstorage/tile/TileSlave.java index 4117dd498..3e8a46153 100755 --- a/src/main/java/refinedstorage/tile/TileSlave.java +++ b/src/main/java/refinedstorage/tile/TileSlave.java @@ -2,6 +2,8 @@ package refinedstorage.tile; import io.netty.buffer.ByteBuf; import net.minecraft.nbt.NBTTagCompound; +import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.EnumFacing; import net.minecraft.util.math.BlockPos; import net.minecraft.world.World; import refinedstorage.RefinedStorageUtils; @@ -10,7 +12,6 @@ import refinedstorage.api.network.NetworkMaster; import refinedstorage.api.network.NetworkMasterRegistry; import refinedstorage.tile.config.IRedstoneModeConfig; import refinedstorage.tile.config.RedstoneMode; -import refinedstorage.tile.controller.ControllerSearcher; import refinedstorage.tile.controller.TileController; import java.util.HashSet; @@ -67,7 +68,7 @@ public abstract class TileSlave extends TileBase implements ISynchronizedContain this.connected = false; if (this.network != null) { - this.network.removeMachine(this); + this.network.removeSlave(this); this.network = null; } @@ -78,7 +79,7 @@ public abstract class TileSlave extends TileBase implements ISynchronizedContain public void onNeighborChanged(World world) { visited.clear(); - TileController controller = ControllerSearcher.search(world, pos, visited); + TileController controller = searchController(world, pos, visited); if (network == null) { if (controller != null) { @@ -91,6 +92,34 @@ public abstract class TileSlave extends TileBase implements ISynchronizedContain } } + private TileController searchController(World world, BlockPos current, Set visited) { + if (visited.contains(current.getX() + "," + current.getY() + "," + current.getZ())) { + return null; + } + + visited.add(current.getX() + "," + current.getY() + "," + current.getZ()); + + TileEntity tile = world.getTileEntity(current); + + if (tile instanceof TileController) { + return (TileController) tile; + } else if (tile instanceof TileSlave) { + if (visited.size() > 1 && tile instanceof TileRelay && !((TileRelay) tile).canUpdate()) { + return null; + } + + for (EnumFacing dir : EnumFacing.VALUES) { + TileController controller = searchController(world, current.offset(dir), visited); + + if (controller != null) { + return controller; + } + } + } + + return null; + } + public NetworkMaster getNetwork() { return network; } diff --git a/src/main/java/refinedstorage/tile/controller/ControllerSearcher.java b/src/main/java/refinedstorage/tile/controller/ControllerSearcher.java deleted file mode 100755 index 041a76e57..000000000 --- a/src/main/java/refinedstorage/tile/controller/ControllerSearcher.java +++ /dev/null @@ -1,40 +0,0 @@ -package refinedstorage.tile.controller; - -import net.minecraft.tileentity.TileEntity; -import net.minecraft.util.EnumFacing; -import net.minecraft.util.math.BlockPos; -import net.minecraft.world.World; -import refinedstorage.tile.TileRelay; -import refinedstorage.tile.TileSlave; - -import java.util.Set; - -public final class ControllerSearcher { - public static TileController search(World world, BlockPos current, Set visited) { - if (visited.contains(current.getX() + "," + current.getY() + "," + current.getZ())) { - return null; - } - - visited.add(current.getX() + "," + current.getY() + "," + current.getZ()); - - TileEntity tile = world.getTileEntity(current); - - if (tile instanceof TileController) { - return (TileController) tile; - } else if (tile instanceof TileSlave) { - if (visited.size() > 1 && tile instanceof TileRelay && !((TileRelay) tile).canUpdate()) { - return null; - } - - for (EnumFacing dir : EnumFacing.VALUES) { - TileController controller = search(world, current.offset(dir), visited); - - if (controller != null) { - return controller; - } - } - } - - return null; - } -} diff --git a/src/main/java/refinedstorage/tile/controller/WirelessGridHandler.java b/src/main/java/refinedstorage/tile/controller/WirelessGridHandler.java index 12978a627..4bce7ffd8 100755 --- a/src/main/java/refinedstorage/tile/controller/WirelessGridHandler.java +++ b/src/main/java/refinedstorage/tile/controller/WirelessGridHandler.java @@ -42,7 +42,7 @@ public class WirelessGridHandler { } public boolean handleOpen(EntityPlayer player, EnumHand hand) { - int distance = (int) Math.sqrt(Math.pow(network.getPos().getX() - player.posX, 2) + Math.pow(network.getPos().getY() - player.posY, 2) + Math.pow(network.getPos().getZ() - player.posZ, 2)); + int distance = (int) Math.sqrt(Math.pow(network.getPosition().getX() - player.posX, 2) + Math.pow(network.getPosition().getY() - player.posY, 2) + Math.pow(network.getPosition().getZ() - player.posZ, 2)); if (distance > network.getWirelessGridRange()) { return false; diff --git a/src/main/java/refinedstorage/tile/grid/TileGrid.java b/src/main/java/refinedstorage/tile/grid/TileGrid.java index 6ffac506f..3ea43e9ed 100755 --- a/src/main/java/refinedstorage/tile/grid/TileGrid.java +++ b/src/main/java/refinedstorage/tile/grid/TileGrid.java @@ -109,7 +109,7 @@ public class TileGrid extends TileSlave implements IGrid { @Override public BlockPos getControllerPos() { - return network != null ? network.getPos() : null; + return network != null ? network.getPosition() : null; } public void onGridOpened(EntityPlayer player) {