redcode sc asset files bloodbath
Signed-off-by: carlitosan <82187351+carlitosan@users.noreply.github.com>
This commit is contained in:
@@ -6,15 +6,15 @@
|
||||
*
|
||||
*/
|
||||
|
||||
#include <AzCore/Asset/AssetSerializer.h>
|
||||
#include <AzToolsFramework/API/EditorAssetSystemAPI.h>
|
||||
#include <Builder/ScriptCanvasBuilder.h>
|
||||
#include <Builder/ScriptCanvasBuilderWorker.h>
|
||||
|
||||
#include <ScriptCanvas/Assets/ScriptCanvasFileHandling.h>
|
||||
#include <ScriptCanvas/Components/EditorDeprecationData.h>
|
||||
#include <ScriptCanvas/Components/EditorGraph.h>
|
||||
#include <ScriptCanvas/Components/EditorGraphVariableManagerComponent.h>
|
||||
#include <ScriptCanvas/Grammar/AbstractCodeModel.h>
|
||||
#include <AzCore/Asset/AssetSerializer.h>
|
||||
#include <ScriptCanvas/Assets/ScriptCanvasFileHandling.h>
|
||||
#include <ScriptCanvas/Components/EditorGraph.h>
|
||||
|
||||
namespace BuildVariableOverridesCpp
|
||||
{
|
||||
@@ -41,7 +41,7 @@ namespace BuildVariableOverridesCpp
|
||||
}
|
||||
|
||||
auto& sourceElement = rootElement.GetSubElement(sourceIndex);
|
||||
AZ::Data::Asset<ScriptCanvasEditor::ScriptCanvasAsset> asset;
|
||||
AZ::Data::Asset<ScriptCanvasEditor::Deprecated::ScriptCanvasAsset> asset;
|
||||
if (!sourceElement.GetData(asset))
|
||||
{
|
||||
AZ_Error("ScriptCanvas", false, "BuildVariableOverrides coversion failed: could not retrieve 'source' data");
|
||||
|
||||
@@ -15,7 +15,6 @@
|
||||
|
||||
namespace ScriptCanvasEditor
|
||||
{
|
||||
class ScriptCanvasAsset;
|
||||
class EditorAssetTree;
|
||||
}
|
||||
|
||||
|
||||
@@ -96,8 +96,6 @@ namespace ScriptCanvasBuilder
|
||||
builderDescriptor.m_productsToKeepOnFailure[s_scriptCanvasProcessJobKey] = { AZ_CRC("SubgraphInterface", 0xdfe6dc72) };
|
||||
m_scriptCanvasBuilder.BusConnect(builderDescriptor.m_busId);
|
||||
AssetBuilderSDK::AssetBuilderBus::Broadcast(&AssetBuilderSDK::AssetBuilderBus::Handler::RegisterBuilderInformation, builderDescriptor);
|
||||
|
||||
AzToolsFramework::ToolsAssetSystemBus::Broadcast(&AzToolsFramework::ToolsAssetSystemRequests::RegisterSourceAssetType, azrtti_typeid<ScriptCanvasEditor::ScriptCanvasAsset>(), ScriptCanvasEditor::ScriptCanvasAsset::Description::GetFileFilter<ScriptCanvasEditor::ScriptCanvasAsset>());
|
||||
}
|
||||
|
||||
m_sharedHandlers = HandleAssetTypes();
|
||||
@@ -109,7 +107,6 @@ namespace ScriptCanvasBuilder
|
||||
{
|
||||
// Finish all queued work
|
||||
AZ::Data::AssetBus::ExecuteQueuedEvents();
|
||||
AzToolsFramework::ToolsAssetSystemBus::Broadcast(&AzToolsFramework::ToolsAssetSystemRequests::UnregisterSourceAssetType, azrtti_typeid<ScriptCanvasEditor::ScriptCanvasAsset>());
|
||||
m_scriptCanvasBuilder.BusDisconnect();
|
||||
m_sharedHandlers.DeleteOwnedHandlers();
|
||||
}
|
||||
|
||||
@@ -44,10 +44,8 @@ namespace ScriptCanvasBuilder
|
||||
AzFramework::StringFunc::Path::ConstructFull(request.m_watchFolder.data(), request.m_sourceFile.data(), fullPath, false);
|
||||
AzFramework::StringFunc::Path::Normalize(fullPath);
|
||||
|
||||
AZ::Data::Asset<ScriptCanvasEditor::ScriptCanvasAsset> asset;
|
||||
const ScriptCanvasEditor::Graph* sourceGraph = nullptr;
|
||||
const ScriptCanvas::GraphData* graphData = nullptr;
|
||||
|
||||
ScriptCanvasEditor::SourceHandle sourceHandle;
|
||||
|
||||
auto sourceOutcome = ScriptCanvasEditor::LoadFromFile(fullPath);
|
||||
@@ -57,7 +55,14 @@ namespace ScriptCanvasBuilder
|
||||
sourceGraph = sourceHandle.Get();
|
||||
graphData = sourceGraph->GetGraphDataConst();
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
AZ_TracePrintf(s_scriptCanvasBuilder, "Failed to load the file: %s", fullPath.c_str());
|
||||
response.m_result = AssetBuilderSDK::CreateJobsResultCode::Failed;
|
||||
}
|
||||
|
||||
// in terms of job creation, assert on anything but smooth sailing from this point
|
||||
|
||||
AZ_Assert(sourceGraph, "Graph component is missing from entity.");
|
||||
AZ_Assert(graphData, "GraphData is missing from entity");
|
||||
|
||||
|
||||
@@ -36,7 +36,6 @@ namespace ScriptCanvas
|
||||
namespace ScriptCanvasEditor
|
||||
{
|
||||
class Graph;
|
||||
class ScriptCanvasAsset;
|
||||
class SourceHandle;
|
||||
}
|
||||
|
||||
@@ -132,8 +131,6 @@ namespace ScriptCanvasBuilder
|
||||
|
||||
int GetBuilderVersion();
|
||||
|
||||
AZ::Outcome<AZ::Data::Asset<ScriptCanvasEditor::ScriptCanvasAsset>, AZStd::string> LoadEditorAsset(AZStd::string_view graphPath, AZ::Data::AssetId assetId, AZ::Data::AssetFilterCB assetFilterCB = {});
|
||||
|
||||
AZ::Outcome<ScriptCanvas::Grammar::AbstractCodeModelConstPtr, AZStd::string> ParseGraph(AZ::Entity& buildEntity, AZStd::string_view graphPath);
|
||||
|
||||
AZ::Outcome<void, AZStd::string> ProcessTranslationJob(ProcessTranslationJobInput& input);
|
||||
|
||||
@@ -59,7 +59,7 @@ namespace ScriptCanvasEditor
|
||||
}
|
||||
|
||||
auto assetElement = rootElement.GetSubElement(assetElementIndex);
|
||||
AZ::Data::Asset<ScriptCanvasAsset> scriptCanvasAsset;
|
||||
AZ::Data::Asset<Deprecated::ScriptCanvasAsset> scriptCanvasAsset;
|
||||
if (!assetElement.GetData(scriptCanvasAsset))
|
||||
{
|
||||
AZ_Error("Script Canvas", false, "Unable to find Script Canvas Asset on a Version %u Editor ScriptCanvas Component", rootElement.GetVersion());
|
||||
|
||||
@@ -42,8 +42,6 @@ namespace ScriptCanvas
|
||||
|
||||
namespace ScriptCanvasEditor
|
||||
{
|
||||
class ScriptCanvasAsset;
|
||||
|
||||
struct LoadTestGraphResult
|
||||
{
|
||||
AZStd::unique_ptr<AZ::Entity> m_entity;
|
||||
|
||||
@@ -20,7 +20,6 @@
|
||||
#include <GraphCanvas/Editor/EditorTypes.h>
|
||||
#include <GraphCanvas/Types/EntitySaveData.h>
|
||||
|
||||
#include <Editor/Include/ScriptCanvas/Assets/ScriptCanvasAsset.h>
|
||||
#include <Editor/Include/ScriptCanvas/Bus/NodeIdPair.h>
|
||||
#include <ScriptCanvas/Core/ExecutionNotificationsBus.h>
|
||||
#include <ScriptCanvas/Variable/VariableCore.h>
|
||||
|
||||
+6
-39
@@ -11,67 +11,34 @@
|
||||
#include <AzCore/Component/EntityId.h>
|
||||
#include <AzCore/Asset/AssetCommon.h>
|
||||
#include <ScriptCanvas/Core/Core.h>
|
||||
|
||||
class ScriptCanvasAsset;
|
||||
|
||||
#include <AzCore/Asset/AssetCommon.h>
|
||||
|
||||
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:
|
||||
AZ_TYPE_INFO(ScriptCanvasAssetHolder, "{3E80CEE3-2932-4DC1-AADF-398FDDC6DEFE}");
|
||||
AZ_CLASS_ALLOCATOR(ScriptCanvasAssetHolder, AZ::SystemAllocator, 0);
|
||||
|
||||
ScriptCanvasAssetHolder() = default;
|
||||
static void Reflect(AZ::ReflectContext* context);
|
||||
|
||||
AZ::Data::Asset<ScriptCanvasAsset> m_scriptCanvasAsset;
|
||||
|
||||
ScriptCanvasAssetHolder() = default;
|
||||
};
|
||||
|
||||
// only is used as a pass-through to loading a guid / hint during versioning
|
||||
class ScriptCanvasAsset
|
||||
: public AZ::Data::AssetData
|
||||
{
|
||||
public:
|
||||
AZ_TYPE_INFO(ScriptCanvasAsset, "{3E80CEE3-2932-4DC1-AADF-398FDDC6DEFE}");
|
||||
AZ_TYPE_INFO(ScriptCanvasAsset, "{FA10C3DA-0717-4B72-8944-CD67D13DFA2B}");
|
||||
AZ_CLASS_ALLOCATOR(ScriptCanvasAsset, AZ::SystemAllocator, 0);
|
||||
|
||||
ScriptCanvasAsset() = default;
|
||||
static void Reflect(AZ::ReflectContext * context);
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
+2
-15
@@ -21,14 +21,8 @@
|
||||
namespace ScriptCanvasEditor
|
||||
{
|
||||
/*! EditorScriptCanvasComponent
|
||||
The user facing Editor Component for interfacing with ScriptCanvas
|
||||
It connects to the AssetCatalogEventBus in order to remove the ScriptCanvasAssetHolder asset reference
|
||||
when the asset is removed from the file system. The reason the ScriptCanvasAssetHolder holder does not
|
||||
remove the asset reference itself is because the ScriptCanvasEditor MainWindow has a ScriptCanvasAssetHolder
|
||||
which it uses to maintain the asset data in memory. Therefore removing an open ScriptCanvasAsset from the file system
|
||||
will remove the reference from the EditorScriptCanvasComponent, but not the reference from the MainWindow allowing the
|
||||
ScriptCanvas graph to still be modified while open
|
||||
Finally per graph instance variables values are stored on the EditorScriptCanvasComponent and injected into the runtime ScriptCanvas component in BuildGameEntity
|
||||
The user facing Editor Component for interfacing with ScriptCanvas.
|
||||
Per graph instance variables values are stored here and injected into the runtime ScriptCanvas component in BuildGameEntity.
|
||||
*/
|
||||
class EditorScriptCanvasComponent
|
||||
: public AzToolsFramework::Components::EditorComponentBase
|
||||
@@ -88,13 +82,6 @@ namespace ScriptCanvasEditor
|
||||
AZ::Data::AssetId GetAssetId() const override;
|
||||
//=====================================================================
|
||||
|
||||
|
||||
|
||||
|
||||
//=====================================================================
|
||||
// EditorEntityContextNotificationBus
|
||||
|
||||
|
||||
protected:
|
||||
enum class SourceChangeDescription : AZ::u8
|
||||
{
|
||||
|
||||
@@ -434,8 +434,9 @@ namespace ScriptCanvasEditor
|
||||
m_scriptCanvasAssetModel = new ScriptCanvasAssetBrowserModel(this);
|
||||
|
||||
AzToolsFramework::AssetBrowser::AssetGroupFilter* scriptCanvasAssetFilter = new AzToolsFramework::AssetBrowser::AssetGroupFilter();
|
||||
// #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>()));
|
||||
// #sc_editor_asset_redux this may not be needed, may not be doing the right thing at all, verify that searching through
|
||||
// the subgraph interface assets is the correct thing to do
|
||||
scriptCanvasAssetFilter->SetAssetGroup(ScriptCanvas::SubgraphInterfaceAssetDescription().GetGroupImpl());
|
||||
scriptCanvasAssetFilter->SetFilterPropagation(AzToolsFramework::AssetBrowser::AssetBrowserEntryFilter::PropagateDirection::Down);
|
||||
|
||||
m_scriptCanvasAssetModel->setSourceModel(assetBrowserModel);
|
||||
@@ -1483,17 +1484,17 @@ namespace ScriptCanvasEditor
|
||||
|
||||
for (;;)
|
||||
{
|
||||
ScriptCanvasAssetDescription description;
|
||||
AZStd::string newAssetName = AZStd::string::format(description.GetAssetNamePatternImpl(), ++scriptCanvasEditorDefaultNewNameCount);
|
||||
AZStd::string newAssetName = AZStd::string::format(SourceDescription::GetAssetNamePattern()
|
||||
, ++scriptCanvasEditorDefaultNewNameCount);
|
||||
|
||||
AZStd::array<char, AZ::IO::MaxPathLength> assetRootArray;
|
||||
if (!AZ::IO::FileIOBase::GetInstance()->ResolvePath(description.GetSuggestedSavePathImpl()
|
||||
if (!AZ::IO::FileIOBase::GetInstance()->ResolvePath(SourceDescription::GetSuggestedSavePath()
|
||||
, assetRootArray.data(), assetRootArray.size()))
|
||||
{
|
||||
AZ_ErrorOnce("Script Canvas", false, "Unable to resolve @projectroot@ path");
|
||||
}
|
||||
|
||||
AzFramework::StringFunc::Path::Join(assetRootArray.data(), (newAssetName + description.GetExtensionImpl()).data(), assetPath);
|
||||
AzFramework::StringFunc::Path::Join(assetRootArray.data(), (newAssetName + SourceDescription::GetFileExtension()).data(), assetPath);
|
||||
AZ::Data::AssetInfo assetInfo;
|
||||
|
||||
if (!AssetHelpers::GetAssetInfo(assetPath, assetInfo))
|
||||
@@ -1621,7 +1622,6 @@ namespace ScriptCanvasEditor
|
||||
}
|
||||
|
||||
PrepareAssetForSave(inMemoryAssetId);
|
||||
ScriptCanvasAssetDescription assetDescription;
|
||||
|
||||
AZStd::string suggestedFilename;
|
||||
AZStd::string suggestedFileFilter;
|
||||
@@ -1630,16 +1630,16 @@ namespace ScriptCanvasEditor
|
||||
if (save == Save::InPlace)
|
||||
{
|
||||
isValidFileName = true;
|
||||
suggestedFileFilter = ScriptCanvasAssetDescription().GetExtensionImpl();
|
||||
suggestedFileFilter = SourceDescription::GetFileExtension();
|
||||
suggestedFilename = inMemoryAssetId.Path().c_str();
|
||||
}
|
||||
else
|
||||
{
|
||||
suggestedFileFilter = ScriptCanvasAssetDescription().GetExtensionImpl();
|
||||
suggestedFileFilter = SourceDescription::GetFileExtension();
|
||||
|
||||
if (inMemoryAssetId.Path().empty())
|
||||
{
|
||||
suggestedFilename = ScriptCanvasAssetDescription().GetSuggestedSavePathImpl();
|
||||
suggestedFilename = SourceDescription::GetSuggestedSavePath();
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1661,9 +1661,9 @@ namespace ScriptCanvasEditor
|
||||
{
|
||||
AZStd::string filePath = selectedFile.toUtf8().data();
|
||||
|
||||
if (!AZ::StringFunc::EndsWith(filePath, assetDescription.GetExtensionImpl(), false))
|
||||
if (!AZ::StringFunc::EndsWith(filePath, SourceDescription::GetFileExtension(), false))
|
||||
{
|
||||
filePath += assetDescription.GetExtensionImpl();
|
||||
filePath += SourceDescription::GetFileExtension();
|
||||
}
|
||||
|
||||
AZStd::string fileName;
|
||||
@@ -1695,9 +1695,9 @@ namespace ScriptCanvasEditor
|
||||
AZStd::string internalStringFile = selectedFile.toUtf8().data();
|
||||
|
||||
|
||||
if (!AZ::StringFunc::EndsWith(internalStringFile, assetDescription.GetExtensionImpl(), false))
|
||||
if (!AZ::StringFunc::EndsWith(internalStringFile, SourceDescription::GetFileExtension(), false))
|
||||
{
|
||||
internalStringFile += assetDescription.GetExtensionImpl();
|
||||
internalStringFile += SourceDescription::GetFileExtension();
|
||||
}
|
||||
|
||||
if (!AssetHelpers::IsValidSourceFile(internalStringFile, GetActiveScriptCanvasId()))
|
||||
|
||||
@@ -1,89 +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/std/smart_ptr/enable_shared_from_this.h>
|
||||
#include <AzCore/Asset/AssetCommon.h>
|
||||
#include <Editor/Include/ScriptCanvas/Assets/ScriptCanvasAssetBus.h>
|
||||
#include <Editor/Include/ScriptCanvas/Assets/ScriptCanvasBaseAssetData.h>
|
||||
#include <ScriptCanvas/Asset/AssetDescription.h>
|
||||
|
||||
namespace ScriptCanvas
|
||||
{
|
||||
class ScriptCanvasAssetBase
|
||||
: public AZ::Data::AssetData
|
||||
, public AZStd::enable_shared_from_this<ScriptCanvasAssetBase>
|
||||
, ScriptCanvas::ScriptCanvasAssetBusRequestBus::Handler
|
||||
{
|
||||
|
||||
public:
|
||||
AZ_RTTI(ScriptCanvasAssetBase, "{D07DBDE4-A169-4650-871B-FC75AFEEB03E}", AZ::Data::AssetData);
|
||||
AZ_CLASS_ALLOCATOR(ScriptCanvasAssetBase, AZ::SystemAllocator, 0);
|
||||
|
||||
ScriptCanvasAssetBase(const AZ::Data::AssetId& assetId = AZ::Data::AssetId(AZ::Uuid::CreateRandom()),
|
||||
AZ::Data::AssetData::AssetStatus status = AZ::Data::AssetData::AssetStatus::NotLoaded)
|
||||
: AZ::Data::AssetData(assetId, status)
|
||||
{
|
||||
ScriptCanvas::ScriptCanvasAssetBusRequestBus::Handler::BusConnect(GetId());
|
||||
}
|
||||
|
||||
virtual ~ScriptCanvasAssetBase()
|
||||
{
|
||||
delete m_data;
|
||||
ScriptCanvas::ScriptCanvasAssetBusRequestBus::Handler::BusDisconnect();
|
||||
}
|
||||
|
||||
template <typename DataType>
|
||||
DataType* GetScriptCanvasDataAs()
|
||||
{
|
||||
return azrtti_cast<DataType*>(m_data);
|
||||
}
|
||||
|
||||
template <typename DataType>
|
||||
const DataType* GetScriptCanvasDataAs() const
|
||||
{
|
||||
return azrtti_cast<DataType*>(m_data);
|
||||
}
|
||||
|
||||
virtual ScriptCanvasData& GetScriptCanvasData()
|
||||
{
|
||||
return *m_data;
|
||||
}
|
||||
|
||||
virtual const ScriptCanvasData& GetScriptCanvasData() const
|
||||
{
|
||||
return *m_data;
|
||||
}
|
||||
|
||||
AZ::Entity* GetScriptCanvasEntity() const
|
||||
{
|
||||
return m_data->m_scriptCanvasEntity.get();
|
||||
}
|
||||
|
||||
virtual void SetScriptCanvasEntity(AZ::Entity* scriptCanvasEntity)
|
||||
{
|
||||
if (m_data->m_scriptCanvasEntity.get() != scriptCanvasEntity)
|
||||
{
|
||||
m_data->m_scriptCanvasEntity.reset(scriptCanvasEntity);
|
||||
}
|
||||
}
|
||||
|
||||
virtual ScriptCanvas::AssetDescription GetAssetDescription() const = 0;
|
||||
|
||||
protected:
|
||||
|
||||
ScriptCanvasData* m_data;
|
||||
|
||||
void SetAsNewAsset() override
|
||||
{
|
||||
m_status = AZ::Data::AssetData::AssetStatus::Ready;
|
||||
}
|
||||
|
||||
};
|
||||
}
|
||||
@@ -17,9 +17,6 @@ set(FILES
|
||||
Editor/QtMetaTypes.h
|
||||
Editor/Assets/ScriptCanvasAssetHelpers.h
|
||||
Editor/Assets/ScriptCanvasAssetHelpers.cpp
|
||||
Editor/Include/ScriptCanvas/Assets/ScriptCanvasBaseAssetData.h
|
||||
Editor/Include/ScriptCanvas/Assets/ScriptCanvasBaseAssetData.cpp
|
||||
Editor/Include/ScriptCanvas/Assets/ScriptCanvasAssetBus.h
|
||||
Editor/Include/ScriptCanvas/Assets/ScriptCanvasFileHandling.h
|
||||
Editor/Assets/ScriptCanvasFileHandling.cpp
|
||||
Editor/Assets/ScriptCanvasUndoHelper.h
|
||||
|
||||
Reference in New Issue
Block a user