fix for double asset registration and multiple outs from loop nodes

Signed-off-by: chcurran <82187351+carlitosan@users.noreply.github.com>
This commit is contained in:
chcurran
2021-07-28 16:51:25 -07:00
parent 2f10f33bf6
commit d7a4b0d930
5 changed files with 2218 additions and 34 deletions
@@ -191,7 +191,6 @@ namespace GraphCanvas
void GraphCanvasSystemComponent::Activate()
{
RegisterAssetHandler();
RegisterTranslationBuilder();
AzFramework::AssetCatalogEventBus::Handler::BusConnect();
@@ -386,34 +385,6 @@ namespace GraphCanvas
AZ::Data::AssetCatalogRequestBus::Broadcast(&AZ::Data::AssetCatalogRequestBus::Events::EnumerateAssets, nullptr, collectAssetsCb, postEnumerateCb);
}
void GraphCanvasSystemComponent::RegisterAssetHandler()
{
AZ::Data::AssetType assetType(azrtti_typeid<TranslationAsset>());
if (AZ::Data::AssetManager::Instance().GetHandler(assetType))
{
return; // Asset Type already handled
}
auto* catalogBus = AZ::Data::AssetCatalogRequestBus::FindFirstHandler();
if (catalogBus)
{
// Register asset types the asset DB should query our catalog for.
catalogBus->AddAssetType(assetType);
// Build the catalog (scan).
catalogBus->AddExtension(".names");
}
m_assetHandler = AZStd::make_unique<TranslationAssetHandler>();
AZ::Data::AssetManager::Instance().RegisterHandler(m_assetHandler.get(), assetType);
// Use AssetCatalog service to register ScriptEvent asset type and extension
AZ::Data::AssetCatalogRequestBus::Broadcast(&AZ::Data::AssetCatalogRequests::AddAssetType, assetType);
AZ::Data::AssetCatalogRequestBus::Broadcast(&AZ::Data::AssetCatalogRequests::EnableCatalogForAsset, assetType);
AZ::Data::AssetCatalogRequestBus::Broadcast(&AZ::Data::AssetCatalogRequests::AddExtension, TranslationAsset::GetFileFilter());
}
void GraphCanvasSystemComponent::UnregisterAssetHandler()
{
if (m_assetHandler)
@@ -82,8 +82,6 @@ namespace GraphCanvas
AZStd::unique_ptr<TranslationAssetHandler> m_assetHandler;
void RegisterTranslationBuilder();
void RegisterAssetHandler();
void UnregisterAssetHandler();
TranslationAssetWorker m_translationAssetWorker;
AZStd::vector<AZ::Data::AssetId> m_translationAssets;
@@ -3230,7 +3230,7 @@ namespace ScriptCanvas
auto valueSlot = forEachNodeSC->GetSlot(forEachNodeSC->GetValueSlotId());
AZ_Assert(valueSlot, "no value slot in for each node");
lastExecution->AddChild({});
lastExecution->AddChild({ &loopSlot, {}, nullptr });
auto outputValue = CreateOutputData(lastExecution, lastExecution->ModChild(0), *valueSlot);
lastExecution->ModChild(0).m_output.push_back({ valueSlot, outputValue });
@@ -84,9 +84,9 @@ public:
}
};
TEST_F(ScriptCanvasTestFixture, ProveError)
TEST_F(ScriptCanvasTestFixture, ForEachMultipleOutSyntaxOnEach)
{
EXPECT_TRUE(false);
RunUnitTestGraph("LY_SC_UnitTest_ForEachMultipleOutSyntaxOnEach");
}
TEST_F(ScriptCanvasTestFixture, EntityIdInputForOnGraphStart)