diff --git a/Engine/source/T3D/assets/ImageAsset.cpp b/Engine/source/T3D/assets/ImageAsset.cpp index ba559888d..c7e8e3708 100644 --- a/Engine/source/T3D/assets/ImageAsset.cpp +++ b/Engine/source/T3D/assets/ImageAsset.cpp @@ -301,6 +301,15 @@ void ImageAsset::initializeAsset() void ImageAsset::onAssetRefresh() { mImagePath = getOwned() ? expandAssetFilePath(mImageFileName) : mImagePath; + + AssetManager::typeAssetDependsOnHash::Iterator assetDependenciesItr = mpOwningAssetManager->getDependedOnAssets()->find(mpAssetDefinition->mAssetId); + // Iterate all dependencies. + while (assetDependenciesItr != mpOwningAssetManager->getDependedOnAssets()->end() && assetDependenciesItr->key == mpAssetDefinition->mAssetId) + { + StringTableEntry assetId = assetDependenciesItr->value; + AssetBase* dependent = AssetDatabase.acquireAsset(assetId); + dependent->refreshAsset(); + } } void ImageAsset::_onResourceChanged(const Torque::Path& path) diff --git a/Engine/source/T3D/assets/MaterialAsset.cpp b/Engine/source/T3D/assets/MaterialAsset.cpp index 02f0a163a..abedd6204 100644 --- a/Engine/source/T3D/assets/MaterialAsset.cpp +++ b/Engine/source/T3D/assets/MaterialAsset.cpp @@ -237,6 +237,14 @@ void MaterialAsset::onAssetRefresh() } load(); + AssetManager::typeAssetDependsOnHash::Iterator assetDependenciesItr = mpOwningAssetManager->getDependedOnAssets()->find(mpAssetDefinition->mAssetId); + // Iterate all dependencies. + while (assetDependenciesItr != mpOwningAssetManager->getDependedOnAssets()->end() && assetDependenciesItr->key == mpAssetDefinition->mAssetId) + { + StringTableEntry assetId = assetDependenciesItr->value; + AssetBase* dependent = AssetDatabase.acquireAsset(assetId); + dependent->refreshAsset(); + } } void MaterialAsset::setScriptFile(const char* pScriptFile)