]> git.deb.at Git - rhonda/impostor.git/commitdiff
Make GameLogicComponent methods async
authorjs6pak <me@6pak.dev>
Sun, 3 Dec 2023 21:59:05 +0000 (22:59 +0100)
committerjs6pak <me@6pak.dev>
Sun, 3 Dec 2023 21:59:05 +0000 (22:59 +0100)
src/Impostor.Server/Net/Inner/Objects/GameManager/InnerGameManager.cs
src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/GameLogicComponent.cs
src/Impostor.Server/Net/Inner/Objects/GameManager/Logic/LogicOptions.cs
src/Impostor.Server/Net/State/Game.Api.cs

index 6281c163de315d1f1d72ba159425ec12842b9910..ee727f32df8b6db80b2f9700440eaff3680bcbaa 100644 (file)
@@ -51,14 +51,14 @@ internal abstract class InnerGameManager : InnerNetObject, IInnerGameManager
         return _logicComponents.IndexOf(logic);
     }
 
-    public override ValueTask<bool> HandleRpcAsync(ClientPlayer sender, ClientPlayer? target, RpcCalls call, IMessageReader reader)
+    public override async ValueTask<bool> HandleRpcAsync(ClientPlayer sender, ClientPlayer? target, RpcCalls call, IMessageReader reader)
     {
         foreach (var logicComponent in _logicComponents)
         {
-            logicComponent.HandleRpc(call, reader);
+            await logicComponent.HandleRpcAsync(call, reader);
         }
 
-        return ValueTask.FromResult(true);
+        return true;
     }
 
     public override ValueTask<bool> SerializeAsync(IMessageWriter writer, bool initialState)
index 3847b53b76fad81833f7e05fccd8607ad8742cfa..6993ddb139afd13934a8ecdca03ee8c1df430040 100644 (file)
@@ -6,12 +6,12 @@ namespace Impostor.Server.Net.Inner.Objects.GameManager.Logic;
 
 internal abstract class GameLogicComponent
 {
-    public virtual void HandleRpc(RpcCalls callId, IMessageReader reader)
+    public virtual ValueTask HandleRpcAsync(RpcCalls callId, IMessageReader reader)
     {
         throw new NotImplementedException($"Unhandled RpcCall {callId}");
     }
 
-    public virtual bool Serialize(IMessageWriter writer, bool initialState)
+    public virtual ValueTask<bool> SerializeAsync(IMessageWriter writer, bool initialState)
     {
         throw new NotImplementedException();
     }
index f444582703dd4a014679893ebe1f3250ea3e3159..2622e5265394e62d93a03cf5bdf034bd4c4d616d 100644 (file)
@@ -17,10 +17,10 @@ internal abstract class LogicOptions : GameLogicComponent
         _eventManager = eventManager;
     }
 
-    public override bool Serialize(IMessageWriter writer, bool initialState)
+    public override ValueTask<bool> SerializeAsync(IMessageWriter writer, bool initialState)
     {
         GameOptionsFactory.Serialize(writer, _game.Options);
-        return true;
+        return ValueTask.FromResult(true);
     }
 
     public override async ValueTask DeserializeAsync(IMessageReader reader, bool initialState)
index e3fc4cb57b917600186e046cf14ee30b221b9bb8..8a61f7c838461190e6c426bf070eda635707c6b4 100644 (file)
@@ -56,7 +56,7 @@ namespace Impostor.Server.Net.State
             writer.WritePacked(GameNet.GameManager.NetId);
 
             writer.StartMessage((byte)gameOptionsTag);
-            GameNet.GameManager.LogicOptions.Serialize(writer, false);
+            await GameNet.GameManager.LogicOptions.SerializeAsync(writer, false);
 
             writer.EndMessage();
             writer.EndMessage();