package crazypants.enderio.machine.capbank.network; import java.util.HashMap; import java.util.Map; import net.minecraft.world.World; import crazypants.enderio.machine.capbank.TileCapBank; public class ClientNetworkManager { private static final ClientNetworkManager instance = new ClientNetworkManager(); public static ClientNetworkManager getInstance() { return instance; } private final Map<Integer, CapBankClientNetwork> networks = new HashMap<Integer, CapBankClientNetwork>(); ClientNetworkManager() { } public void destroyNetwork(int id) { CapBankClientNetwork res = networks.remove(id); if(res != null) { res.destroyNetwork(); } } public void updateState(World world, int id, NetworkState state) { CapBankClientNetwork network = getOrCreateNetwork(id); network.setState(world, state); } public void updateEnergy(int id, long energyStored, float avgInput, float avgOutput) { CapBankClientNetwork res = networks.get(id); if(res == null) { return; } res.setEnergyStored(energyStored); res.setAverageIOPerTick(avgInput, avgOutput); } public CapBankClientNetwork getOrCreateNetwork(int id) { CapBankClientNetwork res = networks.get(id); if(res == null) { res = new CapBankClientNetwork(id); networks.put(id, res); } return res; } public void addToNetwork(int id, TileCapBank tileCapBank) { CapBankClientNetwork network = getOrCreateNetwork(id); network.addMember(tileCapBank); } }