|
@@ -167,6 +167,12 @@ void MaterialAsset::initializeAsset()
|
|
|
|
|
|
mScriptPath = getOwned() ? expandAssetFilePath(mScriptFile) : mScriptPath;
|
|
|
|
|
|
+ if (mMatDefinitionName == StringTable->EmptyString())
|
|
|
+ {
|
|
|
+ mLoadedState = Failed;
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
if (Torque::FS::IsScriptFile(mScriptPath))
|
|
|
{
|
|
|
if (!Sim::findObject(mMatDefinitionName))
|
|
@@ -180,6 +186,10 @@ void MaterialAsset::initializeAsset()
|
|
|
mLoadedState = Failed;
|
|
|
}
|
|
|
}
|
|
|
+ else
|
|
|
+ {
|
|
|
+ mLoadedState = DefinitionAlreadyExists;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
loadMaterial();
|
|
@@ -189,6 +199,12 @@ void MaterialAsset::onAssetRefresh()
|
|
|
{
|
|
|
mScriptPath = getOwned() ? expandAssetFilePath(mScriptFile) : mScriptPath;
|
|
|
|
|
|
+ if (mMatDefinitionName == StringTable->EmptyString())
|
|
|
+ {
|
|
|
+ mLoadedState = Failed;
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
if (Torque::FS::IsScriptFile(mScriptPath))
|
|
|
{
|
|
|
//Since we're refreshing, we can assume that the file we're executing WILL have an existing definition.
|
|
@@ -204,7 +220,6 @@ void MaterialAsset::onAssetRefresh()
|
|
|
|
|
|
//And now that we've executed, switch back to the prior behavior
|
|
|
Con::setVariable("$Con::redefineBehavior", redefineBehaviorPrev.c_str());
|
|
|
-
|
|
|
}
|
|
|
|
|
|
loadMaterial();
|
|
@@ -232,7 +247,7 @@ void MaterialAsset::loadMaterial()
|
|
|
if (mMaterialDefinition)
|
|
|
SAFE_DELETE(mMaterialDefinition);
|
|
|
|
|
|
- if (mLoadedState == ScriptLoaded && mMatDefinitionName != StringTable->EmptyString())
|
|
|
+ if ((mLoadedState == ScriptLoaded || mLoadedState == DefinitionAlreadyExists) && mMatDefinitionName != StringTable->EmptyString())
|
|
|
{
|
|
|
Material* matDef;
|
|
|
if (!Sim::findObject(mMatDefinitionName, matDef))
|