using Content.Shared.Construction.Prototypes; using Content.Shared.Power; using Content.Shared.Whitelist; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; namespace Content.Server.Power.Components { [RegisterComponent] public sealed class ChargerComponent : Component { [ViewVariables] public CellChargerStatus Status; /// /// The charge rate of the charger, in watts /// [DataField("chargeRate")] public float ChargeRate = 20.0f; /// /// The charge rate with no machine upgrades /// [DataField("baseChargeRate")] public float BaseChargeRate = 20.0f; /// /// The machine part that affects the charge rate multiplier of the charger /// [DataField("machinePartChargeRateModifier", customTypeSerializer: typeof(PrototypeIdSerializer))] public string MachinePartChargeRateModifier = "Capacitor"; /// /// A value used to scale the charge rate multiplier /// with the corresponding part rating. /// [DataField("partRatingChargeRateModifier")] public float PartRatingChargeRateModifier = 1.5f; /// /// The container ID that is holds the entities being charged. /// [DataField("slotId", required: true)] public string SlotId = string.Empty; /// /// A whitelist for what entities can be charged by this Charger. /// [DataField("whitelist")] public EntityWhitelist? Whitelist; } }