RechargeBasicEntityAmmoComponent.cs 1.1 KB

123456789101112131415161718192021222324252627282930313233
  1. using Robust.Shared.Audio;
  2. using Robust.Shared.GameStates;
  3. using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom;
  4. namespace Content.Shared.Weapons.Ranged.Components;
  5. /// <summary>
  6. /// Responsible for handling recharging a basic entity ammo provider over time.
  7. /// </summary>
  8. [RegisterComponent, NetworkedComponent, AutoGenerateComponentState, AutoGenerateComponentPause]
  9. public sealed partial class RechargeBasicEntityAmmoComponent : Component
  10. {
  11. [ViewVariables(VVAccess.ReadWrite)]
  12. [DataField("rechargeCooldown")]
  13. [AutoNetworkedField]
  14. public float RechargeCooldown = 1.5f;
  15. [DataField("rechargeSound")]
  16. [AutoNetworkedField]
  17. public SoundSpecifier? RechargeSound = new SoundPathSpecifier("/Audio/Magic/forcewall.ogg")
  18. {
  19. Params = AudioParams.Default.WithVolume(-5f)
  20. };
  21. [ViewVariables(VVAccess.ReadWrite),
  22. DataField("nextCharge", customTypeSerializer:typeof(TimeOffsetSerializer)),
  23. AutoNetworkedField]
  24. [AutoPausedField]
  25. public TimeSpan? NextCharge;
  26. [DataField, AutoNetworkedField]
  27. public bool ShowExamineText = true;
  28. }