Replace Component.OnRemove with ComponentRemove event subscriptions (#21072)
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user