SharedExpendableLightComponent.cs 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. using Robust.Shared.Audio;
  2. using Robust.Shared.GameStates;
  3. using Robust.Shared.Serialization;
  4. namespace Content.Shared.Light.Components;
  5. [NetworkedComponent]
  6. public abstract partial class SharedExpendableLightComponent : Component
  7. {
  8. [ViewVariables(VVAccess.ReadOnly)]
  9. public ExpendableLightState CurrentState { get; set; }
  10. [DataField("turnOnBehaviourID")]
  11. public string TurnOnBehaviourID { get; set; } = string.Empty;
  12. [DataField("fadeOutBehaviourID")]
  13. public string FadeOutBehaviourID { get; set; } = string.Empty;
  14. [DataField("glowDuration")]
  15. public float GlowDuration { get; set; } = 60 * 15f;
  16. [DataField("fadeOutDuration")]
  17. public float FadeOutDuration { get; set; } = 60 * 5f;
  18. [DataField("spentDesc")]
  19. public string SpentDesc { get; set; } = string.Empty;
  20. [DataField("spentName")]
  21. public string SpentName { get; set; } = string.Empty;
  22. [DataField("litSound")]
  23. public SoundSpecifier? LitSound { get; set; }
  24. [DataField("loopedSound")]
  25. public SoundSpecifier? LoopedSound { get; set; }
  26. [DataField("dieSound")]
  27. public SoundSpecifier? DieSound { get; set; } = null;
  28. }
  29. [Serializable, NetSerializable]
  30. public enum ExpendableLightVisuals
  31. {
  32. State,
  33. Behavior
  34. }
  35. [Serializable, NetSerializable]
  36. public enum ExpendableLightState
  37. {
  38. BrandNew,
  39. Lit,
  40. Fading,
  41. Dead
  42. }