// Helper function makes sure there are no duplicate sockets in the list // of sockets associated with each button private void AddSingleButtonSocketPair(Button button, EnergySocket socket) { List <EnergySocket> sockets = buttonSocketPairs[button]; if (!sockets.Contains(socket)) { sockets.Add(socket); } }
/* * Public interface */ public void AddButtonSocketPair(Button button, EnergySocket socket) { if (!buttonSocketPairs.ContainsKey(button)) { buttonSocketPairs.Add(button, new List <EnergySocket>()); button.onClick.AddListener(TransferEnergyCallback(button)); } AddSingleButtonSocketPair(button, socket); }
// Transfer energy to the given energy socket and call the event if it exists public void TransferEnergy(EnergySocket socket) { int amountAbsorbed = socket.AbsorbEnergy(this); energyTransferredEvent.Invoke(new EnergyEventData(this, socket, amountAbsorbed)); }
public EnergyAbsorbedEventData(EnergySocket energySocket, Energy energyAbsorbed, int amtAbsorbed) { _socket = energySocket; _energy = energyAbsorbed; _amountAbsorbed = amtAbsorbed; }
public EnergyTransferredEventData(EnergySocket energySocket, EnergySource energySource, int energyTransferred) { _socket = energySocket; _source = energySource; _amountTransferred = energyTransferred; }
public EnergyEventData(EnergySource src, EnergySocket dest, int amt) { source = src; socket = dest; energy = amt; }