diff --git a/src/main/java/storagecraft/tile/TileCable.java b/src/main/java/storagecraft/tile/TileCable.java index cd929651a..b46b4d72d 100644 --- a/src/main/java/storagecraft/tile/TileCable.java +++ b/src/main/java/storagecraft/tile/TileCable.java @@ -1,6 +1,5 @@ package storagecraft.tile; -import java.util.ArrayList; import java.util.List; import net.minecraft.block.Block; import net.minecraft.tileentity.TileEntity; @@ -26,11 +25,7 @@ public class TileCable extends TileSC { return true; } - public void addMachines(List machines, TileController controller) { - addMachines(new ArrayList(), machines, controller); - } - - private void addMachines(List visited, List machines, TileController controller) { + public void addMachines(List visited, List machines, TileController controller) { for (Vec3 visitedBlock : visited) { if (visitedBlock.xCoord == xCoord && visitedBlock.yCoord == yCoord && visitedBlock.zCoord == zCoord) { return; diff --git a/src/main/java/storagecraft/tile/TileController.java b/src/main/java/storagecraft/tile/TileController.java index 6ada827aa..4bc8c20f4 100644 --- a/src/main/java/storagecraft/tile/TileController.java +++ b/src/main/java/storagecraft/tile/TileController.java @@ -10,6 +10,7 @@ import net.minecraft.item.Item; import net.minecraft.item.ItemStack; import net.minecraft.nbt.NBTTagCompound; import net.minecraft.tileentity.TileEntity; +import net.minecraft.util.Vec3; import net.minecraftforge.common.util.ForgeDirection; import storagecraft.storage.IStorage; import storagecraft.storage.IStorageProvider; @@ -21,6 +22,8 @@ public class TileController extends TileSC implements IEnergyReceiver, INetworkT private List machines = new ArrayList(); + private List visitedCables = new ArrayList(); + private EnergyStorage energy = new EnergyStorage(32000); private int energyUsage; @@ -39,13 +42,15 @@ public class TileController extends TileSC implements IEnergyReceiver, INetworkT if (!isActive()) { disconnectAll(); } else { + visitedCables.clear(); + List newMachines = new ArrayList(); for (ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) { TileEntity tile = worldObj.getTileEntity(xCoord + dir.offsetX, yCoord + dir.offsetY, zCoord + dir.offsetZ); if (tile instanceof TileCable) { - ((TileCable) tile).addMachines(newMachines, this); + ((TileCable) tile).addMachines(visitedCables, newMachines, this); } }