From 76a4d0652f2c64bc61cbf25ecfc713feafd7cdfb Mon Sep 17 00:00:00 2001 From: Wojtek Figat Date: Thu, 23 Sep 2021 13:47:44 +0200 Subject: [PATCH] Add `JsonAsset::GetInstance` for easier access to C++ json asset data --- Source/Engine/Content/JsonAsset.cpp | 1 + Source/Engine/Content/JsonAsset.h | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/Source/Engine/Content/JsonAsset.cpp b/Source/Engine/Content/JsonAsset.cpp index 5015d61d9..398a4f1bd 100644 --- a/Source/Engine/Content/JsonAsset.cpp +++ b/Source/Engine/Content/JsonAsset.cpp @@ -15,6 +15,7 @@ #include "Engine/Serialization/JsonTools.h" #include "Engine/Content/Factories/JsonAssetFactory.h" #include "Engine/Core/Cache.h" +#include "Engine/Core/Config/GameSettings.h" #include "Engine/Debug/Exceptions/JsonParseException.h" #include "Engine/Profiler/ProfilerCPU.h" #include "Engine/Scripting/Scripting.h" diff --git a/Source/Engine/Content/JsonAsset.h b/Source/Engine/Content/JsonAsset.h index d865e8b96..4ab180717 100644 --- a/Source/Engine/Content/JsonAsset.h +++ b/Source/Engine/Content/JsonAsset.h @@ -93,6 +93,16 @@ public: /// void* Instance; + /// + /// Gets the deserialized native object instance of the given type. Returns null if asset is not loaded or loaded object has different type. + /// + /// The asset instance object or null. + template + T* GetInstance() const + { + return Instance && InstanceType.IsAssignableFrom(T::TypeInitializer) ? (T*)Instance : nullptr; + } + protected: // [JsonAssetBase]