GasOutletInjectorComponent.cs 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. using Content.Server.Atmos.Piping.Binary.Components;
  2. using Content.Server.Atmos.Piping.Unary.EntitySystems;
  3. using Content.Shared.Atmos;
  4. using Content.Shared.Guidebook;
  5. namespace Content.Server.Atmos.Piping.Unary.Components
  6. {
  7. [RegisterComponent]
  8. [Access(typeof(GasOutletInjectorSystem))]
  9. public sealed partial class GasOutletInjectorComponent : Component
  10. {
  11. [ViewVariables(VVAccess.ReadWrite)]
  12. public bool Enabled { get; set; } = true;
  13. /// <summary>
  14. /// Target volume to transfer. If <see cref="WideNet"/> is enabled, actual transfer rate will be much higher.
  15. /// </summary>
  16. [ViewVariables(VVAccess.ReadWrite)]
  17. public float TransferRate
  18. {
  19. get => _transferRate;
  20. set => _transferRate = Math.Clamp(value, 0f, MaxTransferRate);
  21. }
  22. private float _transferRate = 50;
  23. [ViewVariables(VVAccess.ReadWrite)]
  24. [DataField("maxTransferRate")]
  25. public float MaxTransferRate = Atmospherics.MaxTransferRate;
  26. [DataField("maxPressure")]
  27. [GuidebookData]
  28. public float MaxPressure { get; set; } = GasVolumePumpComponent.DefaultHigherThreshold;
  29. [DataField("inlet")]
  30. public string InletName { get; set; } = "pipe";
  31. }
  32. }