public void Update(float time) { switch (this.m_state) { case ServerConnectionState.CONNECT: if (this.m_messaging.IsConnected()) { this.m_state = ServerConnectionState.LOGIN; LoginMessage loginMessage = new LoginMessage(); loginMessage.SetAccountId(this.m_accountInfo.AccountId); loginMessage.SetPassToken(this.m_accountInfo.PassToken); loginMessage.SetClientMajorVersion(LogicVersion.MAJOR_VERSION); loginMessage.SetClientBuildVersion(LogicVersion.BUILD_VERSION); loginMessage.SetResourceSha(ResourceManager.FINGERPRINT_SHA); loginMessage.SetDevice(Assembly.GetExecutingAssembly().FullName); loginMessage.SetScramblerSeed(this.m_messaging.GetScramblerSeed()); this.m_messaging.Send(loginMessage); } break; case ServerConnectionState.LOGIN: case ServerConnectionState.LOGGED: while (this.m_messaging.TryDequeueReceiveMessage(out PiranhaMessage piranhaMessage)) { this.m_messageManager.ReceiveMessage(piranhaMessage); } this.m_messageManager.Update(time); this.m_messaging.SendQueue(); break; } }