public override Packet Deserialize(byte[] buffer) { using (var stream = new MemoryStream(buffer, 1, buffer.Length - 1)) { using (var binaryReader = new BinaryReader(stream)) { PacketSequenceNumber = binaryReader.ReadInt32(); ClientId = binaryReader.ReadInt32(); Direction = (PlayerMovementDirectionEnum)binaryReader.ReadByte(); return(this); } } }
public void MovePlayer(int clientId, int packetSequenceNumber, PlayerMovementDirectionEnum direction) { var playerState = _lastWorldState.PlayersStates.FirstOrDefault(p => p.Id == clientId); if (playerState == null) { return; } playerState.LastPacketSequenceNumber = packetSequenceNumber; switch (direction) { case PlayerMovementDirectionEnum.Up: playerState.Y += playerState.Speed; break; case PlayerMovementDirectionEnum.Down: playerState.Y += -playerState.Speed; break; case PlayerMovementDirectionEnum.Right: playerState.X += playerState.Speed; break; case PlayerMovementDirectionEnum.Left: playerState.X += -playerState.Speed; break; default: break; } //Log.Info($"Player with {playerState.Id} id position x: {playerState.X}, y: {playerState.Y}, Pakcet num: {playerState.LastPacketSequenceNumber}"); }