]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Dropping Corpses Devoured by Space Dragons on Gib/Butcher. (#28709)
authorLyndomen <49795619+Lyndomen@users.noreply.github.com>
Sat, 8 Jun 2024 05:49:42 +0000 (01:49 -0400)
committerGitHub <noreply@github.com>
Sat, 8 Jun 2024 05:49:42 +0000 (15:49 +1000)
* Update DevourSystem.cs

* Update DevourSystem.cs

* Update Content.Server/Devour/DevourSystem.cs

---------

Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
Content.Server/Devour/DevourSystem.cs

index febbd093a6cd7aa67316f4018cdc50d0b074526b..d9c50f260a311d87d1f6e7c98f7696cc0bc1d5eb 100644 (file)
@@ -1,3 +1,4 @@
+using Content.Server.Body.Components;
 using Content.Server.Body.Systems;
 using Content.Shared.Chemistry.Components;
 using Content.Shared.Devour;
@@ -15,6 +16,7 @@ public sealed class DevourSystem : SharedDevourSystem
         base.Initialize();
 
         SubscribeLocalEvent<DevourerComponent, DevourDoAfterEvent>(OnDoAfter);
+        SubscribeLocalEvent<DevourerComponent, BeingGibbedEvent>(OnGibContents);
     }
 
     private void OnDoAfter(EntityUid uid, DevourerComponent component, DevourDoAfterEvent args)
@@ -45,5 +47,15 @@ public sealed class DevourSystem : SharedDevourSystem
 
         _audioSystem.PlayPvs(component.SoundDevour, uid);
     }
+    
+    private void OnGibContents(EntityUid uid, DevourerComponent component, ref BeingGibbedEvent args)
+    {
+        if (!component.ShouldStoreDevoured)
+            return;
+
+        // For some reason we have two different systems that should handle gibbing,
+        // and for some another reason GibbingSystem, which should empty all containers, doesn't get involved in this process
+        ContainerSystem.EmptyContainer(component.Stomach);
+    }
 }