|
@@ -227,7 +227,6 @@ namespace GraphCanvas
|
|
|
AzFramework::AssetCatalogEventBus::Handler::BusDisconnect();
|
|
|
Styling::PseudoElementFactoryRequestBus::Handler::BusDisconnect();
|
|
|
GraphCanvasRequestBus::Handler::BusDisconnect();
|
|
|
- AZ::Data::AssetBus::MultiHandler::BusDisconnect();
|
|
|
|
|
|
m_translationAssetWorker.Deactivate();
|
|
|
UnregisterAssetHandler();
|
|
@@ -369,26 +368,46 @@ namespace GraphCanvas
|
|
|
|
|
|
void GraphCanvasSystemComponent::OnCatalogLoaded(const char* /*catalogFile*/)
|
|
|
{
|
|
|
- auto postEnumerateCb = [this]()
|
|
|
+ AZStd::vector<AZ::Data::AssetId> translationAssets;
|
|
|
+ auto postEnumerateCb = [&translationAssets]()
|
|
|
{
|
|
|
- PopulateTranslationDatabase();
|
|
|
+ for (const AZ::Data::AssetId& assetId : translationAssets)
|
|
|
+ {
|
|
|
+ AZ::Data::AssetManager::Instance().GetAsset<TranslationAsset>(assetId, AZ::Data::AssetLoadBehavior::Default);
|
|
|
+ }
|
|
|
};
|
|
|
|
|
|
// Find any TranslationAsset files that may have translation database key/values
|
|
|
- AZ::Data::AssetCatalogRequests::AssetEnumerationCB collectAssetsCb = [this](const AZ::Data::AssetId assetId, const AZ::Data::AssetInfo& assetInfo)
|
|
|
+ AZ::Data::AssetCatalogRequests::AssetEnumerationCB collectAssetsCb = [&translationAssets](const AZ::Data::AssetId assetId, const AZ::Data::AssetInfo& assetInfo)
|
|
|
{
|
|
|
if (AZ::StringFunc::EndsWith(assetInfo.m_relativePath, ".names", false))
|
|
|
{
|
|
|
- m_translationAssets.push_back(assetId);
|
|
|
+ translationAssets.push_back(assetId);
|
|
|
}
|
|
|
};
|
|
|
|
|
|
- m_translationAssets.clear();
|
|
|
-
|
|
|
AZ::Data::AssetCatalogRequestBus::Broadcast(&AZ::Data::AssetCatalogRequestBus::Events::EnumerateAssets, nullptr, collectAssetsCb, postEnumerateCb);
|
|
|
}
|
|
|
|
|
|
+ void GraphCanvasSystemComponent::OnCatalogAssetRemoved(const AZ::Data::AssetId& /*assetId*/, const AZ::Data::AssetInfo& assetInfo)
|
|
|
+ {
|
|
|
+ if (assetInfo.m_assetType == azrtti_typeid<TranslationAsset>())
|
|
|
+ {
|
|
|
+ GraphCanvas::TranslationRequestBus::Broadcast(&GraphCanvas::TranslationRequests::Restore);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ void GraphCanvasSystemComponent::OnCatalogAssetAdded(const AZ::Data::AssetId& assetId)
|
|
|
+ {
|
|
|
+ ReloadDatabase(assetId);
|
|
|
+ }
|
|
|
+
|
|
|
void GraphCanvasSystemComponent::OnCatalogAssetChanged(const AZ::Data::AssetId& assetId)
|
|
|
+ {
|
|
|
+ ReloadDatabase(assetId);
|
|
|
+ }
|
|
|
+
|
|
|
+ void GraphCanvasSystemComponent::ReloadDatabase(const AZ::Data::AssetId& assetId)
|
|
|
{
|
|
|
AZ::Data::AssetInfo assetInfo;
|
|
|
AZ::Data::AssetCatalogRequestBus::BroadcastResult(assetInfo, &AZ::Data::AssetCatalogRequestBus::Events::GetAssetInfoById, assetId);
|
|
@@ -405,20 +424,5 @@ namespace GraphCanvas
|
|
|
AZ::Data::AssetManager::Instance().UnregisterHandler(m_assetHandler.get());
|
|
|
m_assetHandler.reset();
|
|
|
}
|
|
|
-
|
|
|
- for (const AZ::Data::AssetId& assetId : m_translationAssets)
|
|
|
- {
|
|
|
- AZ::Data::AssetBus::MultiHandler::BusDisconnect(assetId);
|
|
|
- }
|
|
|
- m_translationAssets.clear();
|
|
|
- }
|
|
|
-
|
|
|
- void GraphCanvasSystemComponent::PopulateTranslationDatabase()
|
|
|
- {
|
|
|
- for (const AZ::Data::AssetId& assetId : m_translationAssets)
|
|
|
- {
|
|
|
- AZ::Data::AssetBus::MultiHandler::BusConnect(assetId);
|
|
|
- AZ::Data::AssetManager::Instance().GetAsset<TranslationAsset>(assetId, AZ::Data::AssetLoadBehavior::Default);
|
|
|
- }
|
|
|
}
|
|
|
}
|