]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Strip Items From Things Before Biomassing Them (#28544)
authorAJCM-git <60196617+AJCM-git@users.noreply.github.com>
Mon, 3 Jun 2024 03:30:00 +0000 (23:30 -0400)
committerGitHub <noreply@github.com>
Mon, 3 Jun 2024 03:30:00 +0000 (23:30 -0400)
Content.Server/Medical/BiomassReclaimer/BiomassReclaimerSystem.cs

index f8d5139a46a8d0d993b86b92ef354d34301edf78..a6285294c94c1d7a4ad504dd55723e2c27d36f3d 100644 (file)
@@ -15,6 +15,7 @@ using Content.Shared.DoAfter;
 using Content.Shared.Humanoid;
 using Content.Shared.Interaction;
 using Content.Shared.Interaction.Events;
+using Content.Shared.Inventory;
 using Content.Shared.Jittering;
 using Content.Shared.Medical;
 using Content.Shared.Mind;
@@ -36,6 +37,7 @@ namespace Content.Server.Medical.BiomassReclaimer
     public sealed class BiomassReclaimerSystem : EntitySystem
     {
         [Dependency] private readonly IConfigurationManager _configManager = default!;
+        [Dependency] private readonly SharedTransformSystem _transform = default!;
         [Dependency] private readonly MobStateSystem _mobState = default!;
         [Dependency] private readonly SharedJitteringSystem _jitteringSystem = default!;
         [Dependency] private readonly SharedAudioSystem _sharedAudioSystem = default!;
@@ -49,6 +51,7 @@ namespace Content.Server.Medical.BiomassReclaimer
         [Dependency] private readonly IPlayerManager _playerManager = default!;
         [Dependency] private readonly MaterialStorageSystem _material = default!;
         [Dependency] private readonly SharedMindSystem _minds = default!;
+        [Dependency] private readonly InventorySystem _inventory = default!;
 
         [ValidatePrototypeId<MaterialPrototype>]
         public const string BiomassPrototype = "Biomass";
@@ -221,6 +224,12 @@ namespace Content.Server.Medical.BiomassReclaimer
 
             component.ProcessingTimer = physics.FixturesMass * component.ProcessingTimePerUnitMass;
 
+            var inventory = _inventory.GetHandOrInventoryEntities(toProcess);
+            foreach (var item in inventory)
+            {
+                _transform.DropNextTo(item, ent.Owner);
+            }
+
             QueueDel(toProcess);
         }