refactor: network implementations switched to universe objects
This commit is contained in:
@@ -22,7 +22,7 @@ public class PongManagerBehaviour : Behaviour,
|
||||
private readonly Random random = new();
|
||||
private BallBehaviour ball = null!;
|
||||
|
||||
private INetworkCommunicatorClient networkClient = null!;
|
||||
private INetworkCommunicatorClient? networkClient = null!;
|
||||
private INetworkCommunicatorServer? networkServer = null;
|
||||
|
||||
public int ScoreLeft { get; private set; } = 0;
|
||||
@@ -36,12 +36,12 @@ public class PongManagerBehaviour : Behaviour,
|
||||
|
||||
protected override void OnFirstActiveFrame()
|
||||
{
|
||||
var buttonInputs = Universe.FindRequiredBehaviour<IButtonInputs<Keys>>();
|
||||
buttonInputs.RegisterOnRelease(Keys.Space, (_, _1) => networkClient.SendToServer(new PongResetPacket()));
|
||||
IButtonInputs<Keys> buttonInputs = Universe.FindRequired<IButtonInputs<Keys>>();
|
||||
buttonInputs.RegisterOnRelease(Keys.Space, (_, _1) => networkClient?.SendToServer(new PongResetPacket()));
|
||||
|
||||
networkClient = Universe.FindRequiredBehaviour<INetworkCommunicatorClient>();
|
||||
ball = Universe.FindRequiredBehaviour<BallBehaviour>();
|
||||
networkServer = Universe.FindBehaviour<INetworkCommunicatorServer>();
|
||||
networkClient = Universe.Find<INetworkCommunicatorClient>();
|
||||
networkServer = Universe.Find<INetworkCommunicatorServer>();
|
||||
}
|
||||
|
||||
public void ScoreToLeft()
|
||||
@@ -92,6 +92,7 @@ public class PongManagerBehaviour : Behaviour,
|
||||
return Vector2D.Right.Rotate(isBackwards ? rotation + Syntriax.Engine.Core.Math.PI : rotation);
|
||||
}
|
||||
|
||||
public void OnClientPacketArrived(PongStartPacket packet) => ball.LaunchBall(packet.BallVelocity);
|
||||
public void OnClientPacketArrived(PongResetPacket packet) => Reset();
|
||||
public void OnClientPacketArrived(PongScoreUpdatePacket packet)
|
||||
{
|
||||
@@ -103,19 +104,17 @@ public class PongManagerBehaviour : Behaviour,
|
||||
public void OnServerPacketArrived(PongResetPacket packet, string from)
|
||||
{
|
||||
Reset();
|
||||
Vector2D ballVelocity = GetBallLaunchDirection();
|
||||
ball.LaunchBall(ballVelocity);
|
||||
networkServer?.SendToClient("*", new PongResetPacket());
|
||||
networkServer?.SendToClient("*", new PongStartPacket() { BallVelocity = GetBallLaunchDirection() });
|
||||
networkServer?.SendToClient("*", new PongStartPacket() { BallVelocity = ballVelocity });
|
||||
}
|
||||
|
||||
public void OnServerPacketArrived(PongStartPacket packet, string from)
|
||||
{
|
||||
packet = new() { BallVelocity = GetBallLaunchDirection() };
|
||||
networkServer?.SendToClient("*", packet);
|
||||
}
|
||||
|
||||
public void OnClientPacketArrived(PongStartPacket packet)
|
||||
{
|
||||
ball.LaunchBall(packet.BallVelocity);
|
||||
networkServer?.SendToClient("*", packet);
|
||||
}
|
||||
|
||||
public class PongStartPacket : INetworkPacket
|
||||
|
||||
Reference in New Issue
Block a user