void Chat::HandleDisconnect(StringHash eventType, VariantMap& eventData) { Network* network = GetSubsystem<Network>(); Connection* serverConnection = network->GetServerConnection(); // If we were connected to server, disconnect if (serverConnection) serverConnection->Disconnect(); // Or if we were running a server, stop it else if (network->IsServerRunning()) network->StopServer(); UpdateButtons(); }
void SceneReplication::HandleDisconnect(StringHash eventType, VariantMap& eventData) { Network* network = GetSubsystem<Network>(); Connection* serverConnection = network->GetServerConnection(); // If we were connected to server, disconnect. Or if we were running a server, stop it. In both cases clear the // scene of all replicated content, but let the local nodes & components (the static world + camera) stay if (serverConnection) { serverConnection->Disconnect(); scene_->Clear(true, false); clientObjectID_ = 0; } // Or if we were running a server, stop it else if (network->IsServerRunning()) { network->StopServer(); scene_->Clear(true, false); } UpdateButtons(); }