LightningSparkingComponent.cs 900 B

12345678910111213141516171819202122232425262728
  1. using Content.Server.Tesla.EntitySystems;
  2. using Robust.Shared.Audio;
  3. using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom;
  4. namespace Content.Server.Tesla.Components;
  5. /// <summary>
  6. /// The component changes the visual of an object after it is struck by lightning
  7. /// </summary>
  8. [RegisterComponent, Access(typeof(LightningSparkingSystem)), AutoGenerateComponentPause]
  9. public sealed partial class LightningSparkingComponent : Component
  10. {
  11. /// <summary>
  12. /// Spark duration.
  13. /// </summary>
  14. [DataField, ViewVariables(VVAccess.ReadWrite)]
  15. public float LightningTime = 4;
  16. /// <summary>
  17. /// When the spark visual should turn off.
  18. /// </summary>
  19. [DataField(customTypeSerializer: typeof(TimeOffsetSerializer))]
  20. [AutoPausedField]
  21. public TimeSpan LightningEndTime;
  22. [DataField, ViewVariables(VVAccess.ReadWrite)]
  23. public bool IsSparking;
  24. }