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];
            }
        }