This commit is contained in:
2025-03-28 15:24:44 +02:00
parent cc9eacca8d
commit 6783efdb6a
25 changed files with 1077 additions and 364 deletions

View File

@@ -0,0 +1,54 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using FlaxEngine.Networking;
using FlaxEngine;
namespace Game;
public struct AcceptConnectionMessage
{
public struct PlayerInfo
{
public uint PlayerId;
public Float3 PlayerPosition;
}
public ulong Frame;
public float GameTime;
public PlayerInfo[] Players;
public static AcceptConnectionMessage Read(ref NetworkMessage networkMessage)
{
AcceptConnectionMessage packet = new AcceptConnectionMessage();
packet.Frame = networkMessage.ReadUInt64();
packet.GameTime = networkMessage.ReadSingle();
int numActors = (int)networkMessage.ReadUInt32();
packet.Players = new PlayerInfo[numActors];
for (int i = 0; i < numActors; i++)
{
packet.Players[i].PlayerId = networkMessage.ReadUInt32();
packet.Players[i].PlayerPosition.X = networkMessage.ReadSingle();
packet.Players[i].PlayerPosition.Y = networkMessage.ReadSingle();
packet.Players[i].PlayerPosition.Z = networkMessage.ReadSingle();
}
return packet;
}
public void Write(ref NetworkMessage networkMessage)
{
networkMessage.WriteByte((byte)GameModeMessageType2.AcceptConnection);
networkMessage.WriteUInt64(Frame);
networkMessage.WriteSingle(GameTime);
networkMessage.WriteUInt32((uint)Players.Length);
foreach (PlayerInfo player in Players)
{
networkMessage.WriteUInt32(player.PlayerId);
networkMessage.WriteSingle(player.PlayerPosition.X);
networkMessage.WriteSingle(player.PlayerPosition.Y);
networkMessage.WriteSingle(player.PlayerPosition.Z);
}
}
}

View File

@@ -1,54 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using FlaxEngine.Networking;
using FlaxEngine;
namespace Game;
public struct WelcomePlayerMessage
{
public struct PlayerInfo
{
public uint playerId;
public Float3 playerPosition;
}
public ulong frame;
public float time;
public PlayerInfo[] players;
public static WelcomePlayerMessage Read(ref NetworkMessage networkMessage)
{
WelcomePlayerMessage packet = new WelcomePlayerMessage();
packet.frame = networkMessage.ReadUInt64();
packet.time = networkMessage.ReadSingle();
int numActors = (int)networkMessage.ReadUInt32();
packet.players = new PlayerInfo[numActors];
for (int i = 0; i < numActors; i++)
{
packet.players[i].playerId = networkMessage.ReadUInt32();
packet.players[i].playerPosition.X = networkMessage.ReadSingle();
packet.players[i].playerPosition.Y = networkMessage.ReadSingle();
packet.players[i].playerPosition.Z = networkMessage.ReadSingle();
}
return packet;
}
public void Write(ref NetworkMessage networkMessage)
{
networkMessage.WriteByte((byte)GameModeMessageType.WelcomePlayer);
networkMessage.WriteUInt64(frame);
networkMessage.WriteSingle(time);
networkMessage.WriteUInt32((uint)players.Length);
foreach (PlayerInfo player in players)
{
networkMessage.WriteUInt32(player.playerId);
networkMessage.WriteSingle(player.playerPosition.X);
networkMessage.WriteSingle(player.playerPosition.Y);
networkMessage.WriteSingle(player.playerPosition.Z);
}
}
}