@Override public void onNetworksCreated(List<FluidNetwork> networks) { if (fluidStored != null && FMLCommonHandler.instance().getEffectiveSide().isServer()) { int[] caps = new int[networks.size()]; int cap = 0; for (FluidNetwork network : networks) { caps[networks.indexOf(network)] = network.getCapacity(); cap += network.getCapacity(); } fluidStored.amount = Math.min(cap, fluidStored.amount); int[] values = ListUtils.calcPercentInt(ListUtils.percent(caps), fluidStored.amount); for (FluidNetwork network : networks) { int index = networks.indexOf(network); if (values[index] > 0) { network.fluidStored = new FluidStack(fluidStored.getFluid(), values[index]); network.fluidScale = network.getScale(); network.refFluid = fluidStored.getFluid(); } } } fluidScale = 0; fluidStored = null; refFluid = null; }
@Override protected FluidNetwork create(Collection<IGridTransmitter<FluidNetwork>> collection) { FluidNetwork network = new FluidNetwork(collection); network.refFluid = refFluid; if (fluidStored != null) { if (network.fluidStored == null) { network.fluidStored = fluidStored; } else { network.fluidStored.amount += fluidStored.amount; } } network.fluidScale = network.getScale(); return network; }
@Override protected FluidNetwork create(IGridTransmitter<FluidNetwork>... varTransmitters) { FluidNetwork network = new FluidNetwork(varTransmitters); network.refFluid = refFluid; if (fluidStored != null) { if (network.fluidStored == null) { network.fluidStored = fluidStored; } else { network.fluidStored.amount += fluidStored.amount; } } network.fluidScale = network.getScale(); fluidScale = 0; refFluid = null; fluidStored = null; return network; }