internal void UpdateVisuals(PowercellData data)
        {
            var charge = data.GetCharge() < 1 ? 0f : data.GetCapacity();

            float percent = charge / data.GetCapacity();

            QuickLogger.Debug($"Percent: {percent}");

            if (_batteryPercent != null)
            {
                _batteryPercent.text = ((data.GetCharge() < 0f) ? Language.main.Get("ChargerSlotEmpty") : $"{Mathf.CeilToInt(percent * 100)}%");
            }

            if (_batteryFill != null)
            {
                if (data.GetCharge() >= 0f)
                {
                    Color value = (percent >= 0.5f) ? Color.Lerp(this.colorHalf, this.colorFull, 2f * percent - 1f) : Color.Lerp(this.colorEmpty, this.colorHalf, 2f * percent);
                    _batteryFill.color      = value;
                    _batteryFill.fillAmount = percent;
                }
                else
                {
                    _batteryFill.color      = colorEmpty;
                    _batteryFill.fillAmount = 0f;
                }
            }
        }
Exemplo n.º 2
0
 internal void LoadSave(PowercellData powercellData)
 {
     if (powercellData != null)
     {
         _powercellData = powercellData;
     }
 }
Exemplo n.º 3
0
 internal void Initialize(ARSolutionsSeaBreezeController mono)
 {
     _mono          = mono;
     _powercellData = new PowercellData();
     _powercellData.Initialize(200, 200);
     StartCoroutine(UpdatePowerRelay());
 }
Exemplo n.º 4
0
        internal void UpdateVisuals(PowercellData data, int slot)
        {
            Text  text = null;
            Image bar  = null;

            var charge = data.Battery.charge < 1 ? 0f : data.Battery.charge;

            float percent = charge / data.Battery.capacity;

            QuickLogger.Debug($"P: {percent} | S: {slot}");

            switch (slot)
            {
            case 1:
                text = _s1Percent;
                bar  = _s1Fill;
                break;

            case 2:
                text = _s2Percent;
                bar  = _s2Fill;
                break;

            case 3:
                text = _s3Percent;
                bar  = _s3Fill;
                break;

            case 4:
                text = _s4Percent;
                bar  = _s4Fill;
                break;
            }

            if (text != null)
            {
                text.text = ((data.Battery.charge < 0f) ? Language.main.Get("ChargerSlotEmpty") : $"{Mathf.CeilToInt(percent * 100)}%");
            }

            if (bar != null)
            {
                if (data.Battery.charge >= 0f)
                {
                    Color value = (percent >= 0.5f) ? Color.Lerp(this._colorHalf, this._colorFull, 2f * percent - 1f) : Color.Lerp(this._colorEmpty, this._colorHalf, 2f * percent);
                    bar.color      = value;
                    bar.fillAmount = percent;
                }
                else
                {
                    bar.color      = _colorEmpty;
                    bar.fillAmount = 0f;
                }
            }
        }
        internal void LoadSave(PowercellData powercellData, bool hasBreakerTripped)
        {
            if (powercellData != null)
            {
                _powercellData = powercellData;
            }

            if (hasBreakerTripped)
            {
                TriggerPowerOff();
            }
        }
        private void BatteryContainerOnOnAddItem(InventoryItem item)
        {
            var battery  = item.item;
            var techType = battery.GetTechType();
            var id       = battery.GetComponent <PrefabIdentifier>().Id;
            var charge   = battery.GetComponent <Battery>().charge;
            var capacity = battery.GetComponent <Battery>().capacity;

            var data = new PowercellData();

            data.Initialize(battery);
            _powercellTracker.Add(data);

            UpdateCapacity();
            UpdateCharge();

            //_mono.UpdateSlots();

            UpdateDisplay();
            QuickLogger.Debug($"Added {techType}|{charge} with id {id} to the trackers", true);
        }
        internal void UpdateBatteryStatus(PowercellData data)
        {
            var charge = data.Charge < 1 ? 0f : data.Charge;

            var percent = charge / data.Capacity;

            if (_batteryFill != null)
            {
                if (data.Charge >= 0f)
                {
                    var value = (percent >= 0.5f) ? Color.Lerp(this._colorHalf, this._colorFull, 2f * percent - 1f) : Color.Lerp(this._colorEmpty, this._colorHalf, 2f * percent);
                    _batteryFill.color      = value;
                    _batteryFill.fillAmount = percent;
                }
                else
                {
                    _batteryFill.color      = _colorEmpty;
                    _batteryFill.fillAmount = 0f;
                }
            }

            _batteryPercentage.text = ((data.Charge < 0f) ? Language.main.Get("ChargerSlotEmpty") : $"{Mathf.CeilToInt(percent * 100)}%");
        }
 private void OnBatteryUpdate(PowercellData data)
 {
     UpdateBatteryStatus(data);
 }