diff --git a/Source/Engine/Content/AssetsContainer.h b/Source/Engine/Content/AssetsContainer.h
index aceba1f07..dd9b549b5 100644
--- a/Source/Engine/Content/AssetsContainer.h
+++ b/Source/Engine/Content/AssetsContainer.h
@@ -18,7 +18,7 @@ public:
/// The asset id.
/// Loaded asset of null.
template
- T* LoadAsync(const Guid& id)
+ T* Load(const Guid& id)
{
for (auto& e : *this)
{
@@ -26,8 +26,10 @@ public:
return (T*)e.Get();
}
auto asset = (T*)::LoadAsset(id, T::TypeInitializer);
- if (asset)
+ if (asset && !asset->WaitForLoaded())
Add(asset);
+ else
+ asset = nullptr;
return asset;
}
diff --git a/Source/Engine/Particles/Graph/GPU/ParticleEmitterGraph.GPU.Particles.cpp b/Source/Engine/Particles/Graph/GPU/ParticleEmitterGraph.GPU.Particles.cpp
index 197b53e13..6ae810d82 100644
--- a/Source/Engine/Particles/Graph/GPU/ParticleEmitterGraph.GPU.Particles.cpp
+++ b/Source/Engine/Particles/Graph/GPU/ParticleEmitterGraph.GPU.Particles.cpp
@@ -425,8 +425,8 @@ void ParticleEmitterGPUGenerator::ProcessGroupParticles(Box* box, Node* node, Va
case 300:
{
// Load function asset
- const auto function = Assets.LoadAsync((Guid)node->Values[0]);
- if (!function || function->WaitForLoaded())
+ const auto function = Assets.Load((Guid)node->Values[0]);
+ if (!function)
{
OnError(node, box, TEXT("Missing or invalid function."));
value = Value::Zero;
@@ -439,7 +439,7 @@ void ParticleEmitterGPUGenerator::ProcessGroupParticles(Box* box, Node* node, Va
{
if (_callStack[i]->Type == GRAPH_NODE_MAKE_TYPE(14, 300))
{
- const auto callFunc = Assets.LoadAsync((Guid)_callStack[i]->Values[0]);
+ const auto callFunc = Assets.Load((Guid)_callStack[i]->Values[0]);
if (callFunc == function)
{
OnError(node, box, String::Format(TEXT("Recursive call to function '{0}'!"), function->ToString()));
@@ -514,7 +514,7 @@ void ParticleEmitterGPUGenerator::ProcessGroupFunction(Box* box, Node* node, Val
value = Value::Zero;
break;
}
- const auto function = Assets.LoadAsync((Guid)functionCallNode->Values[0]);
+ const auto function = Assets.Load((Guid)functionCallNode->Values[0]);
if (!_functions.TryGet(functionCallNode, graph) || !function)
{
OnError(node, box, TEXT("Missing calling function graph."));
diff --git a/Source/Engine/Tools/MaterialGenerator/MaterialGenerator.Layer.cpp b/Source/Engine/Tools/MaterialGenerator/MaterialGenerator.Layer.cpp
index 73b3058a3..c0f1ede7e 100644
--- a/Source/Engine/Tools/MaterialGenerator/MaterialGenerator.Layer.cpp
+++ b/Source/Engine/Tools/MaterialGenerator/MaterialGenerator.Layer.cpp
@@ -50,8 +50,8 @@ MaterialLayer* MaterialGenerator::GetLayer(const Guid& id, Node* caller)
}
// Load asset
- Asset* asset = Assets.LoadAsync(id);
- if (asset == nullptr || asset->WaitForLoaded(10 * 1000))
+ Asset* asset = Assets.Load(id);
+ if (asset == nullptr)
{
OnError(caller, nullptr, TEXT("Failed to load material asset."));
return nullptr;
diff --git a/Source/Engine/Tools/MaterialGenerator/MaterialGenerator.Material.cpp b/Source/Engine/Tools/MaterialGenerator/MaterialGenerator.Material.cpp
index 4594446ec..c778c03ee 100644
--- a/Source/Engine/Tools/MaterialGenerator/MaterialGenerator.Material.cpp
+++ b/Source/Engine/Tools/MaterialGenerator/MaterialGenerator.Material.cpp
@@ -285,8 +285,8 @@ void MaterialGenerator::ProcessGroupMaterial(Box* box, Node* node, Value& value)
case 24:
{
// Load function asset
- const auto function = Assets.LoadAsync((Guid)node->Values[0]);
- if (!function || function->WaitForLoaded())
+ const auto function = Assets.Load((Guid)node->Values[0]);
+ if (!function)
{
OnError(node, box, TEXT("Missing or invalid function."));
value = Value::Zero;
@@ -299,7 +299,7 @@ void MaterialGenerator::ProcessGroupMaterial(Box* box, Node* node, Value& value)
{
if (_callStack[i]->Type == GRAPH_NODE_MAKE_TYPE(1, 24))
{
- const auto callFunc = Assets.LoadAsync((Guid)_callStack[i]->Values[0]);
+ const auto callFunc = Assets.Load((Guid)_callStack[i]->Values[0]);
if (callFunc == function)
{
OnError(node, box, String::Format(TEXT("Recursive call to function '{0}'!"), function->ToString()));
@@ -808,7 +808,7 @@ void MaterialGenerator::ProcessGroupFunction(Box* box, Node* node, Value& value)
value = Value::Zero;
break;
}
- const auto function = Assets.LoadAsync((Guid)functionCallNode->Values[0]);
+ const auto function = Assets.Load((Guid)functionCallNode->Values[0]);
if (!_functions.TryGet(functionCallNode, graph) || !function)
{
OnError(node, box, TEXT("Missing calling function graph."));
diff --git a/Source/Engine/Visject/ShaderGraph.cpp b/Source/Engine/Visject/ShaderGraph.cpp
index b6616d159..688e46382 100644
--- a/Source/Engine/Visject/ShaderGraph.cpp
+++ b/Source/Engine/Visject/ShaderGraph.cpp
@@ -704,8 +704,8 @@ void ShaderGenerator::ProcessGroupTools(Box* box, Node* node, Value& value)
case 16:
{
// Get the variable type
- auto asset = Assets.LoadAsync((Guid)node->Values[0]);
- if (!asset || asset->WaitForLoaded())
+ auto asset = Assets.Load((Guid)node->Values[0]);
+ if (!asset)
{
OnError(node, box, TEXT("Failed to load Gameplay Global asset."));
value = Value::Zero;