FultonComponent.cs 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. using Content.Shared.Whitelist;
  2. using Robust.Shared.Audio;
  3. using Robust.Shared.GameStates;
  4. namespace Content.Shared.Salvage.Fulton;
  5. /// <summary>
  6. /// Applies <see cref="FultonedComponent"/> to the target so they teleport to <see cref="FultonBeaconComponent"/> after a time.
  7. /// </summary>
  8. [RegisterComponent, NetworkedComponent, AutoGenerateComponentState]
  9. public sealed partial class FultonComponent : Component
  10. {
  11. /// <summary>
  12. /// How long it takes to apply the fulton to an entity.
  13. /// </summary>
  14. [ViewVariables(VVAccess.ReadWrite), DataField("applyDuration"), AutoNetworkedField]
  15. public TimeSpan ApplyFultonDuration = TimeSpan.FromSeconds(3);
  16. /// <summary>
  17. /// Linked fulton beacon.
  18. /// </summary>
  19. [ViewVariables(VVAccess.ReadWrite), DataField("beacon"), AutoNetworkedField]
  20. public EntityUid? Beacon;
  21. /// <summary>
  22. /// Applies Removeable to the <see cref="FultonedComponent"/>.
  23. /// </summary>
  24. [ViewVariables(VVAccess.ReadWrite), DataField("removeable"), AutoNetworkedField]
  25. public bool Removeable = true;
  26. /// <summary>
  27. /// How long the fulton will remain before teleporting to the beacon.
  28. /// </summary>
  29. [ViewVariables(VVAccess.ReadWrite), DataField("duration")]
  30. public TimeSpan FultonDuration = TimeSpan.FromSeconds(45);
  31. [ViewVariables(VVAccess.ReadWrite), DataField("whitelist"), AutoNetworkedField]
  32. public EntityWhitelist? Whitelist = new()
  33. {
  34. Components = new[]
  35. {
  36. "Item",
  37. "Anchorable"
  38. }
  39. };
  40. /// <summary>
  41. /// Sound that gets played when fulton is applied.
  42. /// </summary>
  43. /// <returns></returns>
  44. [ViewVariables(VVAccess.ReadWrite), DataField("soundFulton"), AutoNetworkedField]
  45. public SoundSpecifier? FultonSound = new SoundPathSpecifier("/Audio/Items/Mining/fultext_deploy.ogg");
  46. }