Revert #3117 and do it different way as some types can be valid even if different thus use internal parameter setter for type validation

This commit is contained in:
Wojtek Figat
2025-01-13 16:07:47 +01:00
parent bc18ddc04b
commit 3796b0ccae
3 changed files with 11 additions and 14 deletions

View File

@@ -214,9 +214,11 @@ void MaterialParameter::SetValue(const Variant& value)
break;
case VariantType::Object:
_asAsset = Cast<TextureBase>(value.AsObject);
invalidType = _asAsset == nullptr && value.AsObject != nullptr;
break;
case VariantType::Asset:
_asAsset = Cast<TextureBase>(value.AsAsset);
invalidType = _asAsset == nullptr && value.AsAsset != nullptr;
break;
default:
invalidType = true;
@@ -239,6 +241,7 @@ void MaterialParameter::SetValue(const Variant& value)
break;
case VariantType::Object:
_asGPUTexture = Cast<GPUTexture>(value.AsObject);
invalidType = _asGPUTexture == nullptr && value.AsObject != nullptr;
break;
default:
invalidType = true;
@@ -258,9 +261,11 @@ void MaterialParameter::SetValue(const Variant& value)
break;
case VariantType::Object:
_asAsset = Cast<GameplayGlobals>(value.AsObject);
invalidType = _asAsset == nullptr && value.AsObject != nullptr;
break;
case VariantType::Asset:
_asAsset = Cast<GameplayGlobals>(value.AsAsset);
invalidType = _asAsset == nullptr && value.AsAsset != nullptr;
break;
default:
invalidType = true;
@@ -273,7 +278,7 @@ void MaterialParameter::SetValue(const Variant& value)
}
if (invalidType)
{
LOG(Error, "Invalid material parameter value type {0} to set (param type: {1})", value.Type, ScriptingEnum::ToString(_type));
LOG(Error, "Invalid material parameter value '{}' of type '{}' to set (expected type: {})", value.ToString(), value.Type, ScriptingEnum::ToString(_type));
}
}