optimize cables a bit
This commit is contained in:
@@ -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<TileMachine> machines, TileController controller) {
|
||||
addMachines(new ArrayList<Vec3>(), machines, controller);
|
||||
}
|
||||
|
||||
private void addMachines(List<Vec3> visited, List<TileMachine> machines, TileController controller) {
|
||||
public void addMachines(List<Vec3> visited, List<TileMachine> machines, TileController controller) {
|
||||
for (Vec3 visitedBlock : visited) {
|
||||
if (visitedBlock.xCoord == xCoord && visitedBlock.yCoord == yCoord && visitedBlock.zCoord == zCoord) {
|
||||
return;
|
||||
|
@@ -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<TileMachine> machines = new ArrayList<TileMachine>();
|
||||
|
||||
private List<Vec3> visitedCables = new ArrayList<Vec3>();
|
||||
|
||||
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<TileMachine> newMachines = new ArrayList<TileMachine>();
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user