using Content.Server.DeviceNetwork.Systems; using Content.Server.Power.Components; using Content.Shared.DeviceNetwork.Events; using Content.Shared.Power.Components; using Content.Shared.Power.EntitySystems; using Content.Shared.SensorMonitoring; namespace Content.Server.SensorMonitoring; public sealed partial class BatterySensorSystem : EntitySystem { [Dependency] private DeviceNetworkSystem _deviceNetwork = default!; [Dependency] private SharedBatterySystem _battery = default!; [SubscribeLocalEvent] private void OnSensorRequest(Entity ent, ref DeviceNetworkPacketEvent args) { var battery = Comp(ent); var currentCharge = _battery.GetCharge((ent.Owner, battery)); var netBattery = Comp(ent); var dataPayload = new BatterySensorDataPayload { Data = new BatterySensorData( currentCharge, battery.MaxCharge, netBattery.CurrentReceiving, netBattery.MaxChargeRate, netBattery.CurrentSupply, netBattery.MaxSupply), }; _deviceNetwork.SendPacket(ent.Owner, args.SenderAddress, ref dataPayload); } }