]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Vapor logs (#16505)
authormetalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Wed, 17 May 2023 15:02:07 +0000 (01:02 +1000)
committerGitHub <noreply@github.com>
Wed, 17 May 2023 15:02:07 +0000 (01:02 +1000)
Content.Server/Chemistry/EntitySystems/VaporSystem.cs

index edbaffb5a57fa6a788ba399bfa2467deb50d121d..bd4fd29e58e926686a197485d46df987a104b123 100644 (file)
@@ -29,9 +29,12 @@ namespace Content.Server.Chemistry.EntitySystems
 
         private const float ReactTime = 0.125f;
 
+        private ISawmill _sawmill = default!;
+
         public override void Initialize()
         {
             base.Initialize();
+            _sawmill = Logger.GetSawmill("vapor");
             SubscribeLocalEvent<VaporComponent, StartCollideEvent>(HandleCollide);
         }
 
@@ -117,8 +120,17 @@ namespace Content.Server.Chemistry.EntitySystems
                 {
                     if (reagentQuantity.Quantity == FixedPoint2.Zero) continue;
                     var reagent = _protoManager.Index<ReagentPrototype>(reagentQuantity.ReagentId);
-                    _solutionContainerSystem.TryRemoveReagent(vapor.Owner, contents, reagentQuantity.ReagentId,
-                        reagent.ReactionTile(tile, (reagentQuantity.Quantity / vapor.TransferAmount) * 0.25f));
+
+                    var reaction =
+                        reagent.ReactionTile(tile, (reagentQuantity.Quantity / vapor.TransferAmount) * 0.25f);
+
+                    if (reaction > reagentQuantity.Quantity)
+                    {
+                        _sawmill.Error($"Tried to tile react more than we have for reagent {reagentQuantity.ReagentId}. Found {reaction} and we only have {reagentQuantity.Quantity}");
+                        reaction = reagentQuantity.Quantity;
+                    }
+
+                    _solutionContainerSystem.TryRemoveReagent(vapor.Owner, contents, reagentQuantity.ReagentId, reaction);
                 }
             }