using Content.Shared.Power.Components; using Content.Shared.PowerCell.Components; namespace Content.Shared.Power; /// /// Raised when a battery's charge or capacity changes (capacity affects relative charge percentage). /// [ByRefEvent] public readonly record struct ChargeChangedEvent(float Charge, float MaxCharge); /// /// Event that supports multiple battery types. /// Raised when it is necessary to get information about battery charges. /// Works with either or . /// If there are multiple batteries then the results will be summed up. /// [ByRefEvent] public record struct GetChargeEvent { public float CurrentCharge; public float MaxCharge; } /// /// Method event that supports multiple battery types. /// Raised when it is necessary to change the current battery charge by some value. /// Works with either or . /// If there are multiple batteries then they will be changed in order of subscription until the total value was reached. /// [ByRefEvent] public record struct ChangeChargeEvent(float Amount) { /// /// The total amount of charge to change the battery's storage by (in joule). /// A positive value adds charge, a negative value removes charge. /// public readonly float Amount = Amount; /// /// The amount of charge that still has to be removed. /// For cases where there are multiple batteries. /// public float ResidualValue = Amount; }