]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Replace Component.OnRemove with ComponentRemove event subscriptions (#21072)
authorDrSmugleaf <DrSmugleaf@users.noreply.github.com>
Wed, 18 Oct 2023 02:35:36 +0000 (19:35 -0700)
committerGitHub <noreply@github.com>
Wed, 18 Oct 2023 02:35:36 +0000 (19:35 -0700)
Content.Server/Power/Components/ApcPowerReceiverComponent.cs
Content.Server/Power/Components/BaseNetConnectorComponent.cs
Content.Server/Power/EntitySystems/PowerNetConnectorSystem.cs
Content.Server/Power/EntitySystems/PowerNetSystem.cs
Content.Shared/Pulling/Components/PullableComponent.cs
Content.Shared/Pulling/Components/SharedPullerComponent.cs
Content.Shared/Pulling/Systems/SharedPullingStateManagementSystem.cs

index ae4d73943046c35c25699011cd28e8ed383e8ae4..b8340d0be4b1c98419697b27b2005d182d463714 100644 (file)
@@ -59,13 +59,6 @@ namespace Content.Server.Power.Components
         };
 
         public float PowerReceived => NetworkLoad.ReceivingPower;
-
-        protected override void OnRemove()
-        {
-            Provider?.RemoveReceiver(this);
-
-            base.OnRemove();
-        }
     }
 
     /// <summary>
index 551b5f3621f22b0fc7a46fde778c0f8d19c4647b..f2a1372dbc99b2c487dda7a03359f45362bc046b 100644 (file)
@@ -33,12 +33,6 @@ namespace Content.Server.Power.Components
 
         [DataField("node")] public string? NodeId { get; set; }
 
-        protected override void OnRemove()
-        {
-            ClearNet();
-            base.OnRemove();
-        }
-
         public void TryFindAndSetNet()
         {
             if (TryFindNet(out var net))
index df38c2f17a21a7e9f84ad9cdf404483a314caf33..8738f493ac75e938c77e615fa2882ed6a00e9b6c 100644 (file)
@@ -12,6 +12,21 @@ public sealed class PowerNetConnectorSystem : EntitySystem
         SubscribeLocalEvent<ApcPowerProviderComponent, ComponentInit>(OnApcPowerProviderInit);
         SubscribeLocalEvent<BatteryChargerComponent, ComponentInit>(OnBatteryChargerInit);
         SubscribeLocalEvent<BatteryDischargerComponent, ComponentInit>(OnBatteryDischargerInit);
+
+        // TODO please end my life
+        SubscribeLocalEvent<ApcComponent, ComponentRemove>(OnRemove<ApcComponent, IApcNet>);
+        SubscribeLocalEvent<ApcPowerProviderComponent, ComponentRemove>(OnRemove<ApcPowerProviderComponent, IApcNet>);
+        SubscribeLocalEvent<BatteryChargerComponent, ComponentRemove>(OnRemove<BatteryChargerComponent, IPowerNet>);
+        SubscribeLocalEvent<BatteryDischargerComponent, ComponentRemove>(OnRemove<BatteryDischargerComponent, IPowerNet>);
+        SubscribeLocalEvent<PowerConsumerComponent, ComponentRemove>(OnRemove<PowerConsumerComponent, IBasePowerNet>);
+        SubscribeLocalEvent<PowerSupplierComponent, ComponentRemove>(OnRemove<PowerSupplierComponent, IBasePowerNet>);
+    }
+
+    private void OnRemove<TComp, TNet>(EntityUid uid, TComp component, ComponentRemove args)
+        where TComp : BaseNetConnectorComponent<TNet>
+        where TNet : class
+    {
+        component.ClearNet();
     }
 
     private void OnPowerSupplierInit(EntityUid uid, PowerSupplierComponent component, ComponentInit args)
