public void ReceivePacket(TCPToolkit.Packet packet, int playerID) { IdentificationMessage identification = Serializable.CreateFromBytes <IdentificationMessage>(packet.Data.ArraySegment()); if (identification != null) { lock (m_lock) { if (!m_clientCharacters.ContainsKey(playerID)) // it's a new player { AddNewPlayer(playerID); } #if DEBUG_LOG Debug.Log("Received TCP connection request from player (ID " + playerID + ")"); #endif // DEBUG_LOG ServerSuccessfulConnectMessage serverSuccessPing = new ServerSuccessfulConnectMessage(); m_TCPServer.Send(serverSuccessPing.GetBytes(), playerID); } return; } OnLobbyEnteredMessage lobbyEnter = Serializable.CreateFromBytes <OnLobbyEnteredMessage>(packet.Data.ArraySegment()); if (lobbyEnter != null) { lock (m_lock) { if (m_clientCharacters.ContainsKey(playerID)) { Debug.Log("Adding character " + lobbyEnter.CharacterID.Value + " to player " + playerID); m_clientCharacters[playerID] = lobbyEnter.CharacterID; BroadcastPlayerList(); } } return; } ClientReadyMessage ready = IConvertible.CreateFromBytes <ClientReadyMessage>(packet.Data.ArraySegment()); if (ready != null && m_readyClients.ContainsKey(playerID)) { Debug.Log("Client " + playerID + " is ready to receive world."); m_readyClients[playerID] = true; return; } if (m_awaitingClientLoadWorld) { ClientWorldLoadedMessage clientWorldLoaded = IConvertible.CreateFromBytes <ClientWorldLoadedMessage>(packet.Data.ArraySegment()); if (clientWorldLoaded != null) { m_readyClients.Remove(playerID); } } }
private void OnWorldBuilt() { ClientWorldLoadedMessage worldLoaded = new ClientWorldLoadedMessage(); m_TCPClient.Send(worldLoaded.GetBytes()); }