public void UpdateData(VNetMessageSessionAvailable netMessage) { host = VNetSimpleClientData.ComponentCopy(netMessage.host); host.ip = netMessage._packet.IP_Port.Address; host.port = netMessage._packet.IP_Port.Port; numClients = netMessage.numClients; for (int i = 0; i < numClients; i++) { clients[i] = VNetSimpleClientData.ComponentCopy(netMessage.client[i]); } sessionUID = netMessage.UID; discoveredTime = VNetTimer.Inst.GetSystemTimeNow(); }
public override VNetMessage Clone() { VNetMessageSessionAvailable clone = (VNetMessageSessionAvailable)base.Clone(); clone.UID = UID; clone.sessionAvaliable = sessionAvaliable; clone.numClients = numClients; // copy client data clone.host = VNetSimpleClientData.ComponentCopy(host); for (int i = 0; i < clone.client.Length; i++) { clone.client[i] = VNetSimpleClientData.ComponentCopy(client[i]); } return(clone); }
void UpdateLookingForClients() { // see if we should send a message m_lookingForClientsTimer -= VNetTimer.Inst.GetFrameTimeFloat(); if (m_lookingForClientsTimer > 0.0f) { return; } m_lookingForClientsTimer = VNetCommon.NET_HOST_LOBBY_SEND_TIME; // Send out a game message VNetMessageSessionAvailable session = new VNetMessageSessionAvailable(); session.UID = VNetSession.Inst.GetSessionUID(); session.sessionAvaliable = 1; session.host = new VNetSimpleClientData(); session.host.active = 1; session.host.uid = VNet.Inst.GetUID(); session.host.ip = null; session.host.port = 0; session.host.role = m_hostRole; VNetPlatform.FillLocalUsername(ref session.host.name); session.numClients = (SByte)VNetSession.Inst.GetNumConnectedClients(); int i = 0; foreach (VNetClient client in VNetSession.Inst.m_clientsByUID.Values) { session.client[i] = new VNetLib.VNetSimpleClientData(); session.client[i].active = 0; if (client.GetIsActive()) { session.client[i].active = 1; session.client[i].ip = client.GetIP(); session.client[i].port = client.GetPort(); session.client[i].name = client.GetName(); session.client[i].role = client.GetRole(); } } VNet.Inst.SendToGlobal(session); }
public void AddOrUpdateSession(VNetMessageSessionAvailable session) { if (VNetSession.Inst.GetSessionState() == VNetSessionState.InSession) { return; } // Not found if (m_openSessions.ContainsKey(session.UID) == false) { VNetOpenSession newSession = new VNetOpenSession(); newSession.UpdateData(session); m_openSessions.Add(session.UID, newSession); } else { m_openSessions[session.UID].UpdateData(session); } }