Integrating latest 47acbe8

This commit is contained in:
alexpete
2021-03-25 13:57:57 -07:00
parent 448c549698
commit 75dc720198
10312 changed files with 2711566 additions and 671451 deletions
@@ -29,7 +29,7 @@
#include <Editor/View/Windows/MainWindow.h>
#include <Editor/View/Dialogs/NewGraphDialog.h>
#include <Editor/View/Dialogs/Settings.h>
#include <Editor/View/Dialogs/SettingsDialog.h>
#include <Editor/Settings.h>
#include <ScriptCanvas/Bus/EditorScriptCanvasBus.h>
@@ -43,23 +43,32 @@
#include <LyViewPaneNames.h>
#include <QMenu>
#include <QMessageBox>
#include <ScriptCanvas/View/EditCtrls/GenericLineEditCtrl.h>
#include <Editor/Framework/ScriptCanvasGraphUtilities.h>
#include <AzToolsFramework/AssetBrowser/Entries/SourceAssetBrowserEntry.h>
#include <AzFramework/IO/FileOperations.h>
#include <AzCore/Serialization/Utils.h>
#include <ScriptCanvas/Asset/Functions/ScriptCanvasFunctionAsset.h>
namespace ScriptCanvasEditor
{
static const size_t cs_jobThreads = 1;
SystemComponent::SystemComponent()
{
AzToolsFramework::AssetSeedManagerRequests::Bus::Handler::BusConnect();
}
SystemComponent::~SystemComponent()
{
AzToolsFramework::UnregisterViewPane(LyViewPane::ScriptCanvas);
AzToolsFramework::EditorEvents::Bus::Handler::BusDisconnect();
AzFramework::AssetCatalogEventBus::Handler::BusDisconnect();
AzToolsFramework::AssetSeedManagerRequests::Bus::Handler::BusDisconnect();
}
void SystemComponent::Reflect(AZ::ReflectContext* context)
@@ -131,6 +140,23 @@ namespace ScriptCanvasEditor
ScriptCanvasExecutionBus::Handler::BusConnect();
AzToolsFramework::EditorEvents::Bus::Handler::BusConnect();
AzToolsFramework::AssetBrowser::AssetBrowserInteractionNotificationBus::Handler::BusConnect();
auto userSettings = AZ::UserSettings::CreateFind<EditorSettings::ScriptCanvasEditorSettings>(AZ_CRC("ScriptCanvasPreviewSettings", 0x1c5a2965), AZ::UserSettings::CT_LOCAL);
if (userSettings)
{
if (userSettings->m_showUpgradeDialog)
{
AzFramework::AssetCatalogEventBus::Handler::BusConnect();
}
else
{
m_upgradeDisabled = true;
}
}
else
{
AzFramework::AssetCatalogEventBus::Handler::BusConnect();
}
}
void SystemComponent::NotifyRegisterViews()
@@ -149,6 +175,7 @@ namespace ScriptCanvasEditor
AzToolsFramework::EditorEvents::Bus::Handler::BusDisconnect();
ScriptCanvasExecutionBus::Handler::BusDisconnect();
SystemRequestBus::Handler::BusDisconnect();
AzFramework::AssetCatalogEventBus::Handler::BusDisconnect();
for (auto&& propertyHandler : m_propertyHandlers)
{
@@ -370,11 +397,89 @@ namespace ScriptCanvasEditor
}
}
Reporter SystemComponent::RunGraph(AZStd::string_view path)
Reporter SystemComponent::RunGraph(AZStd::string_view path, ScriptCanvas::ExecutionMode mode)
{
RunGraphSpec runGraphSpec;
runGraphSpec.graphPath = path;
runGraphSpec.runSpec.execution = mode;
return ScriptCanvasEditor::RunGraph(runGraphSpec).front();
}
Reporter SystemComponent::RunAssetGraph(AZ::Data::Asset<AZ::Data::AssetData> asset, ScriptCanvas::ExecutionMode mode)
{
Reporter reporter;
ScriptCanvasEditor::RunGraph(path, ExecutionMode::Interpreted, DurationSpec(), reporter);
RunEditorAsset(asset, reporter, mode);
return reporter;
}
void SystemComponent::OnCatalogLoaded(const char* /*catalogFile*/)
{
// Enumerate all ScriptCanvas assets
AZ::Data::AssetCatalogRequestBus::Broadcast(&AZ::Data::AssetCatalogRequestBus::Events::EnumerateAssets,
nullptr,
[this](const AZ::Data::AssetId, const AZ::Data::AssetInfo& assetInfo) {
if (assetInfo.m_assetType == azrtti_typeid<ScriptCanvasAsset>() || assetInfo.m_assetType == azrtti_typeid<ScriptCanvasFunctionAsset>())
{
AddAssetToUpgrade(assetInfo);
}
},
nullptr
);
}
void SystemComponent::OnCatalogAssetAdded(const AZ::Data::AssetId& assetId)
{
if (IsUpgrading())
{
return;
}
auto assetInfo = ScriptCanvasEditor::AssetHelpers::GetAssetInfo(assetId);
AddAssetToUpgrade(assetInfo);
}
void SystemComponent::OnCatalogAssetRemoved(const AZ::Data::AssetId& assetId, const AZ::Data::AssetInfo& /*assetInfo*/)
{
if (IsUpgrading())
{
return;
}
AZStd::erase_if(m_assetsToConvert, [assetId](const AZ::Data::AssetInfo& assetToConvert)
{
return assetToConvert.m_assetId == assetId;
}
);
}
void SystemComponent::AddAssetToUpgrade(const AZ::Data::AssetInfo& assetInfo)
{
auto query = AZStd::find_if(m_assetsToConvert.begin(), m_assetsToConvert.end(), [assetInfo](const AZ::Data::AssetInfo& assetToConvert)
{
return assetToConvert.m_assetId == assetInfo.m_assetId;
}
);
if (query == m_assetsToConvert.end())
{
if (assetInfo.m_assetType == azrtti_typeid<ScriptCanvasFunctionAsset>())
{
m_assetsToConvert.push_front(assetInfo);
}
else if (assetInfo.m_assetType == azrtti_typeid<ScriptCanvasAsset>())
{
m_assetsToConvert.push_back(assetInfo);
}
}
}
AzToolsFramework::AssetSeedManagerRequests::AssetTypePairs SystemComponent::GetAssetTypeMapping()
{
return {
{ "scriptcanvas", "scriptcanvas_compiled" },
{ "scriptcanvas_fn", "scriptcanvas_fn_compiled" }
};
}
}