From 17c0e40347377b29b9b2effd6a047c0e8ba4d442 Mon Sep 17 00:00:00 2001 From: Simon Walton Date: Wed, 27 Feb 2019 16:42:36 -0800 Subject: [PATCH] Add ability to filter on zone-type with JSON filter --- assignment-client/src/avatars/AvatarMixer.cpp | 2 +- libraries/entities/src/EntityItem.cpp | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/assignment-client/src/avatars/AvatarMixer.cpp b/assignment-client/src/avatars/AvatarMixer.cpp index 3064a5cd14..e0f7ae59ee 100644 --- a/assignment-client/src/avatars/AvatarMixer.cpp +++ b/assignment-client/src/avatars/AvatarMixer.cpp @@ -958,7 +958,7 @@ void AvatarMixer::parseDomainServerSettings(const QJsonObject& domainSettings) { } void AvatarMixer::setupEntityQuery() { - static char queryJsonString[] = R"({"avatarPriority": true, "serverScripts": "+"})"; + static char queryJsonString[] = R"({"avatarPriority": true, "type": "Zone"})"; _entityViewer.init(); DependencyManager::registerInheritance(); diff --git a/libraries/entities/src/EntityItem.cpp b/libraries/entities/src/EntityItem.cpp index 3ecbdf497a..7ce8ae2ab9 100644 --- a/libraries/entities/src/EntityItem.cpp +++ b/libraries/entities/src/EntityItem.cpp @@ -2656,6 +2656,7 @@ bool EntityItem::matchesJSONFilters(const QJsonObject& jsonFilters) const { // which means that we only handle a filtered query asking for entities where the serverScripts property is non-default static const QString SERVER_SCRIPTS_PROPERTY = "serverScripts"; + static const QString ENTITY_TYPE_PROPERTY = "type"; foreach(const auto& property, jsonFilters.keys()) { if (property == SERVER_SCRIPTS_PROPERTY && jsonFilters[property] == EntityQueryFilterSymbol::NonDefault) { @@ -2665,6 +2666,8 @@ bool EntityItem::matchesJSONFilters(const QJsonObject& jsonFilters) const { } else { return false; } + } else if (property == ENTITY_TYPE_PROPERTY) { + return (jsonFilters[property] == EntityTypes::getEntityTypeName(getType()) ); } }