private void HandleWorldData(object sender, PacketRecievedEventArgs args) { WorldConfiguration configuration = JsonConvert.DeserializeObject <WorldConfiguration>(args.Buffer.ReadString()); World.Initialize(configuration); NetworkController.Instance.Login("temp_name"); }
private void SendClientWorldConfiguration(object sender, PacketRecievedEventArgs args) { Packet packet = CoreApp.Server.CreatePacket(ServerOutgoingPacketType.SendWorldConfiguration); packet.Write(JsonConvert.SerializeObject(NetworkWorld.Configuration, Formatting.None)); CoreApp.Server.Send(packet, args.SenderConnection); Logger.LogDestination = LoggerDestination.All; Logger.Log("Sending world config"); }
private void HandleNewPlayer(object sender, PacketRecievedEventArgs args) { int id = args.Buffer.ReadInt32(); string name = args.Buffer.ReadString(); int x = args.Buffer.ReadInt32(); int y = args.Buffer.ReadInt32(); if (ControllableCharacterId < 0) { ControllableCharacterId = id; } Create(id, name, new Tile(new Vector2i(x, y))); }
private static void HandlePositionalUpdate(object sender, PacketRecievedEventArgs args) { int id = args.Buffer.ReadInt32(); if (!playerControllers.ContainsKey(id)) { return; } Tile tile = args.Buffer.Read <Tile>(); World.Current.PlayerCharacterManager[id].Tile = tile; playerControllers[id].Move((Vector2)tile.Position); }
private void HandlePlayerDisconnect(object sender, PacketRecievedEventArgs args) { int id = args.Buffer.ReadInt32(); if (!playerCharacters.ContainsKey(id)) { return; } PlayerCharacter playerCharacter = playerCharacters[id]; playerCharacters.Remove(id); OnRemoved(playerCharacter); }
private void HandleAllPlayers(object sender, PacketRecievedEventArgs args) { int count = args.Buffer.ReadInt32() - 1; for (int i = 0; i < count; i++) { Logger.Log(i); PlayerCharacter character = args.Buffer.Read <PlayerCharacter>(); Logger.Log(character.Id); if (playerCharacters.ContainsKey(character.Id)) { return; } Create(character); } }
private void HandleLogin(object sender, PacketRecievedEventArgs args) { Logger.Log("Receiving login packet"); int id = playerCharacters.Count + 1; string name = args.Buffer.ReadString(); Create(args.SenderConnection, id, name, new Tile(new Vector2i(0, id))); Packet packet = CoreApp.Server.CreatePacket(ServerOutgoingPacketType.SendNewPlayer); packet.Write(id); packet.Write(name); packet.Write(playerCharacters[id].Tile.Position.X); packet.Write(playerCharacters[id].Tile.Position.Y); CoreApp.Server.SendToAll(packet, NetDeliveryMethod.ReliableOrdered); SendAllPlayers(args.SenderConnection); }
private void HandleMovement(object sender, PacketRecievedEventArgs args) { int id = args.Buffer.ReadInt32(); if (!playerCharacters.ContainsKey(id)) { return; } Tile destination = args.Buffer.Read <Tile>(); playerCharacters[id].Tile = destination; Packet packet = CoreApp.Server.CreatePacket(ServerOutgoingPacketType.UpdatePlayerPositions); packet.Write(id); packet.Write(destination); CoreApp.Server.SendToAll(packet, NetDeliveryMethod.ReliableUnordered); }
private void Client_PacketRecieved(object sender, PacketRecievedEventArgs e) { RoutePacket(e.Packet); }