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