2022-03-28 15:02:57 +11:00
|
|
|
using Content.Server.Light.EntitySystems;
|
2021-07-04 18:11:52 +02:00
|
|
|
using Content.Shared.Light.Component;
|
2020-08-22 12:06:29 +02:00
|
|
|
|
2021-06-09 22:19:39 +02:00
|
|
|
namespace Content.Server.Light.Components
|
2020-08-22 12:06:29 +02:00
|
|
|
{
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Component that represents an emergency light, it has an internal battery that charges when the power is on.
|
|
|
|
|
/// </summary>
|
2022-06-07 15:26:28 +02:00
|
|
|
[RegisterComponent, Access(typeof(EmergencyLightSystem))]
|
2022-03-28 15:02:57 +11:00
|
|
|
public sealed class EmergencyLightComponent : SharedEmergencyLightComponent
|
2020-08-22 12:06:29 +02:00
|
|
|
{
|
|
|
|
|
[ViewVariables]
|
2022-03-28 15:02:57 +11:00
|
|
|
public EmergencyLightState State;
|
2020-08-22 12:06:29 +02:00
|
|
|
|
|
|
|
|
[ViewVariables(VVAccess.ReadWrite)]
|
2021-03-05 01:08:38 +01:00
|
|
|
[DataField("wattage")]
|
2022-03-28 15:02:57 +11:00
|
|
|
public float Wattage = 5;
|
|
|
|
|
|
2020-08-22 12:06:29 +02:00
|
|
|
[ViewVariables(VVAccess.ReadWrite)]
|
2021-03-05 01:08:38 +01:00
|
|
|
[DataField("chargingWattage")]
|
2022-03-28 15:02:57 +11:00
|
|
|
public float ChargingWattage = 60;
|
|
|
|
|
|
2020-08-22 12:06:29 +02:00
|
|
|
[ViewVariables(VVAccess.ReadWrite)]
|
2021-03-05 01:08:38 +01:00
|
|
|
[DataField("chargingEfficiency")]
|
2022-03-28 15:02:57 +11:00
|
|
|
public float ChargingEfficiency = 0.85f;
|
2020-08-22 12:06:29 +02:00
|
|
|
|
2020-11-27 11:00:49 +01:00
|
|
|
public Dictionary<EmergencyLightState, string> BatteryStateText = new()
|
2020-08-22 12:06:29 +02:00
|
|
|
{
|
2021-06-21 02:13:54 +02:00
|
|
|
{ EmergencyLightState.Full, "emergency-light-component-light-state-full" },
|
|
|
|
|
{ EmergencyLightState.Empty, "emergency-light-component-light-state-empty" },
|
|
|
|
|
{ EmergencyLightState.Charging, "emergency-light-component-light-state-charging" },
|
|
|
|
|
{ EmergencyLightState.On, "emergency-light-component-light-state-on" }
|
2020-08-22 12:06:29 +02:00
|
|
|
};
|
|
|
|
|
}
|
2020-10-11 22:11:18 +11:00
|
|
|
|
2022-03-28 15:02:57 +11:00
|
|
|
public enum EmergencyLightState : byte
|
|
|
|
|
{
|
|
|
|
|
Charging,
|
|
|
|
|
Full,
|
|
|
|
|
Empty,
|
|
|
|
|
On
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public sealed class EmergencyLightEvent : EntityEventArgs
|
2020-10-11 22:11:18 +11:00
|
|
|
{
|
|
|
|
|
public EmergencyLightComponent Component { get; }
|
2020-10-11 13:51:42 +02:00
|
|
|
|
2022-03-28 15:02:57 +11:00
|
|
|
public EmergencyLightState State { get; }
|
2020-10-11 22:11:18 +11:00
|
|
|
|
2022-03-28 15:02:57 +11:00
|
|
|
public EmergencyLightEvent(EmergencyLightComponent component, EmergencyLightState state)
|
2020-10-11 22:11:18 +11:00
|
|
|
{
|
|
|
|
|
Component = component;
|
|
|
|
|
State = state;
|
|
|
|
|
}
|
|
|
|
|
}
|
2020-08-22 12:06:29 +02:00
|
|
|
}
|