]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Fake Mindshield Implant cleans itself up on draw (#34718)
authorZachary Higgs <compgeek223@gmail.com>
Thu, 30 Jan 2025 19:14:53 +0000 (15:14 -0400)
committerGitHub <noreply@github.com>
Thu, 30 Jan 2025 19:14:53 +0000 (20:14 +0100)
* Implant cleans itself up on draw

- add an event to relay to an implant that it's being drawn,
to tell it to clean itself up

- Give Fake mindshield a cleanup method, to remove the component added
fixing a problem where the icon persists after implant draw

* Remove extra whitespace

* CR Switch to using ContainerRemovedMessage

Content.Shared/Mindshield/FakeMindShield/SharedFakeMindShieldImplantSystem.cs

index 8887025e3ae3da3dda39e6b8ff515bc6a6a05d10..cb48ef6997f374606e84acb08f45ed9be15f1193 100644 (file)
@@ -2,6 +2,7 @@
 using Content.Shared.Implants;
 using Content.Shared.Implants.Components;
 using Content.Shared.Mindshield.Components;
+using Robust.Shared.Containers;
 
 namespace Content.Shared.Mindshield.FakeMindShield;
 
@@ -13,7 +14,9 @@ public sealed class SharedFakeMindShieldImplantSystem : EntitySystem
         base.Initialize();
         SubscribeLocalEvent<SubdermalImplantComponent, FakeMindShieldToggleEvent>(OnFakeMindShieldToggle);
         SubscribeLocalEvent<FakeMindShieldImplantComponent, ImplantImplantedEvent>(ImplantCheck);
+        SubscribeLocalEvent<FakeMindShieldImplantComponent, EntGotRemovedFromContainerMessage>(ImplantDraw);
     }
+
     /// <summary>
     /// Raise the Action of a Implanted user toggling their implant to the FakeMindshieldComponent on their entity
     /// </summary>
@@ -33,4 +36,9 @@ public sealed class SharedFakeMindShieldImplantSystem : EntitySystem
         if (ev.Implanted != null)
             EnsureComp<FakeMindShieldComponent>(ev.Implanted.Value);
     }
+
+    private void ImplantDraw(Entity<FakeMindShieldImplantComponent> ent, ref EntGotRemovedFromContainerMessage ev)
+    {
+        RemComp<FakeMindShieldComponent>(ev.Container.Owner);
+    }
 }