From 050a7e87d24acd499601abee1b98b9220f9dd7b0 Mon Sep 17 00:00:00 2001 From: Seth Alves Date: Sun, 15 Jan 2017 17:04:51 -0800 Subject: [PATCH 1/3] load entity models that don't yet need to be rendered but are close enough to keep physics from being enabled. --- .../entities-renderer/src/RenderableModelEntityItem.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/libraries/entities-renderer/src/RenderableModelEntityItem.cpp b/libraries/entities-renderer/src/RenderableModelEntityItem.cpp index b901db38e7..55c766c267 100644 --- a/libraries/entities-renderer/src/RenderableModelEntityItem.cpp +++ b/libraries/entities-renderer/src/RenderableModelEntityItem.cpp @@ -646,6 +646,12 @@ bool RenderableModelEntityItem::isReadyToComputeShape() { // the model is still being downloaded. return false; } else if (type >= SHAPE_TYPE_SIMPLE_HULL && type <= SHAPE_TYPE_STATIC_MESH) { + if (!_model) { + EntityTreePointer tree = getTree(); + if (tree) { + QMetaObject::invokeMethod(tree.get(), "callLoader", Qt::QueuedConnection, Q_ARG(EntityItemID, getID())); + } + } return (_model && _model->isLoaded()); } return true; From bd67715cd2ff44c8f16c6d7966e37bb637559222 Mon Sep 17 00:00:00 2001 From: Seth Alves Date: Mon, 16 Jan 2017 08:54:56 -0800 Subject: [PATCH 2/3] don't early-exit from the loop that checks for loaded collision hulls because the check is what causes the hulls to be constructed --- interface/src/Application.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/interface/src/Application.cpp b/interface/src/Application.cpp index b056a8e378..28f4d54594 100644 --- a/interface/src/Application.cpp +++ b/interface/src/Application.cpp @@ -5294,15 +5294,17 @@ bool Application::nearbyEntitiesAreReadyForPhysics() { if (_nearbyEntitiesStabilityCount >= MINIMUM_NEARBY_ENTITIES_STABILITY_COUNT) { // We've seen the same number of nearby entities for several stats packets in a row. assume we've got all // the local entities. + bool result = true; foreach (EntityItemPointer entity, entities) { if (entity->shouldBePhysical() && !entity->isReadyToComputeShape()) { static QString repeatedMessage = LogHandler::getInstance().addRepeatedMessageRegex("Physics disabled until entity loads: .*"); qCDebug(interfaceapp) << "Physics disabled until entity loads: " << entity->getID() << entity->getName(); - return false; + // don't break here because we want all the relevant entities to start their downloads + result = false; } } - return true; + return result; } return false; } From 5e49e8025ab84d11a8363e058ee5b837961e5b68 Mon Sep 17 00:00:00 2001 From: ZappoMan Date: Mon, 16 Jan 2017 21:06:38 -0600 Subject: [PATCH 3/3] improve comment in domain settings --- domain-server/resources/describe-settings.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/domain-server/resources/describe-settings.json b/domain-server/resources/describe-settings.json index dd0e4ad4a1..c813ffc54c 100644 --- a/domain-server/resources/describe-settings.json +++ b/domain-server/resources/describe-settings.json @@ -40,7 +40,7 @@ { "name": "local_port", "label": "Local UDP Port", - "help": "This is the local port your domain-server binds to for UDP connections.
Depending on your router, this may need to be changed to run multiple full automatic networking domain-servers in the same network.", + "help": "This is the local port your domain-server binds to for UDP connections.
Depending on your router, this may need to be changed to unique values for each domain-server in order to run multiple full automatic networking domain-servers in the same network. You can use the value 0 to have the domain-server select a random port, which will help in preventing port collisions.", "default": "40102", "type": "int", "advanced": true