feat: IConnection interface added for connection information

This commit is contained in:
2025-06-17 23:21:46 +03:00
parent 7cc3bb4d83
commit d89af5ccad
11 changed files with 88 additions and 42 deletions

View File

@@ -65,12 +65,12 @@ public class BallBehaviour : Behaviour2D, IFirstFrameUpdate, IPhysicsUpdate, INe
public BallBehaviour() { }
public BallBehaviour(float speed) => Speed = speed;
void IPacketListenerClient<BallResetPacket>.OnClientPacketArrived(BallResetPacket packet) => ResetBall();
void IPacketListenerClient<BallUpdatePacket>.OnClientPacketArrived(BallUpdatePacket packet)
void IPacketListenerClient<BallResetPacket>.OnClientPacketArrived(IConnection sender, BallResetPacket packet) => ResetBall();
void IPacketListenerClient<BallUpdatePacket>.OnClientPacketArrived(IConnection sender, BallUpdatePacket packet)
{
networkTween = Transform.TweenPositionAdditive(tweenManager, .25f, Transform.Position.FromTo(packet.Position));
RigidBody.Velocity = packet.Velocity;
physicsEngine2D.StepIndividual(RigidBody, new System.DateTime(System.DateTime.UtcNow.Ticks - packet.Timestamp).Second);
physicsEngine2D.StepIndividual(RigidBody, sender.Ping);
}
private class BallResetPacket : INetworkPacket;
@@ -78,14 +78,12 @@ public class BallBehaviour : Behaviour2D, IFirstFrameUpdate, IPhysicsUpdate, INe
{
public Vector2D Position { get; set; } = Vector2D.Zero;
public Vector2D Velocity { get; set; } = Vector2D.Zero;
public long Timestamp { get; set; } = 0;
public BallUpdatePacket() { }
public BallUpdatePacket(BallBehaviour ballBehaviour)
{
Position = ballBehaviour.Transform.Position;
Velocity = ballBehaviour.RigidBody.Velocity;
Timestamp = System.DateTime.UtcNow.Ticks;
}
}
}

View File

@@ -70,7 +70,7 @@ public class PaddleBehaviour(Keys Up, Keys Down, float High, float Low, float Sp
private void OnDownPressed(IButtonInputs<Keys> sender, IButtonInputs<Keys>.ButtonCallbackArguments args) { isDownPressed = true; networkClient?.SendToServer(new PaddleKeyStatePacket(this)); }
private void OnDownReleased(IButtonInputs<Keys> sender, IButtonInputs<Keys>.ButtonCallbackArguments args) { isDownPressed = false; networkClient?.SendToServer(new PaddleKeyStatePacket(this)); }
public void OnServerPacketArrived(string sender, PaddleKeyStatePacket packet)
public void OnServerPacketArrived(IConnection sender, PaddleKeyStatePacket packet)
{
isUpPressed = packet.IsUpPressed;
isDownPressed = packet.IsDownPressed;
@@ -78,7 +78,7 @@ public class PaddleBehaviour(Keys Up, Keys Down, float High, float Low, float Sp
networkServer?.SendToClient("*", new PaddleKeyStatePacket(this));
}
public void OnClientPacketArrived(PaddleKeyStatePacket packet)
public void OnClientPacketArrived(IConnection sender, PaddleKeyStatePacket packet)
{
isUpPressed = packet.IsUpPressed;
isDownPressed = packet.IsDownPressed;

View File

@@ -89,7 +89,7 @@ public class PongManagerBehaviour : Behaviour, INetworkEntity, IFirstFrameUpdate
return Vector2D.Right.Rotate(isBackwards ? rotation + Syntriax.Engine.Core.Math.PI : rotation);
}
void IPacketListenerServer<RequestStartPacket>.OnServerPacketArrived(string sender, RequestStartPacket packet)
void IPacketListenerServer<RequestStartPacket>.OnServerPacketArrived(IConnection sender, RequestStartPacket packet)
{
if (ball.RigidBody.Velocity.MagnitudeSquared > 0.01f)
return;