diff --git a/Code/Tools/ProjectManager/Source/GemCatalog/GemInspector.cpp b/Code/Tools/ProjectManager/Source/GemCatalog/GemInspector.cpp index ec4a80e175..6c1f5f6fec 100644 --- a/Code/Tools/ProjectManager/Source/GemCatalog/GemInspector.cpp +++ b/Code/Tools/ProjectManager/Source/GemCatalog/GemInspector.cpp @@ -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); diff --git a/Code/Tools/ProjectManager/Source/GemCatalog/GemInspector.h b/Code/Tools/ProjectManager/Source/GemCatalog/GemInspector.h index 7d80cb0905..97c23f7df2 100644 --- a/Code/Tools/ProjectManager/Source/GemCatalog/GemInspector.h +++ b/Code/Tools/ProjectManager/Source/GemCatalog/GemInspector.h @@ -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); diff --git a/Code/Tools/ProjectManager/Source/GemCatalog/GemItemDelegate.cpp b/Code/Tools/ProjectManager/Source/GemCatalog/GemItemDelegate.cpp index 8f5cfd24aa..d5a213e80f 100644 --- a/Code/Tools/ProjectManager/Source/GemCatalog/GemItemDelegate.cpp +++ b/Code/Tools/ProjectManager/Source/GemCatalog/GemItemDelegate.cpp @@ -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); diff --git a/Code/Tools/ProjectManager/Source/PythonBindings.cpp b/Code/Tools/ProjectManager/Source/PythonBindings.cpp index 5d118654bc..8bdfb0f152 100644 --- a/Code/Tools/ProjectManager/Source/PythonBindings.cpp +++ b/Code/Tools/ProjectManager/Source/PythonBindings.cpp @@ -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(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")) { diff --git a/Gems/AWSClientAuth/gem.json b/Gems/AWSClientAuth/gem.json index 76183cd785..42996e7f4f 100644 --- a/Gems/AWSClientAuth/gem.json +++ b/Gems/AWSClientAuth/gem.json @@ -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/" } diff --git a/Gems/AWSCore/gem.json b/Gems/AWSCore/gem.json index bbaa4eb155..4c7889ace4 100644 --- a/Gems/AWSCore/gem.json +++ b/Gems/AWSCore/gem.json @@ -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/" } diff --git a/Gems/AWSGameLift/gem.json b/Gems/AWSGameLift/gem.json index 1a19c82f0b..7711495ee7 100644 --- a/Gems/AWSGameLift/gem.json +++ b/Gems/AWSGameLift/gem.json @@ -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/" } diff --git a/Gems/AWSMetrics/gem.json b/Gems/AWSMetrics/gem.json index 480200c565..5faeb66787 100644 --- a/Gems/AWSMetrics/gem.json +++ b/Gems/AWSMetrics/gem.json @@ -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/" } diff --git a/Gems/Achievements/gem.json b/Gems/Achievements/gem.json index 8a30390295..ca2bc7f3e9 100644 --- a/Gems/Achievements/gem.json +++ b/Gems/Achievements/gem.json @@ -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/" } diff --git a/Gems/AssetMemoryAnalyzer/gem.json b/Gems/AssetMemoryAnalyzer/gem.json index 45610e417c..544e0f7948 100644 --- a/Gems/AssetMemoryAnalyzer/gem.json +++ b/Gems/AssetMemoryAnalyzer/gem.json @@ -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/" } diff --git a/Gems/AssetValidation/gem.json b/Gems/AssetValidation/gem.json index 8a00dc27ca..83e37ddaf5 100644 --- a/Gems/AssetValidation/gem.json +++ b/Gems/AssetValidation/gem.json @@ -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/" } diff --git a/Gems/Atom/gem.json b/Gems/Atom/gem.json index c2aa033bf7..f927e42e7e 100644 --- a/Gems/Atom/gem.json +++ b/Gems/Atom/gem.json @@ -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/" } diff --git a/Gems/AtomContent/gem.json b/Gems/AtomContent/gem.json index b1bc35b77b..8161635f43 100644 --- a/Gems/AtomContent/gem.json +++ b/Gems/AtomContent/gem.json @@ -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 Pixar Look Development Studio.", "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/" } diff --git a/Gems/AtomLyIntegration/gem.json b/Gems/AtomLyIntegration/gem.json index 72be2f9151..28faf364db 100644 --- a/Gems/AtomLyIntegration/gem.json +++ b/Gems/AtomLyIntegration/gem.json @@ -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/" } diff --git a/Gems/AtomTressFX/gem.json b/Gems/AtomTressFX/gem.json index 0099906dd1..5f2e25b8a9 100644 --- a/Gems/AtomTressFX/gem.json +++ b/Gems/AtomTressFX/gem.json @@ -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/" } diff --git a/Gems/AudioEngineWwise/gem.json b/Gems/AudioEngineWwise/gem.json index 699ed8419a..084c924977 100644 --- a/Gems/AudioEngineWwise/gem.json +++ b/Gems/AudioEngineWwise/gem.json @@ -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 Audiokinetic Web Site.", + "documentation_url": "https://o3de.org/docs/user-guide/gems/reference/audio/wwise/audio-engine-wwise/" } diff --git a/Gems/AudioSystem/gem.json b/Gems/AudioSystem/gem.json index a9058cb42e..f618103803 100644 --- a/Gems/AudioSystem/gem.json +++ b/Gems/AudioSystem/gem.json @@ -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/" } diff --git a/Gems/Blast/gem.json b/Gems/Blast/gem.json index a4eb9d6b31..3b1205d6fe 100644 --- a/Gems/Blast/gem.json +++ b/Gems/Blast/gem.json @@ -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/" } diff --git a/Gems/Camera/gem.json b/Gems/Camera/gem.json index f59bb8cc0d..2fc2ea8355 100644 --- a/Gems/Camera/gem.json +++ b/Gems/Camera/gem.json @@ -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/" } diff --git a/Gems/CameraFramework/gem.json b/Gems/CameraFramework/gem.json index 6a6cbaf1f0..2ab25a84b4 100644 --- a/Gems/CameraFramework/gem.json +++ b/Gems/CameraFramework/gem.json @@ -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/" } diff --git a/Gems/CertificateManager/gem.json b/Gems/CertificateManager/gem.json index 38005a7cd1..cb49abc6b6 100644 --- a/Gems/CertificateManager/gem.json +++ b/Gems/CertificateManager/gem.json @@ -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/" } diff --git a/Gems/CrashReporting/gem.json b/Gems/CrashReporting/gem.json index e1e06f0ac1..bff54dcf36 100644 --- a/Gems/CrashReporting/gem.json +++ b/Gems/CrashReporting/gem.json @@ -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/" } diff --git a/Gems/CustomAssetExample/gem.json b/Gems/CustomAssetExample/gem.json index 62bdcb1ff6..ac7c2788d7 100644 --- a/Gems/CustomAssetExample/gem.json +++ b/Gems/CustomAssetExample/gem.json @@ -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/" } diff --git a/Gems/DebugDraw/gem.json b/Gems/DebugDraw/gem.json index 0dd2e179f3..a7939f4077 100644 --- a/Gems/DebugDraw/gem.json +++ b/Gems/DebugDraw/gem.json @@ -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/" } diff --git a/Gems/DevTextures/gem.json b/Gems/DevTextures/gem.json index 7a27d7c776..81d14e78cb 100644 --- a/Gems/DevTextures/gem.json +++ b/Gems/DevTextures/gem.json @@ -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/" } diff --git a/Gems/EMotionFX/gem.json b/Gems/EMotionFX/gem.json index 74a060ed52..f00803ec2c 100644 --- a/Gems/EMotionFX/gem.json +++ b/Gems/EMotionFX/gem.json @@ -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/" } diff --git a/Gems/EditorPythonBindings/gem.json b/Gems/EditorPythonBindings/gem.json index a8ae59b22e..fae091a63f 100644 --- a/Gems/EditorPythonBindings/gem.json +++ b/Gems/EditorPythonBindings/gem.json @@ -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/" } diff --git a/Gems/ExpressionEvaluation/gem.json b/Gems/ExpressionEvaluation/gem.json index 92d5963891..2f555916a5 100644 --- a/Gems/ExpressionEvaluation/gem.json +++ b/Gems/ExpressionEvaluation/gem.json @@ -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/" } diff --git a/Gems/FastNoise/gem.json b/Gems/FastNoise/gem.json index f49db2aa02..5ee5bbaf89 100644 --- a/Gems/FastNoise/gem.json +++ b/Gems/FastNoise/gem.json @@ -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/" } diff --git a/Gems/GameState/gem.json b/Gems/GameState/gem.json index fe9569eb75..a1f272c290 100644 --- a/Gems/GameState/gem.json +++ b/Gems/GameState/gem.json @@ -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/" } diff --git a/Gems/GameStateSamples/gem.json b/Gems/GameStateSamples/gem.json index 0241a8a1b7..f0dd82c5fa 100644 --- a/Gems/GameStateSamples/gem.json +++ b/Gems/GameStateSamples/gem.json @@ -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/" } diff --git a/Gems/Gestures/gem.json b/Gems/Gestures/gem.json index 4c2f5fe67a..4412e58c6d 100644 --- a/Gems/Gestures/gem.json +++ b/Gems/Gestures/gem.json @@ -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/" } diff --git a/Gems/GradientSignal/gem.json b/Gems/GradientSignal/gem.json index cae1a272b1..67afb1f819 100644 --- a/Gems/GradientSignal/gem.json +++ b/Gems/GradientSignal/gem.json @@ -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/" } diff --git a/Gems/GraphCanvas/gem.json b/Gems/GraphCanvas/gem.json index 6884f6b9cb..ab1e7ac77a 100644 --- a/Gems/GraphCanvas/gem.json +++ b/Gems/GraphCanvas/gem.json @@ -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/" } diff --git a/Gems/GraphModel/gem.json b/Gems/GraphModel/gem.json index 52c914357d..62f1effb7c 100644 --- a/Gems/GraphModel/gem.json +++ b/Gems/GraphModel/gem.json @@ -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/" } diff --git a/Gems/HttpRequestor/gem.json b/Gems/HttpRequestor/gem.json index 8beb77d839..e5eb8d6f44 100644 --- a/Gems/HttpRequestor/gem.json +++ b/Gems/HttpRequestor/gem.json @@ -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/" } diff --git a/Gems/ImGui/gem.json b/Gems/ImGui/gem.json index 327e417bcf..deaac9925a 100644 --- a/Gems/ImGui/gem.json +++ b/Gems/ImGui/gem.json @@ -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/" } diff --git a/Gems/InAppPurchases/gem.json b/Gems/InAppPurchases/gem.json index 96d0e7fa0a..ab43075896 100644 --- a/Gems/InAppPurchases/gem.json +++ b/Gems/InAppPurchases/gem.json @@ -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/" } diff --git a/Gems/LandscapeCanvas/gem.json b/Gems/LandscapeCanvas/gem.json index 338845ebb1..63a80ec57e 100644 --- a/Gems/LandscapeCanvas/gem.json +++ b/Gems/LandscapeCanvas/gem.json @@ -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/" } diff --git a/Gems/LmbrCentral/gem.json b/Gems/LmbrCentral/gem.json index 6f0530c35d..b6442bfd06 100644 --- a/Gems/LmbrCentral/gem.json +++ b/Gems/LmbrCentral/gem.json @@ -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/" } diff --git a/Gems/LocalUser/gem.json b/Gems/LocalUser/gem.json index 47c1601240..dcf4d44abb 100644 --- a/Gems/LocalUser/gem.json +++ b/Gems/LocalUser/gem.json @@ -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/" } diff --git a/Gems/LyShine/gem.json b/Gems/LyShine/gem.json index c61ca0cce5..e0fdb860e5 100644 --- a/Gems/LyShine/gem.json +++ b/Gems/LyShine/gem.json @@ -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/" } diff --git a/Gems/LyShineExamples/gem.json b/Gems/LyShineExamples/gem.json index e8c7110466..a411bfb363 100644 --- a/Gems/LyShineExamples/gem.json +++ b/Gems/LyShineExamples/gem.json @@ -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/" } diff --git a/Gems/Maestro/gem.json b/Gems/Maestro/gem.json index 4f638b63f1..6ee989aa55 100644 --- a/Gems/Maestro/gem.json +++ b/Gems/Maestro/gem.json @@ -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/" } diff --git a/Gems/MessagePopup/gem.json b/Gems/MessagePopup/gem.json index c75d28f50d..2560b8869a 100644 --- a/Gems/MessagePopup/gem.json +++ b/Gems/MessagePopup/gem.json @@ -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/" } diff --git a/Gems/Metastream/gem.json b/Gems/Metastream/gem.json index 911c6be665..429d174cf5 100644 --- a/Gems/Metastream/gem.json +++ b/Gems/Metastream/gem.json @@ -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/" } diff --git a/Gems/Microphone/gem.json b/Gems/Microphone/gem.json index 31b3d46963..cc47cbcd7e 100644 --- a/Gems/Microphone/gem.json +++ b/Gems/Microphone/gem.json @@ -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/" } diff --git a/Gems/MultiplayerCompression/gem.json b/Gems/MultiplayerCompression/gem.json index aeea2282cc..178cca0ffe 100644 --- a/Gems/MultiplayerCompression/gem.json +++ b/Gems/MultiplayerCompression/gem.json @@ -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/" } diff --git a/Gems/NvCloth/gem.json b/Gems/NvCloth/gem.json index 95ea8168d6..49ccbf32f1 100644 --- a/Gems/NvCloth/gem.json +++ b/Gems/NvCloth/gem.json @@ -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/" } diff --git a/Gems/PBSreferenceMaterials/gem.json b/Gems/PBSreferenceMaterials/gem.json index b015d89888..563dd31a38 100644 --- a/Gems/PBSreferenceMaterials/gem.json +++ b/Gems/PBSreferenceMaterials/gem.json @@ -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/" } diff --git a/Gems/PhysX/gem.json b/Gems/PhysX/gem.json index 0b6b635c71..0fbd3e44f9 100644 --- a/Gems/PhysX/gem.json +++ b/Gems/PhysX/gem.json @@ -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/" } diff --git a/Gems/PhysXDebug/gem.json b/Gems/PhysXDebug/gem.json index 7dbfc1a096..f7877cabdd 100644 --- a/Gems/PhysXDebug/gem.json +++ b/Gems/PhysXDebug/gem.json @@ -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/" } diff --git a/Gems/PhysXSamples/gem.json b/Gems/PhysXSamples/gem.json index b5239344f6..e48dc6991b 100644 --- a/Gems/PhysXSamples/gem.json +++ b/Gems/PhysXSamples/gem.json @@ -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/" } diff --git a/Gems/Prefab/PrefabBuilder/gem.json b/Gems/Prefab/PrefabBuilder/gem.json index 1a815738ca..ad6062ae3b 100644 --- a/Gems/Prefab/PrefabBuilder/gem.json +++ b/Gems/Prefab/PrefabBuilder/gem.json @@ -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/" } diff --git a/Gems/Presence/gem.json b/Gems/Presence/gem.json index 5df5fbdd6a..49d937946d 100644 --- a/Gems/Presence/gem.json +++ b/Gems/Presence/gem.json @@ -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/" } diff --git a/Gems/PrimitiveAssets/gem.json b/Gems/PrimitiveAssets/gem.json index 1c1fd54c16..d1789d46fe 100644 --- a/Gems/PrimitiveAssets/gem.json +++ b/Gems/PrimitiveAssets/gem.json @@ -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/" } diff --git a/Gems/PythonAssetBuilder/gem.json b/Gems/PythonAssetBuilder/gem.json index dcf3b59e23..1a76d7d2c2 100644 --- a/Gems/PythonAssetBuilder/gem.json +++ b/Gems/PythonAssetBuilder/gem.json @@ -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/" } diff --git a/Gems/QtForPython/gem.json b/Gems/QtForPython/gem.json index dea5fc2e16..1519d46c52 100644 --- a/Gems/QtForPython/gem.json +++ b/Gems/QtForPython/gem.json @@ -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/" +} diff --git a/Gems/RADTelemetry/gem.json b/Gems/RADTelemetry/gem.json index 43515976da..932093b4a9 100644 --- a/Gems/RADTelemetry/gem.json +++ b/Gems/RADTelemetry/gem.json @@ -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/" } diff --git a/Gems/SaveData/gem.json b/Gems/SaveData/gem.json index 57de27624f..3892cc80c2 100644 --- a/Gems/SaveData/gem.json +++ b/Gems/SaveData/gem.json @@ -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/" +} diff --git a/Gems/SceneLoggingExample/gem.json b/Gems/SceneLoggingExample/gem.json index faa2860d13..ff7def1b32 100644 --- a/Gems/SceneLoggingExample/gem.json +++ b/Gems/SceneLoggingExample/gem.json @@ -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/" +} diff --git a/Gems/SceneProcessing/gem.json b/Gems/SceneProcessing/gem.json index d9814f6a7d..a6c2cefbd6 100644 --- a/Gems/SceneProcessing/gem.json +++ b/Gems/SceneProcessing/gem.json @@ -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/" +} diff --git a/Gems/ScriptCanvas/gem.json b/Gems/ScriptCanvas/gem.json index 413e58ef7e..b6b5522d7d 100644 --- a/Gems/ScriptCanvas/gem.json +++ b/Gems/ScriptCanvas/gem.json @@ -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/" } diff --git a/Gems/ScriptCanvasDeveloper/gem.json b/Gems/ScriptCanvasDeveloper/gem.json index 7cc2e7d03a..d7b0aefad3 100644 --- a/Gems/ScriptCanvasDeveloper/gem.json +++ b/Gems/ScriptCanvasDeveloper/gem.json @@ -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/" +} diff --git a/Gems/ScriptCanvasPhysics/gem.json b/Gems/ScriptCanvasPhysics/gem.json index 04cfb86980..46e2ef1194 100644 --- a/Gems/ScriptCanvasPhysics/gem.json +++ b/Gems/ScriptCanvasPhysics/gem.json @@ -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/" +} diff --git a/Gems/ScriptCanvasTesting/gem.json b/Gems/ScriptCanvasTesting/gem.json index d82e841236..303eab8c7e 100644 --- a/Gems/ScriptCanvasTesting/gem.json +++ b/Gems/ScriptCanvasTesting/gem.json @@ -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/" } diff --git a/Gems/ScriptEvents/gem.json b/Gems/ScriptEvents/gem.json index fba99c6af9..2b7d74ef3f 100644 --- a/Gems/ScriptEvents/gem.json +++ b/Gems/ScriptEvents/gem.json @@ -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/" } diff --git a/Gems/ScriptedEntityTweener/gem.json b/Gems/ScriptedEntityTweener/gem.json index c2e1975f76..a0f558356b 100644 --- a/Gems/ScriptedEntityTweener/gem.json +++ b/Gems/ScriptedEntityTweener/gem.json @@ -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/" +} diff --git a/Gems/StartingPointCamera/gem.json b/Gems/StartingPointCamera/gem.json index 2c28f346a9..5a9aa0df9b 100644 --- a/Gems/StartingPointCamera/gem.json +++ b/Gems/StartingPointCamera/gem.json @@ -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/" } diff --git a/Gems/StartingPointInput/gem.json b/Gems/StartingPointInput/gem.json index 2d5b6aee15..e65f271fe5 100644 --- a/Gems/StartingPointInput/gem.json +++ b/Gems/StartingPointInput/gem.json @@ -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/" } diff --git a/Gems/StartingPointMovement/gem.json b/Gems/StartingPointMovement/gem.json index cb4e8d0e6a..70e1d105c1 100644 --- a/Gems/StartingPointMovement/gem.json +++ b/Gems/StartingPointMovement/gem.json @@ -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/" } diff --git a/Gems/SurfaceData/gem.json b/Gems/SurfaceData/gem.json index 24f7f1cb21..57e4d8fb70 100644 --- a/Gems/SurfaceData/gem.json +++ b/Gems/SurfaceData/gem.json @@ -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/" } diff --git a/Gems/TestAssetBuilder/gem.json b/Gems/TestAssetBuilder/gem.json index 4c75343ebb..1e0b84894a 100644 --- a/Gems/TestAssetBuilder/gem.json +++ b/Gems/TestAssetBuilder/gem.json @@ -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/" } diff --git a/Gems/TextureAtlas/gem.json b/Gems/TextureAtlas/gem.json index 1991ad387e..832dee0e62 100644 --- a/Gems/TextureAtlas/gem.json +++ b/Gems/TextureAtlas/gem.json @@ -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/" } diff --git a/Gems/TickBusOrderViewer/gem.json b/Gems/TickBusOrderViewer/gem.json index 787fd24abb..5ea936960a 100644 --- a/Gems/TickBusOrderViewer/gem.json +++ b/Gems/TickBusOrderViewer/gem.json @@ -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/" } diff --git a/Gems/Twitch/gem.json b/Gems/Twitch/gem.json index b5e2f3a3b2..6f875e9171 100644 --- a/Gems/Twitch/gem.json +++ b/Gems/Twitch/gem.json @@ -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/" } diff --git a/Gems/UiBasics/gem.json b/Gems/UiBasics/gem.json index 9cd1548f57..d1e06eb15a 100644 --- a/Gems/UiBasics/gem.json +++ b/Gems/UiBasics/gem.json @@ -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/" } diff --git a/Gems/Vegetation/gem.json b/Gems/Vegetation/gem.json index 1796123014..3119d67560 100644 --- a/Gems/Vegetation/gem.json +++ b/Gems/Vegetation/gem.json @@ -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/" } diff --git a/Gems/VideoPlaybackFramework/gem.json b/Gems/VideoPlaybackFramework/gem.json index 05598a8e5e..15b200c8db 100644 --- a/Gems/VideoPlaybackFramework/gem.json +++ b/Gems/VideoPlaybackFramework/gem.json @@ -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/" } diff --git a/Gems/VirtualGamepad/gem.json b/Gems/VirtualGamepad/gem.json index 610f203f7c..472e8b93fe 100644 --- a/Gems/VirtualGamepad/gem.json +++ b/Gems/VirtualGamepad/gem.json @@ -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/" } diff --git a/Gems/WhiteBox/gem.json b/Gems/WhiteBox/gem.json index a46434dd65..0e44e2fe5e 100644 --- a/Gems/WhiteBox/gem.json +++ b/Gems/WhiteBox/gem.json @@ -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/" } diff --git a/scripts/o3de/o3de/gem_properties.py b/scripts/o3de/o3de/gem_properties.py index c97e5db89d..39011a213a 100644 --- a/scripts/o3de/o3de/gem_properties.py +++ b/scripts/o3de/o3de/gem_properties.py @@ -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) diff --git a/scripts/o3de/tests/unit_test_gem_properties.py b/scripts/o3de/tests/unit_test_gem_properties.py index 29d53fbee6..5bfbe5573a 100644 --- a/scripts/o3de/tests/unit_test_gem_properties.py +++ b/scripts/o3de/tests/unit_test_gem_properties.py @@ -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)