]> git.smokeofanarchy.ru Git - space-station-14.git/commitdiff
Changes required for frozen event bus PR (#23493)
authorLeon Friedrich <60421075+ElectroJr@users.noreply.github.com>
Thu, 4 Jan 2024 02:26:25 +0000 (21:26 -0500)
committerGitHub <noreply@github.com>
Thu, 4 Jan 2024 02:26:25 +0000 (13:26 +1100)
* Changes required for frozen event bus PR

* Fix RoundEndTest

Content.IntegrationTests/Tests/RoundEndTest.cs
Content.Server/Afk/AFKSystem.cs
Content.Server/Afk/AfkManager.cs

index d77ffb867af3732bdf6c3c1fa4c0d63bc827f821..1ddddf66bce9cdc8441e7c9b8b272b1d83b1fbb7 100644 (file)
@@ -8,8 +8,24 @@ using Robust.Shared.GameObjects;
 namespace Content.IntegrationTests.Tests
 {
     [TestFixture]
-    public sealed class RoundEndTest : IEntityEventSubscriber
+    public sealed class RoundEndTest
     {
+        private sealed class RoundEndTestSystem : EntitySystem
+        {
+            public int Count;
+
+            public override void Initialize()
+            {
+                base.Initialize();
+                SubscribeLocalEvent<RoundEndSystemChangedEvent>(OnRoundEnd);
+            }
+
+            private void OnRoundEnd(RoundEndSystemChangedEvent ev)
+            {
+                Interlocked.Increment(ref Count);
+            }
+        }
+
         [Test]
         public async Task Test()
         {
@@ -22,13 +38,12 @@ namespace Content.IntegrationTests.Tests
 
             var server = pair.Server;
 
-            var entManager = server.ResolveDependency<IEntityManager>();
             var config = server.ResolveDependency<IConfigurationManager>();
             var sysManager = server.ResolveDependency<IEntitySystemManager>();
             var ticker = sysManager.GetEntitySystem<GameTicker>();
             var roundEndSystem = sysManager.GetEntitySystem<RoundEndSystem>();
-
-            var eventCount = 0;
+            var sys = server.System<RoundEndTestSystem>();
+            sys.Count = 0;
 
             await server.WaitAssertion(() =>
             {
@@ -43,11 +58,6 @@ namespace Content.IntegrationTests.Tests
 
             await server.WaitAssertion(() =>
             {
-                var bus = entManager.EventBus;
-                bus.SubscribeEvent<RoundEndSystemChangedEvent>(EventSource.Local, this, _ =>
-                {
-                    Interlocked.Increment(ref eventCount);
-                });
 
                 // Press the shuttle call button
                 roundEndSystem.RequestRoundEnd();
@@ -118,8 +128,8 @@ namespace Content.IntegrationTests.Tests
             async Task WaitForEvent()
             {
                 var timeout = Task.Delay(TimeSpan.FromSeconds(10));
-                var currentCount = Thread.VolatileRead(ref eventCount);
-                while (currentCount == Thread.VolatileRead(ref eventCount) && !timeout.IsCompleted)
+                var currentCount = Thread.VolatileRead(ref sys.Count);
+                while (currentCount == Thread.VolatileRead(ref sys.Count) && !timeout.IsCompleted)
                 {
                     await pair.RunTicksSync(5);
                 }
index f634a415dc51a5a4da4d631efd2602a859adf968..b8cfdfe6b3dd2d097ed29297285f3d3ec038d20c 100644 (file)
@@ -4,6 +4,7 @@ using Content.Shared.CCVar;
 using Robust.Server.Player;
 using Robust.Shared.Configuration;
 using Robust.Shared.Enums;
+using Robust.Shared.Input;
 using Robust.Shared.Player;
 using Robust.Shared.Timing;
 
@@ -30,6 +31,13 @@ public sealed class AFKSystem : EntitySystem
         base.Initialize();
         _playerManager.PlayerStatusChanged += OnPlayerChange;
         _configManager.OnValueChanged(CCVars.AfkTime, SetAfkDelay, true);
+
+        SubscribeNetworkEvent<FullInputCmdMessage>(HandleInputCmd);
+    }
+
+    private void HandleInputCmd(FullInputCmdMessage msg, EntitySessionEventArgs args)
+    {
+        _afkManager.PlayerDidAction(args.SenderSession);
     }
 
     private void SetAfkDelay(float obj)
index 52dc7715df384e2c4135d6524210cc7cb7cfdb23..1f22f2046eb707ca5d3cba2d228bb0cb8bc18ab5 100644 (file)
@@ -33,7 +33,7 @@ namespace Content.Server.Afk
     }
 
     [UsedImplicitly]
-    public sealed class AfkManager : IAfkManager, IEntityEventSubscriber
+    public sealed class AfkManager : IAfkManager
     {
         [Dependency] private readonly IEntityManager _entityManager = default!;
         [Dependency] private readonly IPlayerManager _playerManager = default!;
@@ -49,11 +49,6 @@ namespace Content.Server.Afk
 
             _playerManager.PlayerStatusChanged += PlayerStatusChanged;
             _consoleHost.AnyCommandExecuted += ConsoleHostOnAnyCommandExecuted;
-
-            _entityManager.EventBus.SubscribeSessionEvent<FullInputCmdMessage>(
-                EventSource.Network,
-                this,
-                HandleInputCmd);
         }
 
         public void PlayerDidAction(ICommonSession player)
@@ -91,10 +86,5 @@ namespace Content.Server.Afk
             if (shell.Player is { } player)
                 PlayerDidAction(player);
         }
-
-        private void HandleInputCmd(FullInputCmdMessage msg, EntitySessionEventArgs args)
-        {
-            PlayerDidAction(args.SenderSession);
-        }
     }
 }