internal void ConsumePower(float amount) { if (_battery == null) { QuickLogger.Error("Battery is null cannot consume power!"); return; } var slot = _battery.GetSlot(); var power = _battery.GetPower(); if (!Mathf.Approximately(power, 0) && power >= amount) { _battery.Consume(amount); return; } //try next battery if (slot - 1 < 0) { return; // we are using the firs battery no need to check } var powercell = _powerCells[slot - 1]; power = powercell.GetPowerValue(); if (!Mathf.Approximately(power, 0) && power >= amount) { _battery = powercell; _battery.Consume(amount); } }
internal void ChargeBatteries(float amount) { foreach (PowercellModel powerCell in _powerCells) { if (powerCell.GetIsFull()) { continue; } if (_battery != null && _battery != powerCell) { _battery = powerCell; } powerCell.Charge(amount); break; } }
internal void Initialize(FCSPowerStorageController mono) { _mono = mono; StartCoroutine(UpdatePowerRelay()); // Create four batteries for (int i = 0; i < _mono.BatteryCount; i++) { PowercellModel powercell = new PowercellModel(); powercell.SetSlot(i); powercell.SetName(string.Empty); //Let it create its own name _powerCells.Add(powercell); } if (_savedBattery == -1) { _battery = _powerCells[0]; } }