diff --git a/Engine/source/T3D/assets/ImageAsset.cpp b/Engine/source/T3D/assets/ImageAsset.cpp index 6ee7d1d96..a6ce52446 100644 --- a/Engine/source/T3D/assets/ImageAsset.cpp +++ b/Engine/source/T3D/assets/ImageAsset.cpp @@ -334,7 +334,6 @@ void ImageAsset::onAssetRefresh(void) // Call parent. Parent::onAssetRefresh(); - //mLoadedState = NotLoaded; } //------------------------------------------------------------------------------ @@ -577,7 +576,7 @@ void ImageAsset::onTamlPreWrite(void) return; // Ensure the image-file is collapsed. - mImageFile = getOwned() ? collapseAssetFilePath(mImageFile) : mImageFile; + mImageFile = collapseAssetFilePath(mImageFile); } void ImageAsset::onTamlPostWrite(void) @@ -589,7 +588,7 @@ void ImageAsset::onTamlPostWrite(void) return; // Ensure the image-file is expanded. - mImageFile = getOwned() ? expandAssetFilePath(mImageFile) : mImageFile; + mImageFile = expandAssetFilePath(mImageFile); } const char* ImageAsset::getImageInfo() diff --git a/Engine/source/T3D/assets/ImageAsset.h b/Engine/source/T3D/assets/ImageAsset.h index 20234ea03..90cc318f3 100644 --- a/Engine/source/T3D/assets/ImageAsset.h +++ b/Engine/source/T3D/assets/ImageAsset.h @@ -165,6 +165,7 @@ public: void setImageFile(StringTableEntry pImageFile); inline StringTableEntry getImageFile(void) const { return mImageFile; }; + inline StringTableEntry getRelativeImageFile(void) const { return collapseAssetFilePath(mImageFile); }; void setGenMips(const bool pGenMips); inline bool getGenMips(void) const { return mUseMips; }; diff --git a/Engine/source/T3D/assets/MaterialAsset.cpp b/Engine/source/T3D/assets/MaterialAsset.cpp index 43b876dc1..9bb30145d 100644 --- a/Engine/source/T3D/assets/MaterialAsset.cpp +++ b/Engine/source/T3D/assets/MaterialAsset.cpp @@ -211,39 +211,21 @@ void MaterialAsset::initializeAsset() void MaterialAsset::onAssetRefresh() { - mScriptPath = getOwned() ? expandAssetFilePath(mScriptFile) : mScriptPath; - - if (mMatDefinitionName == StringTable->EmptyString()) - { - mLoadedState = Failed; + // Ignore if not yet added to the sim. + if (!isProperlyAdded()) return; - } - if (Con::isScriptFile(mScriptPath)) + // Call parent. + Parent::onAssetRefresh(); + + if (mMaterialDefinition) { - //Since we're refreshing, we can assume that the file we're executing WILL have an existing definition. - //But that definition, whatever it is, is the 'correct' one, so we enable the Replace Existing behavior - //when the engine encounters a named object conflict. - String redefineBehaviorPrev = Con::getVariable("$Con::redefineBehavior"); - Con::setVariable("$Con::redefineBehavior", "replaceExisting"); - - if (Con::executeFile(mScriptPath, false, false)) - mLoadedState = ScriptLoaded; - else - mLoadedState = Failed; - - //And now that we've executed, switch back to the prior behavior - Con::setVariable("$Con::redefineBehavior", redefineBehaviorPrev.c_str()); + mMaterialDefinition->flush(); + mMaterialDefinition->reload(); } - - load(); - AssetManager::typeAssetDependsOnHash::Iterator assetDependenciesItr = mpOwningAssetManager->getDependedOnAssets()->find(mpAssetDefinition->mAssetId); - // Iterate all dependencies. - while (assetDependenciesItr != mpOwningAssetManager->getDependedOnAssets()->end() && assetDependenciesItr->key == mpAssetDefinition->mAssetId) + else { - StringTableEntry assetId = assetDependenciesItr->value; - AssetBase* dependent = AssetDatabase.acquireAsset(assetId); - dependent->refreshAsset(); + load(); } }