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,17 +58,14 @@ 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) part.setNetwork(this);
{
part.setNetwork(this);
}
this.reconstructConnector(part);
} }
this.reconstructConnector(part);
} }
this.reconstructTankInfo(); this.reconstructTankInfo();