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;
}