]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Add pressure limit to gas tanks (#19879)
authorErrant <35878406+Errant-4@users.noreply.github.com>
Thu, 7 Sep 2023 05:37:23 +0000 (07:37 +0200)
committerGitHub <noreply@github.com>
Thu, 7 Sep 2023 05:37:23 +0000 (21:37 -0800)
Content.Server/Atmos/Components/GasTankComponent.cs
Content.Server/Atmos/EntitySystems/GasTankSystem.cs

index 82e6483ae40bb2fceaf0f1bbecf5889fd6242cb4..5815fba489536cdaa2cc80062106ccbd307f0ad4 100644 (file)
@@ -47,6 +47,12 @@ namespace Content.Server.Atmos.Components
         [DataField("outputPressure"), ViewVariables(VVAccess.ReadWrite)]
         public float OutputPressure = DefaultOutputPressure;
 
+        /// <summary>
+        ///     The maximum allowed output pressure.
+        /// </summary>
+        [DataField("maxOutputPressure"), ViewVariables(VVAccess.ReadWrite)]
+        public float MaxOutputPressure = 3 * DefaultOutputPressure;
+
         /// <summary>
         ///     Tank is connected to internals.
         /// </summary>
index eea5e6cf53a4feaaca441fea0443ecb0adfedd38..cdd174ce18a0fb14355263d4ca41f9fa91f3bd7e 100644 (file)
@@ -69,7 +69,11 @@ namespace Content.Server.Atmos.EntitySystems
 
         private void OnGasTankSetPressure(EntityUid uid, GasTankComponent component, GasTankSetPressureMessage args)
         {
-            component.OutputPressure = args.Pressure;
+            var pressure = Math.Min(args.Pressure, component.MaxOutputPressure);
+
+            component.OutputPressure = pressure;
+
+            UpdateUserInterface(component, true);
         }
 
         public void UpdateUserInterface(GasTankComponent component, bool initialUpdate = false)