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; } } }
internal void LoadSave(PowercellData powercellData) { if (powercellData != null) { _powercellData = powercellData; } }
internal void Initialize(ARSolutionsSeaBreezeController mono) { _mono = mono; _powercellData = new PowercellData(); _powercellData.Initialize(200, 200); StartCoroutine(UpdatePowerRelay()); }
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); }