]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Move some of the new singularity code into shared
authorSaphire <lattice@saphi.re>
Wed, 20 Nov 2024 01:49:45 +0000 (07:49 +0600)
committerSaphire <lattice@saphi.re>
Wed, 20 Nov 2024 01:53:10 +0000 (07:53 +0600)
Hopefully without explosions yay

Content.Server/Singularity/EntitySystems/SingularityGeneratorSystem.cs
Content.Shared/Singularity/Components/SingularityGeneratorComponent.cs [moved from Content.Server/Singularity/Components/SingularityGeneratorComponent.cs with 91% similarity]
Content.Shared/Singularity/EntitySystems/SharedSingularityGeneratorSystem.cs [new file with mode: 0644]

index cfca86bf4af7d49606bd3118c7721e017bd536ae..95722449b87799fe047412ce15bad6572d40a08e 100644 (file)
@@ -1,10 +1,7 @@
-using System.Diagnostics;
 using Content.Server.ParticleAccelerator.Components;
-using Content.Server.Popups;
-using Content.Server.Singularity.Components;
-using Content.Shared.Emag.Systems;
 using Content.Shared.Popups;
 using Content.Shared.Singularity.Components;
+using Content.Shared.Singularity.EntitySystems;
 using Robust.Server.GameObjects;
 using Robust.Shared.Physics;
 using Robust.Shared.Physics.Components;
@@ -13,7 +10,7 @@ using Robust.Shared.Timing;
 
 namespace Content.Server.Singularity.EntitySystems;
 
-public sealed class SingularityGeneratorSystem : EntitySystem
+public sealed class SingularityGeneratorSystem : SharedSingularityGeneratorSystem
 {
     #region Dependencies
     [Dependency] private readonly IViewVariablesManager _vvm = default!;
@@ -21,7 +18,6 @@ public sealed class SingularityGeneratorSystem : EntitySystem
     [Dependency] private readonly PhysicsSystem _physics = default!;
     [Dependency] private readonly IGameTiming _timing = default!;
     [Dependency] private readonly MetaDataSystem _metadata = default!;
-    [Dependency] private readonly PopupSystem _popupSystem = default!;
     #endregion Dependencies
 
     public override void Initialize()
@@ -29,7 +25,6 @@ public sealed class SingularityGeneratorSystem : EntitySystem
         base.Initialize();
 
         SubscribeLocalEvent<ParticleProjectileComponent, StartCollideEvent>(HandleParticleCollide);
-        SubscribeLocalEvent<SingularityGeneratorComponent, GotEmaggedEvent>(OnEmagged);
 
         var vvHandle = _vvm.GetTypeHandler<SingularityGeneratorComponent>();
         vvHandle.AddPath(nameof(SingularityGeneratorComponent.Power), (_, comp) => comp.Power, SetPower);
@@ -138,7 +133,7 @@ public sealed class SingularityGeneratorSystem : EntitySystem
         if (!contained && !generatorComp.FailsafeDisabled)
         {
             generatorComp.NextFailsafe = _timing.CurTime + generatorComp.FailsafeCooldown;
-            _popupSystem.PopupEntity(Loc.GetString("comp-generator-failsafe", ("target", args.OtherEntity)), args.OtherEntity, PopupType.LargeCaution);
+            PopupSystem.PopupEntity(Loc.GetString("comp-generator-failsafe", ("target", args.OtherEntity)), args.OtherEntity, PopupType.LargeCaution);
         }
         else
         {
@@ -159,13 +154,6 @@ public sealed class SingularityGeneratorSystem : EntitySystem
 
         EntityManager.QueueDeleteEntity(uid);
     }
-
-    private void OnEmagged(EntityUid uid, SingularityGeneratorComponent component, ref GotEmaggedEvent args)
-    {
-        _popupSystem.PopupEntity(Loc.GetString("comp-generator-failsafe-disabled", ("target", uid)), uid);
-        component.FailsafeDisabled = true;
-        args.Handled = true;
-    }
     #endregion Event Handlers
 
     /// <summary>
similarity index 91%
rename from Content.Server/Singularity/Components/SingularityGeneratorComponent.cs
rename to Content.Shared/Singularity/Components/SingularityGeneratorComponent.cs
index c8feeb5d5dbf33748d095ae6731defaf63a06044..3643ed31a6f06858426d74be03574426758625ec 100644 (file)
@@ -1,14 +1,12 @@
 using Robust.Shared.Prototypes;
 using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype;
 
-using Content.Server.Singularity.EntitySystems;
 using Content.Shared.Physics;
 using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom;
 
-namespace Content.Server.Singularity.Components;
+namespace Content.Shared.Singularity.Components;
 
-[RegisterComponent, AutoGenerateComponentPause]
-[Access(typeof(SingularityGeneratorSystem))]
+[RegisterComponent, AutoGenerateComponentPause, AutoGenerateComponentState]
 public sealed partial class SingularityGeneratorComponent : Component
 {
     /// <summary>
@@ -28,7 +26,7 @@ public sealed partial class SingularityGeneratorComponent : Component
     /// <summary>
     /// Allows the generator to ignore all the failsafe stuff, e.g. when emagged
     /// </summary>
-    [DataField]
+    [DataField, AutoNetworkedField]
     public bool FailsafeDisabled = false;
 
     /// <summary>
diff --git a/Content.Shared/Singularity/EntitySystems/SharedSingularityGeneratorSystem.cs b/Content.Shared/Singularity/EntitySystems/SharedSingularityGeneratorSystem.cs
new file mode 100644 (file)
index 0000000..8830cb0
--- /dev/null
@@ -0,0 +1,29 @@
+using Content.Shared.Emag.Systems;
+using Content.Shared.Popups;
+using Content.Shared.Singularity.Components;
+
+namespace Content.Shared.Singularity.EntitySystems;
+
+/// <summary>
+/// Shared part of SingularitySingularityGeneratorSystem
+/// </summary>
+public abstract class SharedSingularityGeneratorSystem : EntitySystem
+{
+    #region Dependencies
+    [Dependency] protected readonly SharedPopupSystem PopupSystem = default!;
+    #endregion Dependencies
+
+    public override void Initialize()
+    {
+        base.Initialize();
+
+        SubscribeLocalEvent<SingularityGeneratorComponent, GotEmaggedEvent>(OnEmagged);
+    }
+
+    private void OnEmagged(EntityUid uid, SingularityGeneratorComponent component, ref GotEmaggedEvent args)
+    {
+        PopupSystem.PopupEntity(Loc.GetString("comp-generator-failsafe-disabled", ("target", uid)), uid);
+        component.FailsafeDisabled = true;
+        args.Handled = true;
+    }
+}
\ No newline at end of file