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
@@ -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