Adds Links to Gem Directory and Documentation for Gems (#2922)

* Changed blue text to white that is not meant as a link, made 'View in Director' link work for gems in the inspector, added parsing for gem documentation link

Signed-off-by: nggieber <nggieber@amazon.com>

* Added documentation links for gems, changed markup for urls in summaries and requirements so they are clickable

Signed-off-by: nggieber <nggieber@amazon.com>

* Fixed a couple of the documentation links

Signed-off-by: nggieber <nggieber@amazon.com>

* Added documentation url to edit gem properties script and updated unit tests

Signed-off-by: nggieber <nggieber@amazon.com>
This commit is contained in:
AMZN-nggieber
2021-08-06 08:19:35 -07:00
committed by GitHub
parent 5a05fe93d4
commit 2c7f6f9742
83 changed files with 240 additions and 148 deletions
@@ -108,7 +108,7 @@ namespace O3DE::ProjectManager
{
// Gem name, creator and summary
m_nameLabel = CreateStyledLabel(m_mainLayout, 18, s_headerColor);
m_creatorLabel = CreateStyledLabel(m_mainLayout, 12, s_creatorColor);
m_creatorLabel = CreateStyledLabel(m_mainLayout, 12, s_headerColor);
m_mainLayout->addSpacing(5);
// TODO: QLabel seems to have issues determining the right sizeHint() for our font with the given font size.
@@ -116,6 +116,8 @@ namespace O3DE::ProjectManager
m_summaryLabel = CreateStyledLabel(m_mainLayout, 12, s_textColor);
m_mainLayout->addWidget(m_summaryLabel);
m_summaryLabel->setWordWrap(true);
m_summaryLabel->setTextInteractionFlags(Qt::TextBrowserInteraction);
m_summaryLabel->setOpenExternalLinks(true);
m_mainLayout->addSpacing(5);
// Directory and documentation links
@@ -161,6 +163,8 @@ namespace O3DE::ProjectManager
m_reqirementsTextLabel = GemInspector::CreateStyledLabel(requrementsLayout, 10, s_textColor);
m_reqirementsTextLabel->setWordWrap(true);
m_reqirementsTextLabel->setTextInteractionFlags(Qt::TextBrowserInteraction);
m_reqirementsTextLabel->setOpenExternalLinks(true);
QSpacerItem* reqirementsSpacer = new QSpacerItem(0, 0, QSizePolicy::Expanding);
requrementsLayout->addSpacerItem(reqirementsSpacer);
@@ -38,7 +38,6 @@ namespace O3DE::ProjectManager
// Colors
inline constexpr static const char* s_headerColor = "#FFFFFF";
inline constexpr static const char* s_textColor = "#DDDDDD";
inline constexpr static const char* s_creatorColor = "#94D2FF";
private slots:
void OnSelectionChanged(const QItemSelection& selected, const QItemSelection& deselected);
@@ -95,7 +95,6 @@ namespace O3DE::ProjectManager
gemCreatorRect.moveTo(contentRect.left(), contentRect.top() + gemNameRect.height());
painter->setFont(standardFont);
painter->setPen(m_linkColor);
gemCreatorRect = painter->boundingRect(gemCreatorRect, Qt::TextSingleLine, gemCreator);
painter->drawText(gemCreatorRect, Qt::TextSingleLine, gemCreator);
@@ -646,6 +646,7 @@ namespace O3DE::ProjectManager
{
GemInfo gemInfo;
gemInfo.m_path = Py_To_String(path);
gemInfo.m_directoryLink = gemInfo.m_path;
auto data = m_manifest.attr("get_gem_json_data")(pybind11::none(), path, pyProjectPath);
if (pybind11::isinstance<pybind11::dict>(data))
@@ -661,6 +662,7 @@ namespace O3DE::ProjectManager
gemInfo.m_version = "";
gemInfo.m_requirement = Py_To_String_Optional(data, "requirements", "");
gemInfo.m_creator = Py_To_String_Optional(data, "origin", "");
gemInfo.m_documentationLink = Py_To_String_Optional(data, "documentation_url", "");
if (gemInfo.m_creator.contains("Open 3D Engine"))
{
+2 -1
View File
@@ -8,5 +8,6 @@
"canonical_tags": ["Gem"],
"user_tags": ["AWS", "Network", "SDK"],
"icon_path": "preview.png",
"requirements": ""
"requirements": "",
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/aws/aws-client-auth/"
}
+2 -1
View File
@@ -8,5 +8,6 @@
"canonical_tags": ["Gem"],
"user_tags": ["AWS", "Network", "SDK"],
"icon_path": "preview.png",
"requirements": ""
"requirements": "",
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/aws/aws-core/"
}
+2 -1
View File
@@ -8,5 +8,6 @@
"canonical_tags": ["Gem"],
"user_tags": ["AWS", "Framework", "Network"],
"icon_path": "preview.png",
"requirements": ""
"requirements": "",
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/aws/aws-gamelift/"
}
+2 -1
View File
@@ -8,5 +8,6 @@
"canonical_tags": ["Gem"],
"user_tags": ["AWS", "Network", "SDK"],
"icon_path": "preview.png",
"requirements": ""
"requirements": "",
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/aws/aws-metrics/"
}
+2 -1
View File
@@ -8,5 +8,6 @@
"canonical_tags": ["Gem"],
"user_tags": ["Gameplay", "Achievements"],
"icon_path": "preview.png",
"requirements": ""
"requirements": "",
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/gameplay/achievements/"
}
+2 -1
View File
@@ -8,5 +8,6 @@
"canonical_tags": ["Gem"],
"user_tags": ["Debug", "Utility", "Tools"],
"icon_path": "preview.png",
"requirements": ""
"requirements": "",
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/debug/asset-memory-analyzer/"
}
+2 -1
View File
@@ -8,5 +8,6 @@
"canonical_tags": ["Gem"],
"user_tags": ["Assets", "Utility", "Scripting"],
"icon_path": "preview.png",
"requirements": ""
"requirements": "",
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/assets/asset-validation/"
}
+2 -1
View File
@@ -8,5 +8,6 @@
"canonical_tags": ["Gem"],
"user_tags": ["Rendering", "Core"],
"icon_path": "preview.png",
"requirements": ""
"requirements": "",
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/rendering/atom/atom/"
}
+3 -2
View File
@@ -4,9 +4,10 @@
"license": "Apache-2.0 Or MIT",
"origin": "Open 3D Engine - o3de.org",
"type": "Asset",
"summary": "The Atom Content Gem provides assets for Atom Renderer and a modified version of the Pixar Look Development Studio (https://renderman.pixar.com/look-development-studio).",
"summary": "The Atom Content Gem provides assets for Atom Renderer and a modified version of the <a href='https://renderman.pixar.com/look-development-studio'>Pixar Look Development Studio</a>.",
"canonical_tags": ["Gem"],
"user_tags": ["Rendering", "Assets", "Tools"],
"icon_path": "preview.png",
"requirements": ""
"requirements": "",
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/rendering/atom/atom-content/"
}
+2 -1
View File
@@ -8,5 +8,6 @@
"canonical_tags": ["Gem"],
"user_tags": ["Rendering", "Core", "Utility"],
"icon_path": "preview.png",
"requirements": ""
"requirements": "",
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/rendering/atom/atom-ly-integration/"
}
+2 -1
View File
@@ -8,5 +8,6 @@
"canonical_tags": ["Gem"],
"user_tags": ["Rendering", "Physics", "Animation"],
"icon_path": "preview.png",
"requirements": ""
"requirements": "",
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/rendering/amd/atom-tressfx/"
}
+2 -1
View File
@@ -8,5 +8,6 @@
"canonical_tags": ["Gem"],
"user_tags": ["Audio", "Utility", "Tools"],
"icon_path": "preview.png",
"requirements": "Users will need to download Wwise from the Audiokinetic web site: https://www.audiokinetic.com/download/"
"requirements": "Users will need to download Wwise from the <a href='https://www.audiokinetic.com/download/'>Audiokinetic Web Site</a>.",
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/audio/wwise/audio-engine-wwise/"
}
+2 -1
View File
@@ -8,5 +8,6 @@
"canonical_tags": ["Gem"],
"user_tags": ["Audio", "Utility", "Tools"],
"icon_path": "preview.png",
"requirements": ""
"requirements": "",
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/audio/audio-system/"
}
+2 -1
View File
@@ -8,5 +8,6 @@
"canonical_tags": ["Gem"],
"user_tags": ["Physics", "Simulation", "Animation"],
"icon_path": "preview.png",
"requirements": ""
"requirements": "",
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/physics/nvidia/nvidia-blast/"
}
+2 -1
View File
@@ -8,5 +8,6 @@
"canonical_tags": ["Gem"],
"user_tags": ["Rendering", "Utility"],
"icon_path": "preview.png",
"requirements": ""
"requirements": "",
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/rendering/camera/"
}
+2 -1
View File
@@ -8,5 +8,6 @@
"canonical_tags": ["Gem"],
"user_tags": ["Rendering", "Framework", "Utility"],
"icon_path": "preview.png",
"requirements": ""
"requirements": "",
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/rendering/camera-framework/"
}
+2 -1
View File
@@ -8,5 +8,6 @@
"canonical_tags": ["Gem"],
"user_tags": ["Network", "Framework"],
"icon_path": "preview.png",
"requirements": ""
"requirements": "",
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/network/certificate-manager/"
}
+2 -1
View File
@@ -8,5 +8,6 @@
"canonical_tags": ["Gem"],
"user_tags": ["Debug", "Framework"],
"icon_path": "preview.png",
"requirements": ""
"requirements": "",
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/debug/crash-reporting/"
}
+2 -1
View File
@@ -8,5 +8,6 @@
"canonical_tags": ["Gem"],
"user_tags": ["Assets", "Tools"],
"icon_path": "preview.png",
"requirements": ""
"requirements": "",
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/assets/custom-asset-example/"
}
+2 -1
View File
@@ -8,5 +8,6 @@
"canonical_tags": ["Gem"],
"user_tags": ["Debug", "Tools", "Utility"],
"icon_path": "preview.png",
"requirements": ""
"requirements": "",
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/debug/debug-draw/"
}
+2 -1
View File
@@ -8,5 +8,6 @@
"canonical_tags": ["Gem"],
"user_tags": ["Assets", "Debug", "Utility"],
"icon_path": "preview.png",
"requirements": ""
"requirements": "",
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/assets/dev-textures/"
}
+2 -1
View File
@@ -8,5 +8,6 @@
"canonical_tags": ["Gem"],
"user_tags": ["Animation", "Tools", "Simulation"],
"icon_path": "preview.png",
"requirements": ""
"requirements": "",
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/animation/emotionfx/"
}
+11 -10
View File
@@ -1,12 +1,13 @@
{
"gem_name": "EditorPythonBindings",
"display_name": "Editor Python Bindings",
"license": "Apache-2.0 Or MIT",
"origin": "Open 3D Engine - o3de.org",
"type": "Tool",
"summary": "The Editor Python Bindings Gem provides Python commands for Open 3D Engine Editor functions.",
"canonical_tags": ["Gem"],
"user_tags": ["Scripting", "Utility"],
"icon_path": "preview.png",
"requirements": ""
"gem_name": "EditorPythonBindings",
"display_name": "Editor Python Bindings",
"license": "Apache-2.0 Or MIT",
"origin": "Open 3D Engine - o3de.org",
"type": "Tool",
"summary": "The Editor Python Bindings Gem provides Python commands for Open 3D Engine Editor functions.",
"canonical_tags": ["Gem"],
"user_tags": ["Scripting", "Utility"],
"icon_path": "preview.png",
"requirements": "",
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/script/python/editor-python-bindings/"
}
+2 -1
View File
@@ -8,5 +8,6 @@
"canonical_tags": ["Gem"],
"user_tags": ["Scripting", "Utility"],
"icon_path": "preview.png",
"requirements": ""
"requirements": "",
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/script/expression-evaluation/"
}
+2 -1
View File
@@ -8,5 +8,6 @@
"canonical_tags": ["Gem"],
"user_tags": ["Utility", "Tools", "Design"],
"icon_path": "preview.png",
"requirements": ""
"requirements": "",
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/utility/fast-noise/"
}
+2 -1
View File
@@ -8,5 +8,6 @@
"canonical_tags": ["Gem"],
"user_tags": ["Gameplay", "Framework", "Scripting"],
"icon_path": "preview.png",
"requirements": ""
"requirements": "",
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/gameplay/game-state/"
}
+2 -1
View File
@@ -8,5 +8,6 @@
"canonical_tags": ["Gem"],
"user_tags": ["Gameplay", "Sample", "Assets"],
"icon_path": "preview.png",
"requirements": ""
"requirements": "",
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/gameplay/game-state-samples/"
}
+2 -1
View File
@@ -8,5 +8,6 @@
"canonical_tags": ["Gem"],
"user_tags": ["Input", "Gameplay", "Scripting"],
"icon_path": "preview.png",
"requirements": ""
"requirements": "",
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/input/gestures/"
}
+2 -1
View File
@@ -8,5 +8,6 @@
"canonical_tags": ["Gem"],
"user_tags": ["Utility", "Tools", "Design"],
"icon_path": "preview.png",
"requirements": ""
"requirements": "",
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/utility/gradient-signal/"
}
+2 -1
View File
@@ -8,5 +8,6 @@
"canonical_tags": ["Gem"],
"user_tags": ["Framework", "Tools", "Utility"],
"icon_path": "preview.png",
"requirements": ""
"requirements": "",
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/framework/graph-canvas/"
}
+2 -1
View File
@@ -8,5 +8,6 @@
"canonical_tags": ["Gem"],
"user_tags": ["Framework", "Tools", "Utility"],
"icon_path": "preview.png",
"requirements": ""
"requirements": "",
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/framework/graph-model/"
}
+2 -1
View File
@@ -8,5 +8,6 @@
"canonical_tags": ["Gem"],
"user_tags": ["Network", "Utility"],
"icon_path": "preview.png",
"requirements": ""
"requirements": "",
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/network/http-requestor/"
}
+2 -1
View File
@@ -8,5 +8,6 @@
"canonical_tags": ["Gem"],
"user_tags": ["Debug", "Rendering", "Framework"],
"icon_path": "preview.png",
"requirements": ""
"requirements": "",
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/debug/imgui/"
}
+2 -1
View File
@@ -8,5 +8,6 @@
"canonical_tags": ["Gem"],
"user_tags": ["SDK", "Network"],
"icon_path": "preview.png",
"requirements": ""
"requirements": "",
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/sdk/in-app-purchases/"
}
+2 -1
View File
@@ -8,5 +8,6 @@
"canonical_tags": ["Gem"],
"user_tags": ["Environment", "Design", "Tools"],
"icon_path": "preview.png",
"requirements": ""
"requirements": "",
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/environment/landscape-canvas/"
}
+2 -1
View File
@@ -8,6 +8,7 @@
"canonical_tags": ["Gem"],
"user_tags": ["Core", "Framework", "Assets"],
"icon_path": "preview.png",
"requirements": ""
"requirements": "",
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/core/lmbr-central/"
}
+2 -1
View File
@@ -8,5 +8,6 @@
"canonical_tags": ["Gem"],
"user_tags": ["Input", "Gameplay", "Scripting"],
"icon_path": "preview.png",
"requirements": ""
"requirements": "",
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/input/local-user/"
}
+2 -1
View File
@@ -8,5 +8,6 @@
"canonical_tags": ["Gem"],
"user_tags": ["UI", "Tools", "Framework"],
"icon_path": "preview.png",
"requirements": ""
"requirements": "",
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/ui/lyshine/"
}
+2 -1
View File
@@ -8,5 +8,6 @@
"canonical_tags": ["Gem"],
"user_tags": ["UI", "Sample", "Assets"],
"icon_path": "preview.png",
"requirements": ""
"requirements": "",
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/ui/lyshine-examples/"
}
+2 -1
View File
@@ -8,6 +8,7 @@
"canonical_tags": ["Gem"],
"user_tags": ["Animation", "Tools", "Scripting"],
"icon_path": "preview.png",
"requirements": ""
"requirements": "",
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/animation/maestro/"
}
+2 -1
View File
@@ -8,5 +8,6 @@
"canonical_tags": ["Gem"],
"user_tags": ["Gameplay", "Sample"],
"icon_path": "preview.png",
"requirements": ""
"requirements": "",
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/ui/message-popup/"
}
+2 -1
View File
@@ -8,5 +8,6 @@
"canonical_tags": ["Gem"],
"user_tags": ["Gameplay", "Network", "Framework"],
"icon_path": "preview.png",
"requirements": ""
"requirements": "",
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/network/twitch/metastream/"
}
+2 -1
View File
@@ -8,5 +8,6 @@
"canonical_tags": ["Gem"],
"user_tags": ["Audio", "Input"],
"icon_path": "preview.png",
"requirements": ""
"requirements": "",
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/audio/microphone/"
}
+2 -1
View File
@@ -8,5 +8,6 @@
"canonical_tags": ["Gem"],
"user_tags": ["Multiplayer", "Network", "Utility"],
"icon_path": "preview.png",
"requirements": ""
"requirements": "",
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/multiplayer/multiplayer-compression/"
}
+2 -1
View File
@@ -8,5 +8,6 @@
"canonical_tags": ["Gem"],
"user_tags": ["Physics", "Simulation", "SDK"],
"icon_path": "preview.png",
"requirements": ""
"requirements": "",
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/physics/nvidia/nvidia-cloth/"
}
+2 -1
View File
@@ -8,5 +8,6 @@
"canonical_tags": ["Gem"],
"user_tags": ["Rendering", "Sample", "Assets"],
"icon_path": "preview.png",
"requirements": ""
"requirements": "",
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/rendering/pbs-reference-materials/"
}
+2 -1
View File
@@ -8,5 +8,6 @@
"canonical_tags": ["Gem"],
"user_tags": ["Physics", "Simulation", "SDK"],
"icon_path": "preview.png",
"requirements": ""
"requirements": "",
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/physics/nvidia/physx/"
}
+2 -1
View File
@@ -8,5 +8,6 @@
"canonical_tags": ["Gem"],
"user_tags": ["Physics", "Simulation", "Debug"],
"icon_path": "preview.png",
"requirements": ""
"requirements": "",
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/physics/nvidia/physx-debug/"
}
+2 -1
View File
@@ -8,5 +8,6 @@
"canonical_tags": ["Gem"],
"user_tags": ["Physics", "Simulation", "Sample"],
"icon_path": "preview.png",
"requirements": ""
"requirements": "",
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/physics/nvidia/physx-samples/"
}
+2 -1
View File
@@ -8,5 +8,6 @@
"canonical_tags": ["Gem"],
"user_tags": ["Assets", "Utility", "Core"],
"icon_path": "preview.png",
"requirements": ""
"requirements": "",
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/assets/prefab/"
}
+2 -1
View File
@@ -8,5 +8,6 @@
"canonical_tags": ["Gem"],
"user_tags": ["Network", "Gameplay", "Framework"],
"icon_path": "preview.png",
"requirements": ""
"requirements": "",
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/network/presence/"
}
+2 -1
View File
@@ -8,5 +8,6 @@
"canonical_tags": ["Gem"],
"user_tags": ["Assets", "Sample", "Debug"],
"icon_path": "preview.png",
"requirements": ""
"requirements": "",
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/assets/primitive-assets/"
}
+11 -10
View File
@@ -1,12 +1,13 @@
{
"gem_name": "PythonAssetBuilder",
"display_name": "Python Asset Builder",
"license": "Apache-2.0 Or MIT",
"origin": "Open 3D Engine - o3de.org",
"type": "Code",
"summary": "The Python Asset Builder Gem provides functionality to implement custom asset builders in Python for Asset Processor.",
"canonical_tags": ["Gem"],
"user_tags": ["Scripting", "Assets", "Utility"],
"icon_path": "preview.png",
"requirements": ""
"gem_name": "PythonAssetBuilder",
"display_name": "Python Asset Builder",
"license": "Apache-2.0 Or MIT",
"origin": "Open 3D Engine - o3de.org",
"type": "Code",
"summary": "The Python Asset Builder Gem provides functionality to implement custom asset builders in Python for Asset Processor.",
"canonical_tags": ["Gem"],
"user_tags": ["Scripting", "Assets", "Utility"],
"icon_path": "preview.png",
"requirements": "",
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/script/python/python-asset-builder/"
}
+3 -2
View File
@@ -8,5 +8,6 @@
"canonical_tags": ["Gem"],
"user_tags": ["Scripting", "UI", "Framework"],
"icon_path": "preview.png",
"requirements": ""
}
"requirements": "",
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/script/python/qt-for-python/"
}
+2 -1
View File
@@ -8,5 +8,6 @@
"canonical_tags": ["Gem"],
"user_tags": ["Debug", "SDK"],
"icon_path": "preview.png",
"requirements": ""
"requirements": "",
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/debug/rad/rad-telemetry/"
}
+3 -2
View File
@@ -8,5 +8,6 @@
"canonical_tags": ["Gem"],
"user_tags": ["Utility", "Gameplay"],
"icon_path": "preview.png",
"requirements": ""
}
"requirements": "",
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/utility/save-data/"
}
+3 -2
View File
@@ -8,5 +8,6 @@
"canonical_tags": ["Gem"],
"user_tags": ["Debug", "Sample"],
"icon_path": "preview.png",
"requirements": ""
}
"requirements": "",
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/utility/scene-logging-example/"
}
+3 -2
View File
@@ -8,5 +8,6 @@
"canonical_tags": ["Gem"],
"user_tags": ["Assets", "Tools", "Core"],
"icon_path": "preview.png",
"requirements": ""
}
"requirements": "",
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/assets/scene-processing/"
}
+11 -10
View File
@@ -1,12 +1,13 @@
{
"gem_name": "ScriptCanvas",
"display_name": "Script Canvas",
"license": "Apache-2.0 Or MIT",
"origin": "Open 3D Engine - o3de.org",
"type": "Tool",
"summary": "The Script Canvas Gem provides Open 3D Engine's visual scripting environment, Script Canvas.",
"canonical_tags": ["Gem"],
"user_tags": ["Scripting", "Tools", "Utility"],
"icon_path": "preview.png",
"requirements": ""
"gem_name": "ScriptCanvas",
"display_name": "Script Canvas",
"license": "Apache-2.0 Or MIT",
"origin": "Open 3D Engine - o3de.org",
"type": "Tool",
"summary": "The Script Canvas Gem provides Open 3D Engine's visual scripting environment, Script Canvas.",
"canonical_tags": ["Gem"],
"user_tags": ["Scripting", "Tools", "Utility"],
"icon_path": "preview.png",
"requirements": "",
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/script/script-canvas/"
}
+3 -2
View File
@@ -8,5 +8,6 @@
"canonical_tags": ["Gem"],
"user_tags": ["Scripting", "Utility", "Debug"],
"icon_path": "preview.png",
"requirements": ""
}
"requirements": "",
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/script/script-canvas-developer/"
}
+3 -2
View File
@@ -8,5 +8,6 @@
"canonical_tags": ["Gem"],
"user_tags": ["Scripting", "Physics", "Simulation"],
"icon_path": "preview.png",
"requirements": ""
}
"requirements": "",
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/script/script-canvas-physics/"
}
+11 -10
View File
@@ -1,12 +1,13 @@
{
"gem_name": "ScriptCanvasTesting",
"display_name": "Script Canvas Testing",
"license": "Apache-2.0 Or MIT",
"origin": "Open 3D Engine - o3de.org",
"type": "Tool",
"summary": "The Script Canvas Testing Gem provides a framework for testing for and with Script Canvas.",
"canonical_tags": ["Gem"],
"user_tags": ["Scripting", "Debug", "Framework"],
"icon_path": "preview.png",
"requirements": ""
"gem_name": "ScriptCanvasTesting",
"display_name": "Script Canvas Testing",
"license": "Apache-2.0 Or MIT",
"origin": "Open 3D Engine - o3de.org",
"type": "Tool",
"summary": "The Script Canvas Testing Gem provides a framework for testing for and with Script Canvas.",
"canonical_tags": ["Gem"],
"user_tags": ["Scripting", "Debug", "Framework"],
"icon_path": "preview.png",
"requirements": "",
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/script/script-canvas-testing/"
}
+11 -10
View File
@@ -1,12 +1,13 @@
{
"gem_name": "ScriptEvents",
"display_name": "Script Events",
"license": "Apache-2.0 Or MIT",
"origin": "Open 3D Engine - o3de.org",
"type": "Code",
"summary": "The Script Events Gem provides a framework for creating event assets usable from any scripting solution in Open 3D Engine.",
"canonical_tags": ["Gem"],
"user_tags": ["Scripting", "Framework", "Gameplay"],
"icon_path": "preview.png",
"requirements": ""
"gem_name": "ScriptEvents",
"display_name": "Script Events",
"license": "Apache-2.0 Or MIT",
"origin": "Open 3D Engine - o3de.org",
"type": "Code",
"summary": "The Script Events Gem provides a framework for creating event assets usable from any scripting solution in Open 3D Engine.",
"canonical_tags": ["Gem"],
"user_tags": ["Scripting", "Framework", "Gameplay"],
"icon_path": "preview.png",
"requirements": "",
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/script/script-events/"
}
+3 -2
View File
@@ -8,5 +8,6 @@
"canonical_tags": ["Gem"],
"user_tags": ["Scripting", "UI", "Animation"],
"icon_path": "preview.png",
"requirements": ""
}
"requirements": "",
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/script/scripted-entity-tweener/"
}
+2 -1
View File
@@ -8,5 +8,6 @@
"canonical_tags": ["Gem"],
"user_tags": ["Rendering", "Gameplay", "Scripting"],
"icon_path": "preview.png",
"requirements": ""
"requirements": "",
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/rendering/starting-point-camera/"
}
+2 -1
View File
@@ -8,5 +8,6 @@
"canonical_tags": ["Gem"],
"user_tags": ["Input", "Gameplay", "Scripting"],
"icon_path": "preview.png",
"requirements": ""
"requirements": "",
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/input/starting-point-input/"
}
+2 -1
View File
@@ -8,5 +8,6 @@
"canonical_tags": ["Gem"],
"user_tags": ["Input", "Gameplay", "Scripting"],
"icon_path": "preview.png",
"requirements": ""
"requirements": "",
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/input/starting-point-movement/"
}
+2 -1
View File
@@ -8,5 +8,6 @@
"canonical_tags": ["Gem"],
"user_tags": ["Environment", "Utility", "Design"],
"icon_path": "preview.png",
"requirements": ""
"requirements": "",
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/environment/surface-data/"
}
+2 -1
View File
@@ -8,5 +8,6 @@
"canonical_tags": ["Gem"],
"user_tags": ["Assets", "Debug", "Utility"],
"icon_path": "preview.png",
"requirements": ""
"requirements": "",
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/assets/test-asset-builder/"
}
+2 -1
View File
@@ -8,5 +8,6 @@
"canonical_tags": ["Gem"],
"user_tags": ["Rendering", "Assets", "Utility"],
"icon_path": "preview.png",
"requirements": ""
"requirements": "",
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/utility/texture-atlas/"
}
+2 -1
View File
@@ -8,5 +8,6 @@
"canonical_tags": ["Gem"],
"user_tags": ["Gameplay", "Simulation", "Utility"],
"icon_path": "preview.png",
"requirements": ""
"requirements": "",
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/gameplay/tick-bus-order-viewer/"
}
+2 -1
View File
@@ -8,5 +8,6 @@
"canonical_tags": ["Gem"],
"user_tags": ["Network", "SDK", "Multiplayer"],
"icon_path": "preview.png",
"requirements": ""
"requirements": "",
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/network/twitch/twitch/"
}
+2 -1
View File
@@ -8,5 +8,6 @@
"canonical_tags": ["Gem"],
"user_tags": ["UI", "Assets", "Utility"],
"icon_path": "preview.png",
"requirements": ""
"requirements": "",
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/ui/ui-basics/"
}
+2 -1
View File
@@ -8,5 +8,6 @@
"canonical_tags": ["Gem"],
"user_tags": ["Environment", "Tools", "Design"],
"icon_path": "preview.png",
"requirements": ""
"requirements": "",
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/environment/vegetation/"
}
+2 -1
View File
@@ -8,5 +8,6 @@
"canonical_tags": ["Gem"],
"user_tags": ["Rendering", "Framework"],
"icon_path": "preview.png",
"requirements": ""
"requirements": "",
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/rendering/video-playback-framework/"
}
+2 -1
View File
@@ -8,5 +8,6 @@
"canonical_tags": ["Gem"],
"user_tags": ["Input", "Gameplay"],
"icon_path": "preview.png",
"requirements": ""
"requirements": "",
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/input/virtual-gamepad/"
}
+2 -1
View File
@@ -8,5 +8,6 @@
"canonical_tags": ["Gem"],
"user_tags": ["Design", "Tools", "Utility"],
"icon_path": "preview.png",
"requirements": ""
"requirements": "",
"documentation_url": "https://o3de.org/docs/user-guide/gems/reference/design/white-box/"
}
+12 -6
View File
@@ -53,6 +53,7 @@ def edit_gem_props(gem_path: pathlib.Path = None,
new_summary: str = None,
new_icon: str = None,
new_requirements: str = None,
new_documentation_url: str = None,
new_tags: list or str = None,
remove_tags: list or str = None,
replace_tags: list or str = None,
@@ -90,7 +91,9 @@ def edit_gem_props(gem_path: pathlib.Path = None,
if new_icon:
update_key_dict['icon_path'] = new_icon
if new_requirements:
update_key_dict['icon_requirements'] = new_requirements
update_key_dict['requirements'] = new_requirements
if new_documentation_url:
update_key_dict['documentation_url'] = new_documentation_url
update_key_dict['user_tags'] = update_values_in_key_list(gem_json_data.get('user_tags', []), new_tags,
remove_tags, replace_tags)
@@ -110,6 +113,7 @@ def _edit_gem_props(args: argparse) -> int:
args.gem_summary,
args.gem_icon,
args.gem_requirements,
args.gem_documentation_url,
args.add_tags,
args.remove_tags,
args.replace_tags)
@@ -129,20 +133,22 @@ def add_parser_args(parser):
group.add_argument('-go', '--gem-origin', type=str, required=False,
help='Sets description for gem origin.')
group.add_argument('-gt', '--gem-type', type=str, required=False, choices=['Code', 'Tool', 'Asset'],
help='Sets the gem type. Can only be one of the selected choices')
help='Sets the gem type. Can only be one of the selected choices.')
group.add_argument('-gs', '--gem-summary', type=str, required=False,
help='Sets the summary description of the gem.')
group.add_argument('-gi', '--gem-icon', type=str, required=False,
help='Sets the path to the projects icon resource.')
group.add_argument('-gr', '--gem-requirements', type=str, required=False,
help='Sets the description of the requirements needed to use the gem')
help='Sets the description of the requirements needed to use the gem.')
group.add_argument('-gdu', '--gem-documentation-url', type=str, required=False,
help='Sets the url for documentation of the gem.')
group = parser.add_mutually_exclusive_group(required=False)
group.add_argument('-at', '--add-tags', type=str, nargs='*', required=False,
help='Adds tag(s) to user_tags property. Can be specified multiple times')
help='Adds tag(s) to user_tags property. Can be specified multiple times.')
group.add_argument('-dt', '--remove-tags', type=str, nargs='*', required=False,
help='Removes tag(s) from the user_tags property. Can be specified multiple times')
help='Removes tag(s) from the user_tags property. Can be specified multiple times.')
group.add_argument('-rt', '--replace-tags', type=str, nargs='*', required=False,
help='Replace tag(s) in user_tags property. Can be specified multiple times')
help='Replace tag(s) in user_tags property. Can be specified multiple times.')
parser.set_defaults(func=_edit_gem_props)
+14 -9
View File
@@ -29,7 +29,8 @@ TEST_GEM_JSON_PAYLOAD = '''
"TestGem"
],
"icon_path": "preview.png",
"requirements": ""
"requirements": "",
"documentation_url": "https://o3de.org/docs/"
}
'''
@@ -44,24 +45,26 @@ def init_gem_json_data(request):
@pytest.mark.usefixtures('init_gem_json_data')
class TestEditGemProperties:
@pytest.mark.parametrize("gem_path, gem_name, gem_new_name, gem_display, gem_origin,\
gem_type, gem_summary, gem_icon, gem_requirements,\
gem_type, gem_summary, gem_icon, gem_requirements, gem_documentation_url,\
add_tags, remove_tags, replace_tags, expected_tags, expected_result", [
pytest.param(pathlib.PurePath('D:/TestProject'),
None, 'TestGem2', 'New Gem Name', 'O3DE', 'Code', 'Gem that exercises Default Gem Template',
'preview.png', '',
'new_preview.png', 'Do this extra thing', 'https://o3de.org/docs/user-guide/gems/',
['Physics', 'Rendering', 'Scripting'], None, None, ['TestGem', 'Physics', 'Rendering', 'Scripting'],
0),
pytest.param(None,
'TestGem2', None, 'New Gem Name', 'O3DE', 'Asset', 'Gem that exercises Default Gem Template',
'preview.png', '', None, ['Physics'], None, ['TestGem', 'Rendering', 'Scripting'], 0),
'new_preview.png', 'Do this extra thing', 'https://o3de.org/docs/user-guide/gems/', None,
['Physics'], None, ['TestGem', 'Rendering', 'Scripting'], 0),
pytest.param(None,
'TestGem2', None, 'New Gem Name', 'O3DE', 'Tool', 'Gem that exercises Default Gem Template',
'preview.png', '', None, None, ['Animation', 'TestGem'], ['Animation', 'TestGem'], 0)
'new_preview.png', 'Do this extra thing', 'https://o3de.org/docs/user-guide/gems/', None,
None, ['Animation', 'TestGem'], ['Animation', 'TestGem'], 0)
]
)
def test_edit_gem_properties(self, gem_path, gem_name, gem_new_name, gem_display, gem_origin,
gem_type, gem_summary, gem_icon, gem_requirements,
add_tags, remove_tags, replace_tags,
gem_type, gem_summary, gem_icon, gem_requirements,
gem_documentation_url, add_tags, remove_tags, replace_tags,
expected_tags, expected_result):
def get_gem_json_data(gem_path: pathlib.Path) -> dict:
@@ -79,7 +82,7 @@ class TestEditGemProperties:
patch('o3de.manifest.get_registered', side_effect=get_gem_path) as get_registered_patch:
result = gem_properties.edit_gem_props(gem_path, gem_name, gem_new_name, gem_display, gem_origin,
gem_type, gem_summary, gem_icon, gem_requirements,
add_tags, remove_tags, replace_tags)
gem_documentation_url, add_tags, remove_tags, replace_tags)
assert result == expected_result
if gem_new_name:
assert self.gem_json.data.get('gem_name', '') == gem_new_name
@@ -94,6 +97,8 @@ class TestEditGemProperties:
if gem_icon:
assert self.gem_json.data.get('icon_path', '') == gem_icon
if gem_requirements:
assert self.gem_json.data.get('requirments', '') == gem_requirements
assert self.gem_json.data.get('requirements', '') == gem_requirements
if gem_documentation_url:
assert self.gem_json.data.get('documentation_url', '') == gem_documentation_url
assert set(self.gem_json.data.get('user_tags', [])) == set(expected_tags)