mirror of
https://github.com/JulianGro/overte.git
synced 2025-04-25 16:55:07 +02:00
clear entity tree in Agent if ES disappears
This commit is contained in:
parent
cb02ff4026
commit
8d0ed51035
2 changed files with 11 additions and 0 deletions
|
@ -184,6 +184,9 @@ void Agent::run() {
|
|||
// make sure we hear about connected nodes so we can grab an ATP script if a request is pending
|
||||
connect(nodeList.data(), &LimitedNodeList::nodeActivated, this, &Agent::nodeActivated);
|
||||
|
||||
// make sure we hear about dissappearing nodes so we can clear the entity tree if an entity server goes away
|
||||
connect(nodeList.data(), &LimitedNodeList::nodeKilled, this, &Agent::nodeKilled);
|
||||
|
||||
nodeList->addSetOfNodeTypesToNodeInterestSet({
|
||||
NodeType::AudioMixer, NodeType::AvatarMixer, NodeType::EntityServer, NodeType::MessagesMixer, NodeType::AssetServer
|
||||
});
|
||||
|
@ -259,6 +262,13 @@ void Agent::nodeActivated(SharedNodePointer activatedNode) {
|
|||
}
|
||||
}
|
||||
|
||||
void Agent::nodeKilled(SharedNodePointer killedNode) {
|
||||
if (killedNode->getType() == NodeType::EntityServer) {
|
||||
// an entity server has gone away, ask the headless viewer to clear its tree
|
||||
_entityViewer.clear();
|
||||
}
|
||||
}
|
||||
|
||||
void Agent::negotiateAudioFormat() {
|
||||
auto nodeList = DependencyManager::get<NodeList>();
|
||||
auto negotiateFormatPacket = NLPacket::create(PacketType::NegotiateAudioFormat);
|
||||
|
|
|
@ -77,6 +77,7 @@ private slots:
|
|||
void handleSelectedAudioFormat(QSharedPointer<ReceivedMessage> message);
|
||||
|
||||
void nodeActivated(SharedNodePointer activatedNode);
|
||||
void nodeKilled(SharedNodePointer killedNode);
|
||||
|
||||
void processAgentAvatar();
|
||||
void processAgentAvatarAudio();
|
||||
|
|
Loading…
Reference in a new issue