using System; using AsteroidGame.Entities; using UnityEngine; namespace AsteroidGame.Handlers { public class PowerHandler : HandlerBase { [Header("State")] [SerializeField] private int _powerConsumption; [SerializeField] private int _powerCapacity; [SerializeField] private float _powerFactor; [Header("Connections")] [SerializeField] private SStructureBaseRuntimeSet _activeStructures; private void Update() { _powerConsumption = 0; _powerCapacity = 0; foreach (var structure in _activeStructures._list) { if (structure.IsConsumer) { _powerConsumption += structure.GetMaxPower(); } if (structure.IsGenerator) { _powerCapacity += structure.GetMaxPower(); } } if (_powerCapacity > 0) { _powerFactor = (float)_powerConsumption / _powerCapacity; } else { _powerFactor = 0; } } public int GetMaxPower() { throw new NotImplementedException(); } public int GetCurrentPower() { throw new NotImplementedException(); } public float GetPowerFactor() { throw new NotImplementedException(); } } }