index a3aa1caee2ebc86f1a2f8281bc8baa6107355da2..425f4637afff49926772b8154df76814029b3a92 100644 (file)
@@ -3,8 +3,8 @@ using Content.Server.NodeContainer.EntitySystems;
 using Content.Server.Power.Components;
 using Content.Server.Power.NodeGroups;
 using Content.Server.Power.Pow3r;
-using JetBrains.Annotations;
 using Content.Shared.Power;
+using JetBrains.Annotations;
 using Robust.Server.GameObjects;
 using Robust.Shared.Threading;
 
@@ -34,6 +34,7 @@ namespace Content.Server.Power.EntitySystems
 
             SubscribeLocalEvent<ApcPowerReceiverComponent, ComponentInit>(ApcPowerReceiverInit);
             SubscribeLocalEvent<ApcPowerReceiverComponent, ComponentShutdown>(ApcPowerReceiverShutdown);
+            SubscribeLocalEvent<ApcPowerReceiverComponent, ComponentRemove>(ApcPowerReceiverRemove);
             SubscribeLocalEvent<ApcPowerReceiverComponent, EntityPausedEvent>(ApcPowerReceiverPaused);
             SubscribeLocalEvent<ApcPowerReceiverComponent, EntityUnpausedEvent>(ApcPowerReceiverUnpaused);
 
@@ -64,6 +65,11 @@ namespace Content.Server.Power.EntitySystems
             _powerState.Loads.Free(component.NetworkLoad.Id);
         }
 
+        private void ApcPowerReceiverRemove(EntityUid uid, ApcPowerReceiverComponent component, ComponentRemove args)
+        {
+            component.Provider?.RemoveReceiver(component);
+        }
+
         private static void ApcPowerReceiverPaused(
             EntityUid uid,
             ApcPowerReceiverComponent component,
index 51ab2c91e49cf1b7013e8e1ce061421642cbd561..30222c481be7f4b7d51a6a5b1e0acac2cd524597 100644 (file)
@@ -1,6 +1,5 @@
 using Robust.Shared.GameStates;
 using Robust.Shared.Map;
-using Robust.Shared.Physics.Dynamics.Joints;
 using Robust.Shared.Serialization;
 
 namespace Content.Shared.Pulling.Components
@@ -39,16 +38,6 @@ namespace Content.Shared.Pulling.Components
         [Access(typeof(SharedPullingSystem), Other = AccessPermissions.ReadExecute)]
         [ViewVariables]
         public bool PrevFixedRotation;
-
-        protected override void OnRemove()
-        {
-            if (Puller != null)
-            {
-                // This is absolute paranoia but it's also absolutely necessary. Too many puller state bugs. - 20kdc
-                Logger.ErrorS("c.go.c.pulling", "PULLING STATE CORRUPTION IMMINENT IN PULLABLE {0} - OnRemove called when Puller is set!", Owner);
-            }
-            base.OnRemove();
-        }
     }
 
     [Serializable, NetSerializable]
index 4ee8b3d129bfba041eb4c4f71e116c0179a64982..c21e8a76de26fcdd3b52de0e7934f0ca9370c21b 100644 (file)
         /// </summary>
         [DataField("needsHands")]
         public bool NeedsHands = true;
-
-        protected override void OnRemove()
-        {
-            if (Pulling != default)
-            {
-                // This is absolute paranoia but it's also absolutely necessary. Too many puller state bugs. - 20kdc
-                Logger.ErrorS("c.go.c.pulling", "PULLING STATE CORRUPTION IMMINENT IN PULLER {0} - OnRemove called when Pulling is set!", Owner);
-            }
-            base.OnRemove();
-        }
     }
 }
index 63f6d648678990064335f7f34a252ceea34c4eca..974859a6209cace1e21bd756f85eb989539d9e25 100644 (file)
@@ -1,4 +1,3 @@
-using System.Linq;
 using Content.Shared.Physics.Pull;
 using Content.Shared.Pulling.Components;
 using JetBrains.Annotations;