Fixed #282 - Connector loop concurrent modification

This commit is contained in:
Calclavia 2014-02-25 08:23:07 +08:00
parent cbbe4ecb5e
commit c122eaec05

View file

@ -1,5 +1,6 @@
package resonantinduction.core.prefab.fluid; package resonantinduction.core.prefab.fluid;
import java.util.HashSet;
import java.util.Set; import java.util.Set;
import net.minecraftforge.common.ForgeDirection; import net.minecraftforge.common.ForgeDirection;
@ -38,7 +39,6 @@ public abstract class FluidNetwork extends NodeNetwork<IFluidNetwork, IFluidConn
@Override @Override
public void update() public void update()
{ {
// TODO change to distribute fluid
} }
@Override @Override
@ -58,9 +58,7 @@ public abstract class FluidNetwork extends NodeNetwork<IFluidNetwork, IFluidConn
{ {
this.tank = new FluidTank(0); this.tank = new FluidTank(0);
synchronized (getConnectors()) for (IFluidConnector part : new HashSet<IFluidConnector>(getConnectors()))
{
for (IFluidConnector part : this.getConnectors())
{ {
if (part.getNetwork() instanceof IFluidNetwork) if (part.getNetwork() instanceof IFluidNetwork)
{ {
@ -69,7 +67,6 @@ public abstract class FluidNetwork extends NodeNetwork<IFluidNetwork, IFluidConn
this.reconstructConnector(part); this.reconstructConnector(part);
} }
}
this.reconstructTankInfo(); this.reconstructTankInfo();
this.distributeConnectors(); this.distributeConnectors();