diff --git a/Content.Server/GameObjects/Components/NodeContainer/NodeContainerComponent.cs b/Content.Server/GameObjects/Components/NodeContainer/NodeContainerComponent.cs index adf31160cf..4915b51958 100644 --- a/Content.Server/GameObjects/Components/NodeContainer/NodeContainerComponent.cs +++ b/Content.Server/GameObjects/Components/NodeContainer/NodeContainerComponent.cs @@ -1,3 +1,4 @@ +#nullable enable using System.Collections.Generic; using Content.Server.GameObjects.Components.NodeContainer.NodeGroups; using Content.Server.GameObjects.Components.NodeContainer.Nodes; @@ -50,7 +51,7 @@ namespace Content.Server.GameObjects.Components.NodeContainer } } - public override void HandleMessage(ComponentMessage message, IComponent component) + public override void HandleMessage(ComponentMessage message, IComponent? component) { base.HandleMessage(message, component); switch (message) diff --git a/Content.Server/GameObjects/Components/NodeContainer/NodeGroups/AMENodeGroup.cs b/Content.Server/GameObjects/Components/NodeContainer/NodeGroups/AMENodeGroup.cs index 7e7edea5e6..113463ca47 100644 --- a/Content.Server/GameObjects/Components/NodeContainer/NodeGroups/AMENodeGroup.cs +++ b/Content.Server/GameObjects/Components/NodeContainer/NodeGroups/AMENodeGroup.cs @@ -1,4 +1,5 @@ -using System; +#nullable enable +using System; using System.Collections.Generic; using System.Linq; using Content.Server.Explosions; @@ -24,12 +25,12 @@ namespace Content.Server.GameObjects.Components.NodeContainer.NodeGroups /// since any part connected to the node group can easily find the master. /// [ViewVariables] - private AMEControllerComponent _masterController; + private AMEControllerComponent? _masterController; [Dependency] private readonly IRobustRandom _random = default!; - public AMEControllerComponent MasterController => _masterController; + public AMEControllerComponent? MasterController => _masterController; private readonly List _cores = new(); @@ -52,20 +53,18 @@ namespace Content.Server.GameObjects.Components.NodeContainer.NodeGroups if (_masterController != null && _masterController?.Owner == node.Owner) { _masterController = null; } } - public void RefreshAMENodes(AMEControllerComponent controller) + public void RefreshAMENodes(AMEControllerComponent? controller) { if(_masterController == null && controller != null) { _masterController = controller; } - if (_cores != null) { - foreach (AMEShieldComponent core in _cores) - { - core.UnsetCore(); - } - _cores.Clear(); + foreach (AMEShieldComponent core in _cores) + { + core.UnsetCore(); } + _cores.Clear(); //Check each shield node to see if it meets core criteria foreach (Node node in Nodes) @@ -79,11 +78,12 @@ namespace Content.Server.GameObjects.Components.NodeContainer.NodeGroups .Select(entity => entity.TryGetComponent(out var adjshield) ? adjshield : null) .Where(adjshield => adjshield != null); - if (nodeNeighbors.Count() >= 8) { _cores.Add(shield); } + if (nodeNeighbors.Count() >= 8) + { + _cores.Add(shield); + } } - if (_cores == null) { return; } - foreach (AMEShieldComponent core in _cores) { core.SetCore(); diff --git a/Content.Server/GameObjects/Components/NodeContainer/NodeGroups/INodeGroupManager.cs b/Content.Server/GameObjects/Components/NodeContainer/NodeGroups/INodeGroupManager.cs index 203d65e98f..186c2d5cc9 100644 --- a/Content.Server/GameObjects/Components/NodeContainer/NodeGroups/INodeGroupManager.cs +++ b/Content.Server/GameObjects/Components/NodeContainer/NodeGroups/INodeGroupManager.cs @@ -1,4 +1,5 @@ -using System.Collections.Generic; +#nullable enable +using System.Collections.Generic; namespace Content.Server.GameObjects.Components.NodeContainer.NodeGroups { diff --git a/Content.Server/GameObjects/Components/NodeContainer/NodeGroups/NodeGroupAttribute.cs b/Content.Server/GameObjects/Components/NodeContainer/NodeGroups/NodeGroupAttribute.cs index 5f47956656..6fd7ae37c6 100644 --- a/Content.Server/GameObjects/Components/NodeContainer/NodeGroups/NodeGroupAttribute.cs +++ b/Content.Server/GameObjects/Components/NodeContainer/NodeGroups/NodeGroupAttribute.cs @@ -1,4 +1,5 @@ -using System; +#nullable enable +using System; namespace Content.Server.GameObjects.Components.NodeContainer.NodeGroups { diff --git a/Content.Server/GameObjects/Components/NodeContainer/NodeGroups/NodeGroupFactory.cs b/Content.Server/GameObjects/Components/NodeContainer/NodeGroups/NodeGroupFactory.cs index 8f1aba5b74..f39d08a1cf 100644 --- a/Content.Server/GameObjects/Components/NodeContainer/NodeGroups/NodeGroupFactory.cs +++ b/Content.Server/GameObjects/Components/NodeContainer/NodeGroups/NodeGroupFactory.cs @@ -1,4 +1,5 @@ -using System; +#nullable enable + using System; using System.Collections.Generic; using System.Reflection; using Content.Server.GameObjects.Components.NodeContainer.Nodes; diff --git a/Content.Server/GameObjects/Components/Power/ApcNetComponents/PowerReceiverUsers/EmergencyLightComponent.cs b/Content.Server/GameObjects/Components/Power/ApcNetComponents/PowerReceiverUsers/EmergencyLightComponent.cs index bf3044366b..55684c95a7 100644 --- a/Content.Server/GameObjects/Components/Power/ApcNetComponents/PowerReceiverUsers/EmergencyLightComponent.cs +++ b/Content.Server/GameObjects/Components/Power/ApcNetComponents/PowerReceiverUsers/EmergencyLightComponent.cs @@ -1,3 +1,4 @@ +#nullable enable using System; using System.Collections.Generic; using Content.Shared.GameObjects.EntitySystems; @@ -63,7 +64,7 @@ namespace Content.Server.GameObjects.Components.Power.ApcNetComponents.PowerRece /// public void UpdateState() { - if (!Owner.TryGetComponent(out PowerReceiverComponent receiver)) + if (!Owner.TryGetComponent(out PowerReceiverComponent? receiver)) { return; } @@ -83,7 +84,7 @@ namespace Content.Server.GameObjects.Components.Power.ApcNetComponents.PowerRece public void OnUpdate(float frameTime) { - if (Owner.Deleted || !Owner.TryGetComponent(out BatteryComponent battery)) + if (Owner.Deleted || !Owner.TryGetComponent(out BatteryComponent? battery)) { return; } @@ -101,7 +102,7 @@ namespace Content.Server.GameObjects.Components.Power.ApcNetComponents.PowerRece battery.CurrentCharge += _chargingWattage * frameTime * _chargingEfficiency; if (battery.BatteryState == BatteryState.Full) { - if (Owner.TryGetComponent(out PowerReceiverComponent receiver)) + if (Owner.TryGetComponent(out PowerReceiverComponent? receiver)) { receiver.Load = 1; } @@ -113,12 +114,12 @@ namespace Content.Server.GameObjects.Components.Power.ApcNetComponents.PowerRece private void TurnOff() { - if (Owner.TryGetComponent(out SpriteComponent sprite)) + if (Owner.TryGetComponent(out SpriteComponent? sprite)) { sprite.LayerSetState(0, "emergency_light_off"); } - if (Owner.TryGetComponent(out PointLightComponent light)) + if (Owner.TryGetComponent(out PointLightComponent? light)) { light.Enabled = false; } @@ -126,18 +127,18 @@ namespace Content.Server.GameObjects.Components.Power.ApcNetComponents.PowerRece private void TurnOn() { - if (Owner.TryGetComponent(out SpriteComponent sprite)) + if (Owner.TryGetComponent(out SpriteComponent? sprite)) { sprite.LayerSetState(0, "emergency_light_on"); } - if (Owner.TryGetComponent(out PointLightComponent light)) + if (Owner.TryGetComponent(out PointLightComponent? light)) { light.Enabled = true; } } - public override void HandleMessage(ComponentMessage message, IComponent component) + public override void HandleMessage(ComponentMessage message, IComponent? component) { base.HandleMessage(message, component); switch (message) diff --git a/Content.Server/GameObjects/Components/Power/ApcNetComponents/PowerReceiverUsers/LightBulbComponent.cs b/Content.Server/GameObjects/Components/Power/ApcNetComponents/PowerReceiverUsers/LightBulbComponent.cs index b7d72b392b..fe254ae026 100644 --- a/Content.Server/GameObjects/Components/Power/ApcNetComponents/PowerReceiverUsers/LightBulbComponent.cs +++ b/Content.Server/GameObjects/Components/Power/ApcNetComponents/PowerReceiverUsers/LightBulbComponent.cs @@ -1,3 +1,4 @@ +#nullable enable using System; using Content.Shared.Audio; using Content.Shared.GameObjects.EntitySystems; @@ -41,8 +42,8 @@ namespace Content.Server.GameObjects.Components.Power.ApcNetComponents.PowerRece /// /// Invoked whenever the state of the light bulb changes. /// - public event EventHandler OnLightBulbStateChange; - public event EventHandler OnLightColorChange; + public event EventHandler? OnLightBulbStateChange; + public event EventHandler? OnLightColorChange; private Color _color = Color.White; @@ -106,7 +107,7 @@ namespace Content.Server.GameObjects.Components.Power.ApcNetComponents.PowerRece public void UpdateColor() { - if (!Owner.TryGetComponent(out SpriteComponent sprite)) + if (!Owner.TryGetComponent(out SpriteComponent? sprite)) { return; } diff --git a/Content.Server/GameObjects/Components/Power/ApcNetComponents/PowerReceiverUsers/PowerCellChargerComponent.cs b/Content.Server/GameObjects/Components/Power/ApcNetComponents/PowerReceiverUsers/PowerCellChargerComponent.cs index 8c71ff18c0..ad205fac64 100644 --- a/Content.Server/GameObjects/Components/Power/ApcNetComponents/PowerReceiverUsers/PowerCellChargerComponent.cs +++ b/Content.Server/GameObjects/Components/Power/ApcNetComponents/PowerReceiverUsers/PowerCellChargerComponent.cs @@ -1,4 +1,5 @@ -using Content.Shared.Interfaces.GameObjects.Components; +#nullable enable +using Content.Shared.Interfaces.GameObjects.Components; using Robust.Shared.GameObjects; using Robust.Shared.Interfaces.GameObjects; diff --git a/Content.Server/GameObjects/Components/Power/ApcNetComponents/PowerReceiverUsers/PoweredLightComponent.cs b/Content.Server/GameObjects/Components/Power/ApcNetComponents/PowerReceiverUsers/PoweredLightComponent.cs index 48f167d4fa..cda8f1b7cd 100644 --- a/Content.Server/GameObjects/Components/Power/ApcNetComponents/PowerReceiverUsers/PoweredLightComponent.cs +++ b/Content.Server/GameObjects/Components/Power/ApcNetComponents/PowerReceiverUsers/PoweredLightComponent.cs @@ -1,3 +1,4 @@ +#nullable enable using System; using System.Threading.Tasks; using Content.Server.GameObjects.Components.GUI; @@ -41,16 +42,16 @@ namespace Content.Server.GameObjects.Components.Power.ApcNetComponents.PowerRece [ViewVariables] private bool _on; private LightBulbType BulbType = LightBulbType.Tube; - [ViewVariables] private ContainerSlot _lightBulbContainer; + [ViewVariables] private ContainerSlot _lightBulbContainer = default!; [ViewVariables] - private LightBulbComponent LightBulb + private LightBulbComponent? LightBulb { get { if (_lightBulbContainer.ContainedEntity == null) return null; - _lightBulbContainer.ContainedEntity.TryGetComponent(out LightBulbComponent bulb); + _lightBulbContainer.ContainedEntity.TryGetComponent(out LightBulbComponent? bulb); return bulb; } @@ -65,12 +66,12 @@ namespace Content.Server.GameObjects.Components.Power.ApcNetComponents.PowerRece public bool InteractHand(InteractHandEventArgs eventArgs) { - if (!eventArgs.User.TryGetComponent(out IDamageableComponent damageableComponent)) + if (!eventArgs.User.TryGetComponent(out IDamageableComponent? damageableComponent)) { Eject(); return false; } - if(eventArgs.User.TryGetComponent(out HeatResistanceComponent heatResistanceComponent)) + if(eventArgs.User.TryGetComponent(out HeatResistanceComponent? heatResistanceComponent)) { if(CanBurn(heatResistanceComponent.GetHeatResistance())) { @@ -83,6 +84,9 @@ namespace Content.Server.GameObjects.Components.Power.ApcNetComponents.PowerRece bool CanBurn(int heatResistance) { + if (LightBulb == null) + return false; + return _lightState && heatResistance < LightBulb.BurningTemperature; } @@ -108,7 +112,7 @@ namespace Content.Server.GameObjects.Components.Power.ApcNetComponents.PowerRece private bool InsertBulb(IEntity bulb) { if (LightBulb != null) return false; - if (!bulb.TryGetComponent(out LightBulbComponent lightBulb)) return false; + if (!bulb.TryGetComponent(out LightBulbComponent? lightBulb)) return false; if (lightBulb.Type != BulbType) return false; var inserted = _lightBulbContainer.Insert(bulb); @@ -135,7 +139,7 @@ namespace Content.Server.GameObjects.Components.Power.ApcNetComponents.PowerRece if (!_lightBulbContainer.Remove(bulb.Owner)) return; - if (!user.TryGetComponent(out HandsComponent hands) + if (!user.TryGetComponent(out HandsComponent? hands) || !hands.PutInHand(bulb.Owner.GetComponent())) bulb.Owner.Transform.Coordinates = user.Transform.Coordinates; } @@ -149,7 +153,7 @@ namespace Content.Server.GameObjects.Components.Power.ApcNetComponents.PowerRece /// /// For attaching UpdateLight() to events. /// - public void UpdateLight(object sender, EventArgs e) + public void UpdateLight(object? sender, EventArgs? e) { UpdateLight(); } @@ -212,7 +216,7 @@ namespace Content.Server.GameObjects.Components.Power.ApcNetComponents.PowerRece _lightBulbContainer = ContainerManagerComponent.Ensure("light_bulb", Owner); } - public override void HandleMessage(ComponentMessage message, IComponent component) + public override void HandleMessage(ComponentMessage message, IComponent? component) { base.HandleMessage(message, component); switch (message) diff --git a/Content.Server/GameObjects/Components/Power/ApcNetComponents/PowerReceiverUsers/WeaponCapacitorChargerComponent.cs b/Content.Server/GameObjects/Components/Power/ApcNetComponents/PowerReceiverUsers/WeaponCapacitorChargerComponent.cs index e54cf3578f..5d03d47973 100644 --- a/Content.Server/GameObjects/Components/Power/ApcNetComponents/PowerReceiverUsers/WeaponCapacitorChargerComponent.cs +++ b/Content.Server/GameObjects/Components/Power/ApcNetComponents/PowerReceiverUsers/WeaponCapacitorChargerComponent.cs @@ -1,4 +1,5 @@ -using Content.Server.GameObjects.Components.Weapon.Ranged.Barrels; +#nullable enable +using Content.Server.GameObjects.Components.Weapon.Ranged.Barrels; using Content.Shared.Interfaces.GameObjects.Components; using Robust.Shared.GameObjects; using Robust.Shared.Interfaces.GameObjects; diff --git a/Content.Server/GameObjects/Components/Power/BaseNetConnectorComponent.cs b/Content.Server/GameObjects/Components/Power/BaseNetConnectorComponent.cs index 66ac85b62d..44a5310c98 100644 --- a/Content.Server/GameObjects/Components/Power/BaseNetConnectorComponent.cs +++ b/Content.Server/GameObjects/Components/Power/BaseNetConnectorComponent.cs @@ -1,3 +1,5 @@ +#nullable enable +using System.Diagnostics.CodeAnalysis; using System.Linq; using Content.Server.GameObjects.Components.NodeContainer; using Content.Server.GameObjects.Components.NodeContainer.NodeGroups; @@ -15,7 +17,7 @@ namespace Content.Server.GameObjects.Components.Power [ViewVariables] public TNetType Net { get => _net; set => SetNet(value); } - private TNetType _net; + private TNetType _net = default!; //set in OnAdd() protected abstract TNetType NullNet { get; } @@ -68,7 +70,7 @@ namespace Content.Server.GameObjects.Components.Power protected abstract void RemoveSelfFromNet(TNetType net); - private bool TryFindNet(out TNetType foundNet) + private bool TryFindNet([NotNullWhen(true)] out TNetType? foundNet) { if (Owner.TryGetComponent(out var container)) { diff --git a/Content.Server/GameObjects/EntitySystems/BaseChargerSystem.cs b/Content.Server/GameObjects/EntitySystems/Power/BaseChargerSystem.cs similarity index 80% rename from Content.Server/GameObjects/EntitySystems/BaseChargerSystem.cs rename to Content.Server/GameObjects/EntitySystems/Power/BaseChargerSystem.cs index d206e07461..d7a6a44afc 100644 --- a/Content.Server/GameObjects/EntitySystems/BaseChargerSystem.cs +++ b/Content.Server/GameObjects/EntitySystems/Power/BaseChargerSystem.cs @@ -1,4 +1,5 @@ -using Content.Server.GameObjects.Components.Power.ApcNetComponents.PowerReceiverUsers; +#nullable enable +using Content.Server.GameObjects.Components.Power.ApcNetComponents.PowerReceiverUsers; using JetBrains.Annotations; using Robust.Shared.GameObjects.Systems; diff --git a/Content.Server/GameObjects/EntitySystems/BatteryDischargerSystem.cs b/Content.Server/GameObjects/EntitySystems/Power/BatteryDischargerSystem.cs similarity index 77% rename from Content.Server/GameObjects/EntitySystems/BatteryDischargerSystem.cs rename to Content.Server/GameObjects/EntitySystems/Power/BatteryDischargerSystem.cs index f6d9ab7cc5..8980ff8948 100644 --- a/Content.Server/GameObjects/EntitySystems/BatteryDischargerSystem.cs +++ b/Content.Server/GameObjects/EntitySystems/Power/BatteryDischargerSystem.cs @@ -1,8 +1,7 @@ -using Content.Server.GameObjects.Components.Power.PowerNetComponents; +#nullable enable +using Content.Server.GameObjects.Components.Power.PowerNetComponents; using JetBrains.Annotations; -using Robust.Server.Interfaces.Timing; using Robust.Shared.GameObjects.Systems; -using Robust.Shared.IoC; namespace Content.Server.GameObjects.EntitySystems { diff --git a/Content.Server/GameObjects/EntitySystems/BatteryStorageSystem.cs b/Content.Server/GameObjects/EntitySystems/Power/BatteryStorageSystem.cs similarity index 76% rename from Content.Server/GameObjects/EntitySystems/BatteryStorageSystem.cs rename to Content.Server/GameObjects/EntitySystems/Power/BatteryStorageSystem.cs index 8ace299025..725ac2ed9e 100644 --- a/Content.Server/GameObjects/EntitySystems/BatteryStorageSystem.cs +++ b/Content.Server/GameObjects/EntitySystems/Power/BatteryStorageSystem.cs @@ -1,8 +1,7 @@ -using Content.Server.GameObjects.Components.Power.PowerNetComponents; +#nullable enable +using Content.Server.GameObjects.Components.Power.PowerNetComponents; using JetBrains.Annotations; -using Robust.Server.Interfaces.Timing; using Robust.Shared.GameObjects.Systems; -using Robust.Shared.IoC; namespace Content.Server.GameObjects.EntitySystems { diff --git a/Content.Server/GameObjects/EntitySystems/BatterySystem.cs b/Content.Server/GameObjects/EntitySystems/Power/BatterySystem.cs similarity index 86% rename from Content.Server/GameObjects/EntitySystems/BatterySystem.cs rename to Content.Server/GameObjects/EntitySystems/Power/BatterySystem.cs index 438a58430f..c94defd61d 100644 --- a/Content.Server/GameObjects/EntitySystems/BatterySystem.cs +++ b/Content.Server/GameObjects/EntitySystems/Power/BatterySystem.cs @@ -1,4 +1,5 @@ -using Content.Server.GameObjects.Components.Power; +#nullable enable +using Content.Server.GameObjects.Components.Power; using JetBrains.Annotations; using Robust.Shared.GameObjects.Systems; diff --git a/Content.Server/GameObjects/EntitySystems/PowerApcSystem.cs b/Content.Server/GameObjects/EntitySystems/Power/PowerApcSystem.cs similarity index 89% rename from Content.Server/GameObjects/EntitySystems/PowerApcSystem.cs rename to Content.Server/GameObjects/EntitySystems/Power/PowerApcSystem.cs index aef620e58f..da177056dd 100644 --- a/Content.Server/GameObjects/EntitySystems/PowerApcSystem.cs +++ b/Content.Server/GameObjects/EntitySystems/Power/PowerApcSystem.cs @@ -1,10 +1,9 @@ -using System.Collections.Generic; +#nullable enable +using System.Collections.Generic; using Content.Server.GameObjects.Components.NodeContainer.NodeGroups; using Content.Server.GameObjects.Components.Power.ApcNetComponents; using JetBrains.Annotations; -using Robust.Server.Interfaces.Timing; using Robust.Shared.GameObjects.Systems; -using Robust.Shared.IoC; namespace Content.Server.GameObjects.EntitySystems { diff --git a/Content.Server/GameObjects/EntitySystems/PowerNetSystem.cs b/Content.Server/GameObjects/EntitySystems/Power/PowerNetSystem.cs similarity index 84% rename from Content.Server/GameObjects/EntitySystems/PowerNetSystem.cs rename to Content.Server/GameObjects/EntitySystems/Power/PowerNetSystem.cs index 86196dcc2e..944e801028 100644 --- a/Content.Server/GameObjects/EntitySystems/PowerNetSystem.cs +++ b/Content.Server/GameObjects/EntitySystems/Power/PowerNetSystem.cs @@ -1,4 +1,5 @@ -using Content.Server.GameObjects.Components.Power.PowerNetComponents; +#nullable enable +using Content.Server.GameObjects.Components.Power.PowerNetComponents; using JetBrains.Annotations; using Robust.Shared.GameObjects.Systems; using Robust.Shared.IoC; diff --git a/Content.Server/GameObjects/EntitySystems/PowerSmesSystem.cs b/Content.Server/GameObjects/EntitySystems/Power/PowerSmesSystem.cs similarity index 82% rename from Content.Server/GameObjects/EntitySystems/PowerSmesSystem.cs rename to Content.Server/GameObjects/EntitySystems/Power/PowerSmesSystem.cs index f6bc4cdeeb..989c82dd47 100644 --- a/Content.Server/GameObjects/EntitySystems/PowerSmesSystem.cs +++ b/Content.Server/GameObjects/EntitySystems/Power/PowerSmesSystem.cs @@ -1,4 +1,5 @@ -using Content.Server.GameObjects.Components.Power.PowerNetComponents; +#nullable enable +using Content.Server.GameObjects.Components.Power.PowerNetComponents; using JetBrains.Annotations; using Robust.Shared.GameObjects.Systems; diff --git a/Content.Server/GameObjects/EntitySystems/PowerSolarControlConsoleSystem.cs b/Content.Server/GameObjects/EntitySystems/Power/PowerSolarControlConsoleSystem.cs similarity index 91% rename from Content.Server/GameObjects/EntitySystems/PowerSolarControlConsoleSystem.cs rename to Content.Server/GameObjects/EntitySystems/Power/PowerSolarControlConsoleSystem.cs index 68820fbd1b..555aab54bf 100644 --- a/Content.Server/GameObjects/EntitySystems/PowerSolarControlConsoleSystem.cs +++ b/Content.Server/GameObjects/EntitySystems/Power/PowerSolarControlConsoleSystem.cs @@ -1,4 +1,5 @@ -using Content.Server.GameObjects.Components.Power.PowerNetComponents; +#nullable enable +using Content.Server.GameObjects.Components.Power.PowerNetComponents; using JetBrains.Annotations; using Robust.Shared.GameObjects.Systems; diff --git a/Content.Server/GameObjects/EntitySystems/PowerSolarSystem.cs b/Content.Server/GameObjects/EntitySystems/Power/PowerSolarSystem.cs similarity index 99% rename from Content.Server/GameObjects/EntitySystems/PowerSolarSystem.cs rename to Content.Server/GameObjects/EntitySystems/Power/PowerSolarSystem.cs index d2a437b40a..3e763f5516 100644 --- a/Content.Server/GameObjects/EntitySystems/PowerSolarSystem.cs +++ b/Content.Server/GameObjects/EntitySystems/Power/PowerSolarSystem.cs @@ -1,4 +1,5 @@ -using System; +#nullable enable +using System; using System.Linq; using Content.Server.GameObjects.Components.Power.PowerNetComponents; using Content.Shared.Physics;