redcode the asset itself WIP

Signed-off-by: carlitosan <82187351+carlitosan@users.noreply.github.com>
This commit is contained in:
carlitosan
2021-12-14 14:17:06 -08:00
parent c5d370723e
commit e078eac379
33 changed files with 152 additions and 413 deletions
@@ -22,7 +22,7 @@
// Undo this
AZ_PUSH_DISABLE_WARNING(4251 4800 4244, "-Wunknown-warning-option")
#include <ScriptCanvas/Asset/RuntimeAsset.h>
#include <ScriptCanvas/Assets/ScriptCanvasAsset.h>
#include <ScriptCanvas/Components/EditorGraph.h>
#include <ScriptCanvas/Components/EditorGraphVariableManagerComponent.h>
AZ_POP_DISABLE_WARNING
@@ -84,10 +84,7 @@ namespace ScriptCanvasEditor
static bool HandlesSource(const AzToolsFramework::AssetBrowser::SourceAssetBrowserEntry* entry)
{
AZStd::string_view targetExtension = entry->GetExtension();
ScriptCanvasAsset::Description description;
AZStd::string_view scriptCanvasFileFilter = description.GetFileFilterImpl();
AZStd::string_view scriptCanvasFileFilter = SourceDescription::GetFileFilter();
if (AZStd::wildcard_match(scriptCanvasFileFilter.data(), targetExtension.data()))
{
return true;
@@ -17,8 +17,6 @@
namespace ScriptCanvasEditor
{
class ScriptCanvasAsset;
class EditorAssetSystemComponent
: public AZ::Component
, public EditorAssetConversionBus::Handler
@@ -9,7 +9,7 @@
#include <AzToolsFramework/API/EditorAssetSystemAPI.h>
#include <Builder/ScriptCanvasBuilder.h>
#include <Builder/ScriptCanvasBuilderWorker.h>
#include <ScriptCanvas/Assets/ScriptCanvasAsset.h>
#include <ScriptCanvas/Components/EditorGraphVariableManagerComponent.h>
#include <ScriptCanvas/Grammar/AbstractCodeModel.h>
#include <AzCore/Asset/AssetSerializer.h>
@@ -14,7 +14,7 @@
#include <Builder/ScriptCanvasBuilderWorker.h>
#include <ScriptCanvas/Asset/RuntimeAssetHandler.h>
#include <ScriptCanvas/Asset/SubgraphInterfaceAssetHandler.h>
#include <ScriptCanvas/Assets/ScriptCanvasAsset.h>
#include <ScriptCanvas/Utils/BehaviorContextUtils.h>
namespace ScriptCanvasBuilder
@@ -1,126 +0,0 @@
/*
* Copyright (c) Contributors to the Open 3D Engine Project.
* For complete copyright and license terms please see the LICENSE at the root of this distribution.
*
* SPDX-License-Identifier: Apache-2.0 OR MIT
*
*/
#include <AzCore/Asset/AssetManagerBus.h>
#include <AzCore/Serialization/Utils.h>
#include <ScriptCanvas/Assets/ScriptCanvasAsset.h>
#include <ScriptCanvas/Bus/ScriptCanvasBus.h>
#include <ScriptCanvas/Core/ScriptCanvasBus.h>
#include <ScriptCanvas/Components/EditorGraph.h>
#include <ScriptCanvas/Components/EditorGraphVariableManagerComponent.h>
namespace ScriptCanvas
{
ScriptCanvasData::ScriptCanvasData(ScriptCanvasData&& other)
: m_scriptCanvasEntity(AZStd::move(other.m_scriptCanvasEntity))
{
}
ScriptCanvasData& ScriptCanvasData::operator=(ScriptCanvasData&& other)
{
m_scriptCanvasEntity = AZStd::move(other.m_scriptCanvasEntity);
return *this;
}
static bool ScriptCanvasDataVersionConverter(AZ::SerializeContext& context, AZ::SerializeContext::DataElementNode& rootDataElementNode)
{
if (rootDataElementNode.GetVersion() == 0)
{
int scriptCanvasEntityIndex = rootDataElementNode.FindElement(AZ_CRC("m_scriptCanvas", 0xfcd20d85));
if (scriptCanvasEntityIndex == -1)
{
AZ_Error("Script Canvas", false, "Version Converter failed, The Script Canvas Entity is missing");
return false;
}
auto scComponentElements = AZ::Utils::FindDescendantElements(context, rootDataElementNode, AZStd::vector<AZ::Crc32>{AZ_CRC("m_scriptCanvas", 0xfcd20d85),
AZ_CRC("element", 0x41405e39), AZ_CRC("Components", 0xee48f5fd)});
if (!scComponentElements.empty())
{
scComponentElements.front()->AddElementWithData(context, "element", ScriptCanvasEditor::EditorGraphVariableManagerComponent());
}
}
if (rootDataElementNode.GetVersion() < 4)
{
auto scEntityElements = AZ::Utils::FindDescendantElements(context, rootDataElementNode,
AZStd::vector<AZ::Crc32>{AZ_CRC("m_scriptCanvas", 0xfcd20d85), AZ_CRC("element", 0x41405e39)});
if (scEntityElements.empty())
{
AZ_Error("Script Canvas", false, "Version Converter failed, The Script Canvas Entity is missing");
return false;
}
auto& scEntityDataElement = *scEntityElements.front();
AZ::Entity scEntity;
if (!scEntityDataElement.GetData(scEntity))
{
AZ_Error("Script Canvas", false, "Unable to retrieve entity data from the Data Element");
return false;
}
auto graph = AZ::EntityUtils::FindFirstDerivedComponent<ScriptCanvas::Graph>(&scEntity);
if (!graph)
{
AZ_Error("Script Canvas", false, "Script Canvas graph component could not be found on Script Canvas Entity for ScriptCanvasData version %u", rootDataElementNode.GetVersion());
return false;
}
auto variableManager = AZ::EntityUtils::FindFirstDerivedComponent<ScriptCanvas::GraphVariableManagerComponent>(&scEntity);
if (!variableManager)
{
AZ_Error("Script Canvas", false, "Script Canvas variable manager component could not be found on Script Canvas Entity for ScriptCanvasData version %u", rootDataElementNode.GetVersion());
return false;
}
variableManager->ConfigureScriptCanvasId(graph->GetScriptCanvasId());
if (!scEntityDataElement.SetData(context, scEntity))
{
AZ_Error("Script Canvas", false, "Failed to set converted Script Canvas Entity back on data element node when transitioning from version %u to version 4", rootDataElementNode.GetVersion());
return false;
}
}
return true;
}
void ScriptCanvasData::Reflect(AZ::ReflectContext* reflectContext)
{
if (auto serializeContext = azrtti_cast<AZ::SerializeContext*>(reflectContext))
{
serializeContext->Class<ScriptCanvasData>()
->Version(4, &ScriptCanvasDataVersionConverter)
->Field("m_scriptCanvas", &ScriptCanvasData::m_scriptCanvasEntity)
;
}
}
}
namespace ScriptCanvasEditor
{
ScriptCanvas::Graph* ScriptCanvasAsset::GetScriptCanvasGraph() const
{
return AZ::EntityUtils::FindFirstDerivedComponent<ScriptCanvas::Graph>(m_data->m_scriptCanvasEntity.get());
}
ScriptCanvas::ScriptCanvasData& ScriptCanvasAsset::GetScriptCanvasData()
{
AZ_Assert(m_data != nullptr, "ScriptCanvasData not initialized, it must be created on construction");
return *m_data;
}
const ScriptCanvas::ScriptCanvasData& ScriptCanvasAsset::GetScriptCanvasData() const
{
AZ_Assert(m_data != nullptr, "ScriptCanvasData not initialized, it must be created on construction");
return *m_data;
}
}
@@ -8,7 +8,7 @@
#include <Editor/Assets/ScriptCanvasAssetHelpers.h>
#include <ScriptCanvas/Assets/ScriptCanvasAsset.h>
#include <ScriptCanvas/Bus/EditorScriptCanvasBus.h>
namespace ScriptCanvasEditor
@@ -23,7 +23,7 @@
#include <LyViewPaneNames.h>
#include <ScriptCanvas/Asset/RuntimeAsset.h>
#include <ScriptCanvas/Asset/RuntimeAsset.h>
#include <ScriptCanvas/Assets/ScriptCanvasAsset.h>
#include <ScriptCanvas/Assets/ScriptCanvasFileHandling.h>
#include <ScriptCanvas/Bus/RequestBus.h>
#include <ScriptCanvas/Components/EditorDeprecationData.h>
@@ -16,7 +16,7 @@
#include <Editor/Framework/ScriptCanvasReporter.h>
#include <ScriptCanvas/Asset/RuntimeAsset.h>
#include <ScriptCanvas/Asset/RuntimeAssetHandler.h>
#include <ScriptCanvas/Assets/ScriptCanvasAsset.h>
#include <ScriptCanvas/Execution/ExecutionState.h>
#include <ScriptCanvas/Execution/Interpreted/ExecutionInterpretedAPI.h>
#include <ScriptCanvas/Execution/RuntimeComponent.h>
@@ -1,88 +0,0 @@
/*
* Copyright (c) Contributors to the Open 3D Engine Project.
* For complete copyright and license terms please see the LICENSE at the root of this distribution.
*
* SPDX-License-Identifier: Apache-2.0 OR MIT
*
*/
#pragma once
#include <AzCore/Asset/AssetCommon.h>
#include <ScriptCanvas/Asset/AssetDescription.h>
#include <ScriptCanvas/Assets/ScriptCanvasAssetBus.h>
#include <ScriptCanvas/Assets/ScriptCanvasBaseAssetData.h>
#include <ScriptCanvas/Asset/ScriptCanvasAssetBase.h>
namespace AZ
{
class Entity;
}
namespace ScriptCanvas
{
class Graph;
}
namespace ScriptCanvasEditor
{
class Graph;
class ScriptCanvasAsset;
class ScriptCanvasAssetDescription : public ScriptCanvas::AssetDescription
{
public:
AZ_TYPE_INFO(ScriptCanvasAssetDescription, "{3678E33E-521B-4CAC-9DC1-42566AC71249}");
ScriptCanvasAssetDescription()
: ScriptCanvas::AssetDescription(
azrtti_typeid<ScriptCanvasAsset>(),
"Script Canvas",
"Script Canvas Graph Asset",
"@projectroot@/scriptcanvas",
".scriptcanvas",
"Script Canvas",
"Untitled-%i",
"Script Canvas Files (*.scriptcanvas)",
"Script Canvas",
"Script Canvas",
"Icons/ScriptCanvas/Viewport/ScriptCanvas.png",
AZ::Color(0.321f, 0.302f, 0.164f, 1.0f),
true
)
{}
};
class ScriptCanvasAsset
: public ScriptCanvas::ScriptCanvasAssetBase
{
public:
AZ_RTTI(ScriptCanvasAsset, "{FA10C3DA-0717-4B72-8944-CD67D13DFA2B}", ScriptCanvas::ScriptCanvasAssetBase);
AZ_CLASS_ALLOCATOR(ScriptCanvasAsset, AZ::SystemAllocator, 0);
ScriptCanvasAsset(const AZ::Data::AssetId& assetId = AZ::Data::AssetId(AZ::Uuid::CreateRandom()),
AZ::Data::AssetData::AssetStatus status = AZ::Data::AssetData::AssetStatus::NotLoaded)
: ScriptCanvas::ScriptCanvasAssetBase(assetId, status)
{
m_data = aznew ScriptCanvas::ScriptCanvasData();
}
~ScriptCanvasAsset() override
{
}
ScriptCanvas::AssetDescription GetAssetDescription() const override
{
return ScriptCanvasAssetDescription();
}
ScriptCanvas::Graph* GetScriptCanvasGraph() const;
using Description = ScriptCanvasAssetDescription;
ScriptCanvas::ScriptCanvasData& GetScriptCanvasData() override;
const ScriptCanvas::ScriptCanvasData& GetScriptCanvasData() const override;
};
}
@@ -1,31 +0,0 @@
/*
* Copyright (c) Contributors to the Open 3D Engine Project.
* For complete copyright and license terms please see the LICENSE at the root of this distribution.
*
* SPDX-License-Identifier: Apache-2.0 OR MIT
*
*/
#pragma once
namespace ScriptCanvas
{
class ScriptCanvasAssetBusRequests : public AZ::EBusTraits
{
public:
using BusIdType = AZ::Data::AssetId;
using MutexType = AZStd::recursive_mutex;
static const AZ::EBusHandlerPolicy HandlerPolicy = AZ::EBusHandlerPolicy::Single;
static const AZ::EBusAddressPolicy AddressPolicy = AZ::EBusAddressPolicy::ById;
virtual void SetAsNewAsset() = 0;
};
using ScriptCanvasAssetBusRequestBus = AZ::EBus<ScriptCanvasAssetBusRequests>;
}
@@ -1,14 +0,0 @@
/*
* Copyright (c) Contributors to the Open 3D Engine Project.
* For complete copyright and license terms please see the LICENSE at the root of this distribution.
*
* SPDX-License-Identifier: Apache-2.0 OR MIT
*
*/
#pragma once
namespace ScriptCanvasEditor
{
}
@@ -1,10 +0,0 @@
/*
* Copyright (c) Contributors to the Open 3D Engine Project.
* For complete copyright and license terms please see the LICENSE at the root of this distribution.
*
* SPDX-License-Identifier: Apache-2.0 OR MIT
*
*/
#include <ScriptCanvas/Assets/ScriptCanvasBaseAssetData.h>
@@ -1,17 +0,0 @@
/*
* Copyright (c) Contributors to the Open 3D Engine Project.
* For complete copyright and license terms please see the LICENSE at the root of this distribution.
*
* SPDX-License-Identifier: Apache-2.0 OR MIT
*
*/
#pragma once
#include <ScriptCanvas/Variable/VariableData.h>
#include <ScriptCanvas/Core/GraphData.h>
namespace ScriptCanvas
{
}
@@ -11,7 +11,7 @@
#include <AzCore/Asset/AssetManager.h>
#include <AzCore/Asset/AssetTypeInfoBus.h>
#include <AzCore/Serialization/ObjectStream.h>
#include <ScriptCanvas/Assets/ScriptCanvasAsset.h>
namespace AZ
{
@@ -19,6 +19,39 @@ namespace ScriptCanvasEditor
{
namespace Deprecated
{
/* source file description
ScriptCanvasAssetDescription()
: ScriptCanvas::AssetDescription(
"{FA10C3DA-0717-4B72-8944-CD67D13DFA2B}", // type
"Script Canvas", // name
"Script Canvas Graph Asset", // description
"@projectroot@/scriptcanvas", // suggested save path
".scriptcanvas", // fileExtention
"Script Canvas", // group
"Untitled-%i", // asset name pattern
"Script Canvas Files (*.scriptcanvas)", // file filter
"Script Canvas", // asset type display name
"Script Canvas", // entity name
"Icons/ScriptCanvas/Viewport/ScriptCanvas.png", // icon path
AZ::Color(0.321f, 0.302f, 0.164f, 1.0f), // display color
true // is editable type
)
{}
AssetDescription( AZ::Data::AssetType assetType,
const char* name,
const char* description,
const char* suggestedSavePath,
const char* fileExtension,
const char* group,
const char* assetNamePattern,
const char* fileFilter,
const char* assetTypeDisplayName,
const char* entityName,
const char* iconPath,
AZ::Color displayColor,
bool isEditableType)
*/
class ScriptCanvasAssetHolder
{
public:
@@ -30,5 +63,15 @@ namespace ScriptCanvasEditor
AZ::Data::Asset<ScriptCanvasAsset> m_scriptCanvasAsset;
};
class ScriptCanvasAsset
{
public:
AZ_TYPE_INFO(ScriptCanvasAsset, "{3E80CEE3-2932-4DC1-AADF-398FDDC6DEFE}");
AZ_CLASS_ALLOCATOR(ScriptCanvasAsset, AZ::SystemAllocator, 0);
ScriptCanvasAsset() = default;
static void Reflect(AZ::ReflectContext * context);
};
}
}
+1 -1
View File
@@ -13,7 +13,7 @@
#include "Settings.h"
#include <ScriptCanvas/Assets/ScriptCanvasAsset.h>
#include <ScriptCanvas/Data/Data.h>
#include <Editor/GraphCanvas/GraphCanvasEditorNotificationBusId.h>
@@ -9,11 +9,9 @@
#include <AzCore/Asset/AssetManagerBus.h>
#include <AzToolsFramework/AssetBrowser/AssetBrowserBus.h>
#include <AzToolsFramework/AssetBrowser/AssetBrowserModel.h>
#include <Editor/View/Widgets/LoggingPanel/PivotTree/GraphPivotTree/GraphPivotTree.h>
#include <ScriptCanvas/Assets/ScriptCanvasAsset.h>
#include <AzToolsFramework/AssetBrowser/Entries/ProductAssetBrowserEntry.h>
#include <Editor/View/Widgets/LoggingPanel/PivotTree/GraphPivotTree/GraphPivotTree.h>
#include <ScriptCanvas/Asset/RuntimeAsset.h>
namespace ScriptCanvasEditor
{
@@ -355,7 +353,7 @@ namespace ScriptCanvasEditor
m_assetModel = new AzToolsFramework::AssetBrowser::AssetBrowserFilterModel();
AzToolsFramework::AssetBrowser::AssetGroupFilter* assetFilter = new AzToolsFramework::AssetBrowser::AssetGroupFilter();
assetFilter->SetAssetGroup(ScriptCanvasEditor::ScriptCanvasAsset::Description::GetGroup(azrtti_typeid<ScriptCanvasAsset>()));
assetFilter->SetAssetGroup(ScriptCanvasEditor::SourceDescription::GetGroup());
assetFilter->SetFilterPropagation(AzToolsFramework::AssetBrowser::AssetBrowserEntryFilter::PropagateDirection::Down);
@@ -530,7 +528,7 @@ namespace ScriptCanvasEditor
{
const AzToolsFramework::AssetBrowser::ProductAssetBrowserEntry* productEntry = azrtti_cast<const AzToolsFramework::AssetBrowser::ProductAssetBrowserEntry*>(entry);
if (productEntry->GetAssetType() == azrtti_typeid<ScriptCanvasEditor::ScriptCanvasAsset>())
if (productEntry->GetAssetType() == azrtti_typeid<ScriptCanvas::SubgraphInterfaceAsset>())
{
auto mapIter = m_graphTreeItemMapping.find(productEntry->GetAssetId());
@@ -556,7 +554,7 @@ namespace ScriptCanvasEditor
{
const AzToolsFramework::AssetBrowser::ProductAssetBrowserEntry* productEntry = static_cast<const AzToolsFramework::AssetBrowser::ProductAssetBrowserEntry*>(entry);
if (productEntry->GetAssetType() == azrtti_typeid<ScriptCanvasEditor::ScriptCanvasAsset>())
if (productEntry->GetAssetType() == azrtti_typeid<ScriptCanvas::SubgraphInterfaceAsset>())
{
OnEntityGraphRegistered(AZ::NamedEntityId(), ScriptCanvas::GraphIdentifier(productEntry->GetAssetId(), k_dynamicallySpawnedControllerId));
}
@@ -38,6 +38,7 @@
#include <AzQtComponents/Utilities/DesktopUtilities.h>
#include <Editor/Assets/ScriptCanvasAssetHelpers.h>
#include <Editor/Components/IconComponent.h>
#include <Editor/GraphCanvas/GraphCanvasEditorNotificationBusId.h>
#include <Editor/GraphCanvas/GraphCanvasEditorNotificationBusId.h>
@@ -461,35 +462,33 @@ namespace ScriptCanvasEditor
return;
}
// #sc_editor_asset_redux THIS WHOLE THING NEEDS TO BE REDONE TO MAKE SURE THAT USER FUNCTIONS SHOW UP IN THE
// NODE PALETTE
//
// AZStd::string rootPath, absolutePath;
// AZ::Data::AssetInfo assetInfo = AssetHelpers::GetAssetInfo(assetId, rootPath);
// AzFramework::StringFunc::Path::Join(rootPath.c_str(), assetInfo.m_relativePath.c_str(), absolutePath);
//
// AZStd::string normPath = absolutePath;
// AzFramework::StringFunc::Path::Normalize(normPath);
//
// AZStd::string watchFolder;
// bool sourceInfoFound{};
// AzToolsFramework::AssetSystemRequestBus::BroadcastResult(sourceInfoFound, &AzToolsFramework::AssetSystemRequestBus::Events::GetSourceInfoBySourcePath, normPath.c_str(), assetInfo, watchFolder);
//
// if (!sourceInfoFound)
// {
// return;
// }
//
// CreateFunctionPaletteItem(asset, assetInfo);
//
// treePaletteIter = m_globalFunctionTreeItems.find(asset->GetId());
//
// if (treePaletteIter != m_globalFunctionTreeItems.end())
// {
// treePaletteIter->second->ClearError();
// }
//
// m_monitoredAssets.emplace(asset->GetId(), asset);
AZStd::string rootPath, absolutePath;
AZ::Data::AssetInfo assetInfo = AssetHelpers::GetAssetInfo(assetId, rootPath);
AzFramework::StringFunc::Path::Join(rootPath.c_str(), assetInfo.m_relativePath.c_str(), absolutePath);
AZStd::string normPath = absolutePath;
AzFramework::StringFunc::Path::Normalize(normPath);
AZStd::string watchFolder;
bool sourceInfoFound{};
AzToolsFramework::AssetSystemRequestBus::BroadcastResult(sourceInfoFound, &AzToolsFramework::AssetSystemRequestBus::Events::GetSourceInfoBySourcePath, normPath.c_str(), assetInfo, watchFolder);
if (!sourceInfoFound)
{
return;
}
CreateFunctionPaletteItem(asset, assetInfo);
treePaletteIter = m_globalFunctionTreeItems.find(asset->GetId());
if (treePaletteIter != m_globalFunctionTreeItems.end())
{
treePaletteIter->second->ClearError();
}
m_monitoredAssets.emplace(asset->GetId(), asset);
}
else
{
@@ -13,7 +13,7 @@
#include <Editor/GraphCanvas/GraphCanvasEditorNotificationBusId.h>
#include <Editor/View/Widgets/StatisticsDialog/NodeUsageTreeItem.h>
#include <ScriptCanvas/Assets/ScriptCanvasAsset.h>
#include <ScriptCanvas/Components/EditorGraph.h>
namespace ScriptCanvasEditor
@@ -135,8 +135,6 @@ namespace ScriptCanvasEditor
void ScriptCanvasAssetNodeUsageTreeItem::SetAssetId(const AZ::Data::AssetId& assetId, AZ::Data::AssetType assetType)
{
// If we are setting up a new assetId, we wantt o register for the bus.
// Otherwise we just want to reload the asset to scrape some data from it.
if (m_assetId != assetId)
{
if (AZ::Data::AssetBus::Handler::BusIsConnected())
@@ -150,10 +148,6 @@ namespace ScriptCanvasEditor
}
m_assetType = assetType;
// #sc-editor-asset-redux fix up
// auto onAssetReady = [](ScriptCanvasMemoryAsset&) {};
// AssetTrackerRequestBus::Broadcast(&AssetTrackerRequests::Load, m_assetId, m_assetType, onAssetReady);
}
const AZ::Data::AssetId& ScriptCanvasAssetNodeUsageTreeItem::GetAssetId() const
@@ -15,7 +15,7 @@
#include <GraphCanvas/Widgets/NodePalette/TreeItems/IconDecoratedNodePaletteTreeItem.h>
#include <Editor/View/Widgets/NodePalette/NodePaletteModel.h>
#include <ScriptCanvas/Assets/ScriptCanvasAsset.h>
#include <ScriptCanvas/Components/EditorUtils.h>
namespace ScriptCanvasEditor
@@ -15,7 +15,7 @@
#include <Editor/GraphCanvas/GraphCanvasEditorNotificationBusId.h>
#include <ScriptCanvas/Assets/ScriptCanvasAsset.h>
#include <ScriptCanvas/Bus/RequestBus.h>
namespace
@@ -176,14 +176,15 @@ namespace ScriptCanvasEditor
{
}
void StatisticsDialog::OnCatalogAssetChanged(const AZ::Data::AssetId& assetId)
void StatisticsDialog::OnCatalogAssetChanged(const AZ::Data::AssetId& /*assetId*/)
{
AZ::Data::AssetInfo assetInfo;
AZ::Data::AssetCatalogRequestBus::BroadcastResult(assetInfo, &AZ::Data::AssetCatalogRequestBus::Events::GetAssetInfoById, assetId);
if (assetInfo.m_assetType == azrtti_typeid<ScriptCanvasAsset>())
{
m_scriptCanvasAssetTreeRoot->RegisterAsset(assetId, assetInfo.m_assetType);
}
// #sc_editor_asset_redux cut or update
// AZ::Data::AssetInfo assetInfo;
// AZ::Data::AssetCatalogRequestBus::BroadcastResult(assetInfo, &AZ::Data::AssetCatalogRequestBus::Events::GetAssetInfoById, assetId);
// if (assetInfo.m_assetType == azrtti_typeid<OldAssetType())
// {
// m_scriptCanvasAssetTreeRoot->RegisterAsset(assetId, assetInfo.m_assetType);
// }
}
void StatisticsDialog::OnCatalogAssetAdded(const AZ::Data::AssetId& assetId)
@@ -191,14 +192,16 @@ namespace ScriptCanvasEditor
OnCatalogAssetChanged(assetId);
}
void StatisticsDialog::OnCatalogAssetRemoved(const AZ::Data::AssetId& assetId, const AZ::Data::AssetInfo& /*assetInfo*/)
void StatisticsDialog::OnCatalogAssetRemoved(const AZ::Data::AssetId& /*assetId*/, const AZ::Data::AssetInfo& /*assetInfo*/)
{
AZ::Data::AssetInfo assetInfo;
AZ::Data::AssetCatalogRequestBus::BroadcastResult(assetInfo, &AZ::Data::AssetCatalogRequestBus::Events::GetAssetInfoById, assetId);
if (assetInfo.m_assetType == azrtti_typeid<ScriptCanvasAsset>())
{
m_scriptCanvasAssetTreeRoot->RemoveAsset(assetId);
}
// #sc_editor_asset_redux cut or update
// AZ::Data::AssetInfo assetInfo;
// AZ::Data::AssetCatalogRequestBus::BroadcastResult(assetInfo, &AZ::Data::AssetCatalogRequestBus::Events::GetAssetInfoById, assetId);
// if (assetInfo.m_assetType == azrtti_typeid<OldAssetType>())
// {
// m_scriptCanvasAssetTreeRoot->RemoveAsset(assetId);
// }
}
void StatisticsDialog::OnAssetModelRepopulated()
@@ -434,20 +437,21 @@ namespace ScriptCanvasEditor
void StatisticsDialog::ProcessAsset(const AzToolsFramework::AssetBrowser::AssetBrowserEntry* entry)
{
if (entry)
{
if (entry->GetEntryType() == AzToolsFramework::AssetBrowser::AssetBrowserEntry::AssetEntryType::Product)
{
const AzToolsFramework::AssetBrowser::ProductAssetBrowserEntry* productEntry = static_cast<const AzToolsFramework::AssetBrowser::ProductAssetBrowserEntry*>(entry);
if (productEntry->GetAssetType() == azrtti_typeid<ScriptCanvasAsset>())
{
const AZ::Data::AssetId& assetId = productEntry->GetAssetId();
m_scriptCanvasAssetTreeRoot->RegisterAsset(assetId, productEntry->GetAssetType());
}
}
}
// #sc_editor_asset_redux cut or update
// if (entry)
// {
// if (entry->GetEntryType() == AzToolsFramework::AssetBrowser::AssetBrowserEntry::AssetEntryType::Product)
// {
// const AzToolsFramework::AssetBrowser::ProductAssetBrowserEntry* productEntry = static_cast<const AzToolsFramework::AssetBrowser::ProductAssetBrowserEntry*>(entry);
//
// if (productEntry->GetAssetType() == azrtti_typeid<OldAssetType>())
// {
// const AZ::Data::AssetId& assetId = productEntry->GetAssetId();
//
// m_scriptCanvasAssetTreeRoot->RegisterAsset(assetId, productEntry->GetAssetType());
// }
// }
// }
}
#include <Editor/View/Widgets/StatisticsDialog/moc_ScriptCanvasStatisticsDialog.cpp>
@@ -26,7 +26,7 @@
#include <AzCore/Serialization/EditContext.h>
#include <AzCore/IO/FileIO.h>
#include <AzCore/Asset/AssetManager.h>
#include <Editor/Assets/ScriptCanvasAssetHelpers.h>
#include <AzFramework/StringFunc/StringFunc.h>
#include <AzToolsFramework/ToolsComponents/EditorComponentBase.h>
@@ -46,7 +46,7 @@
#include <Data/Data.h>
#include <ScriptCanvas/Assets/ScriptCanvasAsset.h>
#include <ScriptCanvas/Bus/ScriptCanvasExecutionBus.h>
#include <ScriptCanvas/Bus/UnitTestVerificationBus.h>
#include <ScriptCanvas/Data/DataRegistry.h>
@@ -522,18 +522,7 @@ namespace ScriptCanvasEditor
ScriptCanvasEditor::SourceHandle source(nullptr, scriptUuid, "");
ScriptCanvasEditor::CompleteDescriptionInPlace(source);
// #sc_editor_asset_redux
// AZ::Data::AssetInfo assetInfo;
// if (AssetHelpers::GetAssetInfo(sourceBrowserEntry->GetFullPath(), assetInfo))
// {
// auto asset = AZ::Data::AssetManager::Instance().GetAsset(assetInfo.m_assetId, azrtti_typeid<ScriptCanvasAsset>(), AZ::Data::AssetLoadBehavior::PreLoad);
// asset.BlockUntilLoadComplete();
// if (asset.IsReady())
// {
// RunTestGraph(asset, mode);
// }
// }
RunTestGraph(source, mode);
}
}
}
@@ -582,19 +571,19 @@ namespace ScriptCanvasEditor
m_testMetrics[interpretedMode].Clear();
}
void UnitTestDockWidget::RunTestGraph(AZ::Data::Asset<AZ::Data::AssetData> asset, ScriptCanvas::ExecutionMode mode)
void UnitTestDockWidget::RunTestGraph(SourceHandle asset, ScriptCanvas::ExecutionMode mode)
{
Reporter reporter;
UnitTestWidgetNotificationBus::Broadcast(&UnitTestWidgetNotifications::OnTestStart, asset.GetId().m_guid);
UnitTestWidgetNotificationBus::Broadcast(&UnitTestWidgetNotifications::OnTestStart, asset);
ScriptCanvasExecutionBus::BroadcastResult(reporter, &ScriptCanvasExecutionRequests::RunAssetGraph, asset, mode);
UnitTestResult testResult;
UnitTestVerificationBus::BroadcastResult(testResult, &UnitTestVerificationRequests::Verify, reporter);
UnitTestWidgetNotificationBus::Broadcast(&UnitTestWidgetNotifications::OnTestResult, asset.GetId().m_guid, testResult);
UnitTestWidgetNotificationBus::Broadcast(&UnitTestWidgetNotifications::OnTestResult, asset, testResult);
m_pendingTests.Add(asset.GetId(), mode);
m_pendingTests.Add(asset, mode);
++m_testMetrics[static_cast<int>(mode)].m_graphsTested;
@@ -33,7 +33,7 @@
#include <Editor/QtMetaTypes.h>
#include <ScriptCanvas/Data/DataRegistry.h>
#include <ScriptCanvas/Assets/ScriptCanvasAsset.h>
#include <AzCore/Asset/AssetManagerBus.h>
#include <AzCore/Asset/AssetManager.h>
@@ -716,7 +716,6 @@ namespace ScriptCanvasEditor
void GraphVariablesModel::SetActiveScene(const ScriptCanvas::ScriptCanvasId& scriptCanvasId)
{
ScriptCanvas::GraphVariableManagerNotificationBus::Handler::BusDisconnect();
m_assetType = azrtti_typeid<ScriptCanvasAsset>();
m_scriptCanvasId = scriptCanvasId;
if (m_scriptCanvasId.IsValid())
@@ -919,11 +918,6 @@ namespace ScriptCanvasEditor
return -1;
}
bool GraphVariablesModel::IsFunction()const
{
return m_assetType == azrtti_typeid<ScriptCanvas::SubgraphInterfaceAsset>();
}
////////////////////////////////////////////
// GraphVariablesModelSortFilterProxyModel
////////////////////////////////////////////
@@ -106,8 +106,6 @@ namespace ScriptCanvasEditor
void PopulateSceneVariables();
AZ::Data::AssetType m_assetType;
AZStd::vector<ScriptCanvas::GraphScopedVariableId> m_variableIds;
ScriptCanvas::ScriptCanvasId m_scriptCanvasId;
};
@@ -96,7 +96,7 @@
#include <ScriptCanvas/Core/ScriptCanvasBus.h>
#include <ScriptCanvas/Core/Graph.h>
#include <ScriptCanvas/Assets/ScriptCanvasAsset.h>
#include <ScriptCanvas/Libraries/Core/FunctionDefinitionNode.h>
#include <GraphCanvas/GraphCanvasBus.h>
@@ -146,7 +146,7 @@
#include <Editor/Assets/ScriptCanvasAssetHelpers.h>
#include <ScriptCanvas/Asset/AssetDescription.h>
#include <ScriptCanvas/Components/EditorScriptCanvasComponent.h>
#include <ScriptCanvas/Assets/ScriptCanvasAsset.h>
#include <Editor/QtMetaTypes.h>
#include <GraphCanvas/Components/SceneBus.h>
@@ -434,7 +434,8 @@ namespace ScriptCanvasEditor
m_scriptCanvasAssetModel = new ScriptCanvasAssetBrowserModel(this);
AzToolsFramework::AssetBrowser::AssetGroupFilter* scriptCanvasAssetFilter = new AzToolsFramework::AssetBrowser::AssetGroupFilter();
scriptCanvasAssetFilter->SetAssetGroup(ScriptCanvasAsset::Description::GetGroup(azrtti_typeid<ScriptCanvasAsset>()));
// #sc_editor_asset_redux this may not be needed, may not be doing the right thing at all...
scriptCanvasAssetFilter->SetAssetGroup(ScriptCanvasAsset::Description::GetGroup(azrtti_typeid<ScriptCanvas::SubgraphInterfaceAsset>()));
scriptCanvasAssetFilter->SetFilterPropagation(AzToolsFramework::AssetBrowser::AssetBrowserEntryFilter::PropagateDirection::Down);
m_scriptCanvasAssetModel->setSourceModel(assetBrowserModel);
@@ -432,7 +432,6 @@ namespace ScriptCanvasEditor
AZ::Outcome<int, AZStd::string> CreateScriptCanvasAsset(AZStd::string_view assetPath, int tabIndex = -1);
//! Removes the assetId -> ScriptCanvasAsset mapping and disconnects from the asset tracker
void RemoveScriptCanvasAsset(const ScriptCanvasEditor::SourceHandle& assetId);
void OnChangeActiveGraphTab(ScriptCanvasEditor::SourceHandle) override;
@@ -11,7 +11,7 @@
#include <Editor/View/Windows/Tools/UpgradeTool/Model.h>
#include <IConsole.h>
#include <ISystem.h>
#include <ScriptCanvas/Assets/ScriptCanvasAsset.h>
namespace ModifierCpp
{
@@ -10,7 +10,7 @@
#include <Editor/View/Windows/Tools/UpgradeTool/LogTraits.h>
#include <Editor/View/Windows/Tools/UpgradeTool/Modifier.h>
#include <ScriptCanvas/Asset/RuntimeAsset.h>
#include <ScriptCanvas/Assets/ScriptCanvasAsset.h>
#include <ScriptCanvas/Assets/ScriptCanvasFileHandling.h>
#include <ScriptCanvas/Core/Graph.h>
@@ -12,7 +12,7 @@
#include <AzToolsFramework/AssetBrowser/AssetBrowserModel.h>
#include <Editor/View/Windows/Tools/UpgradeTool/LogTraits.h>
#include <Editor/View/Windows/Tools/UpgradeTool/Scanner.h>
#include <ScriptCanvas/Assets/ScriptCanvasAsset.h>
#include <ScriptCanvas/Assets/ScriptCanvasFileHandling.h>
namespace ScannerCpp
@@ -317,6 +317,23 @@ namespace ScriptCanvasEditor
using GraphPtr = Graph*;
using GraphPtrConst = const Graph*;
class SourceDescription
{
public:
static inline constexpr const char* GetAssetGroup() { return "ScriptCanvas"; }
inline static constexpr const char* GetType() { return "{FA10C3DA-0717-4B72-8944-CD67D13DFA2B}"; } // type
inline static constexpr const char* GetName() { return "Script Canvas"; } // name
inline static constexpr const char* GetDescription() { return "Script Canvas Graph Asset"; } // description
inline static constexpr const char* GetSuggestedSavePath() { return "@projectroot@/scriptcanvas"; } // suggested save path
inline static constexpr const char* GetFileExtension() { return ".scriptcanvas"; } // fileExtention
inline static constexpr const char* GetGroup() { return "Script Canvas"; } // group
inline static constexpr const char* GetAssetNamePattern() { return "Untitled-%i"; } // asset name pattern
inline static constexpr const char* GetFileFilter() { return "Script Canvas Files (*.scriptcanvas)"; } // file filter
inline static constexpr const char* GetAssetTypeDisplayName() { return "Script Canvas"; } // asset type display name
inline static constexpr const char* GetEntityName() { return "Script Canvas"; } // entity name
inline static constexpr const char* GetIconPath() { return "Icons/ScriptCanvas/Viewport/ScriptCanvas.png"; } // icon pa
};
class SourceHandle
{
public:
@@ -19,10 +19,7 @@ set(FILES
Editor/Assets/ScriptCanvasAssetHelpers.cpp
Editor/Include/ScriptCanvas/Assets/ScriptCanvasBaseAssetData.h
Editor/Include/ScriptCanvas/Assets/ScriptCanvasBaseAssetData.cpp
Editor/Include/ScriptCanvas/Assets/ScriptCanvasAsset.h
Editor/Assets/ScriptCanvasAsset.cpp
Editor/Include/ScriptCanvas/Assets/ScriptCanvasAssetBus.h
Editor/Include/ScriptCanvas/Assets/ScriptCanvasAssetTypes.h
Editor/Include/ScriptCanvas/Assets/ScriptCanvasFileHandling.h
Editor/Assets/ScriptCanvasFileHandling.cpp
Editor/Assets/ScriptCanvasUndoHelper.h
@@ -9,15 +9,12 @@
set(FILES
Include/ScriptCanvas/SystemComponent.h
Include/ScriptCanvas/ScriptCanvasGem.h
Include/ScriptCanvas/Asset/AssetDescription.h
Include/ScriptCanvas/Asset/AssetRegistry.h
Include/ScriptCanvas/Asset/AssetRegistryBus.h
Include/ScriptCanvas/Asset/ExecutionLogAsset.h
Include/ScriptCanvas/Asset/ExecutionLogAssetBus.h
Include/ScriptCanvas/Asset/RuntimeAsset.h
Include/ScriptCanvas/Asset/RuntimeAssetHandler.h
Include/ScriptCanvas/Asset/ScriptCanvasAssetBase.h
Include/ScriptCanvas/Asset/ScriptCanvasAssetData.h
Include/ScriptCanvas/Asset/SubgraphInterfaceAssetHandler.h
Include/ScriptCanvas/Core/ScriptCanvasBus.h
Include/ScriptCanvas/Core/ExecutionNotificationsBus.h