FultonedComponent.cs 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. using Robust.Shared.Audio;
  2. using Robust.Shared.GameStates;
  3. using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom;
  4. namespace Content.Shared.Salvage.Fulton;
  5. /// <summary>
  6. /// Marks an entity as pending being fultoned.
  7. /// </summary>
  8. [RegisterComponent, NetworkedComponent, AutoGenerateComponentState(true), AutoGenerateComponentPause]
  9. public sealed partial class FultonedComponent : Component
  10. {
  11. /// <summary>
  12. /// Effect entity to delete upon removing the component. Only matters clientside.
  13. /// </summary>
  14. [ViewVariables, DataField("effect"), AutoNetworkedField]
  15. public EntityUid Effect { get; set; }
  16. [ViewVariables(VVAccess.ReadWrite), DataField("beacon")]
  17. public EntityUid? Beacon;
  18. [ViewVariables(VVAccess.ReadWrite), DataField("fultonDuration"), AutoNetworkedField]
  19. public TimeSpan FultonDuration = TimeSpan.FromSeconds(45);
  20. /// <summary>
  21. /// When the fulton is travelling to the beacon.
  22. /// </summary>
  23. [ViewVariables(VVAccess.ReadWrite), DataField("nextFulton", customTypeSerializer:typeof(TimeOffsetSerializer)), AutoNetworkedField]
  24. [AutoPausedField]
  25. public TimeSpan NextFulton;
  26. [ViewVariables(VVAccess.ReadWrite), DataField("sound"), AutoNetworkedField]
  27. public SoundSpecifier? Sound = new SoundPathSpecifier("/Audio/Items/Mining/fultext_launch.ogg");
  28. // Mainly for admemes.
  29. /// <summary>
  30. /// Can the fulton be removed.
  31. /// </summary>
  32. [ViewVariables(VVAccess.ReadWrite), DataField("removeable")]
  33. public bool Removeable = true;
  34. }