private void Empty()
    {
        _collider.enabled = false;
        _playerCharging   = false;
        _fuelComponent    = null;

        if (GameEventsManager.OnFuelStopCharging != null)
        {
            GameEventsManager.OnFuelStopCharging();
        }
    }
    private void OnTriggerExit(Collider other)
    {
        _fuelComponent = other.GetComponent <FuelConsumptionComponent>();

        if (_fuelComponent != null)
        {
            _fuelComponent = null;

            _playerCharging = false;

            if (GameEventsManager.OnFuelStopCharging != null)
            {
                GameEventsManager.OnFuelStopCharging();
            }
        }
    }
    private void Update()
    {
        if (!_playerCharging)
        {
            return;
        }

        if (_currentCharge <= 0)
        {
            return;
        }

        if (_fuelComponent == null)
        {
            return;
        }

        float amount = _chargingTimeStep * Time.deltaTime;

        _currentCharge -= amount;

        bool canContinueCharging = _fuelComponent.Charge(amount);

        // If fuel is full then stop charging
        if (!canContinueCharging)
        {
            _playerCharging = false;

            if (GameEventsManager.OnFuelStopCharging != null)
            {
                GameEventsManager.OnFuelStopCharging();
            }
        }

        // Checks if charge station has charge
        if (_currentCharge <= 0)
        {
            Empty();
        }
    }