using Content.Server.Power.Components; using Content.Shared.Power; using Content.Shared.Power.Components; namespace Content.Server.Power.EntitySystems; public sealed class SpawnOnBatteryLevelSystem : EntitySystem { [Dependency] private readonly BatterySystem _battery = default!; public override void Initialize() { base.Initialize(); SubscribeLocalEvent(OnBatteryChargeChange); } private void OnBatteryChargeChange(Entity entity, ref ChargeChangedEvent args) { if (!TryComp(entity, out var battery)) return; if (!TryComp(entity, out TransformComponent? xform)) return; if (battery.LastCharge >= entity.Comp.Charge) { Spawn(entity.Comp.Prototype, xform.Coordinates); _battery.ChangeCharge((entity, battery), -entity.Comp.Charge); } } }