MCPcopy Create free account
hub / github.com/FlaxEngine/FlaxEngine / JsonAssetReference

Class JsonAssetReference

Source/Engine/Content/JsonAssetReference.h:13–50  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

11/// <typeparam name="T">Type of the asset instance type.</typeparam>
12template<typename T>
13API_STRUCT(NoDefault, Template, MarshalAs=JsonAsset*) struct JsonAssetReference : AssetReference<JsonAsset>
14{
15 JsonAssetReference() = default;
16
17 JsonAssetReference(JsonAsset* asset)
18 {
19 OnSet(asset);
20 }
21
22 explicit JsonAssetReference(decltype(__nullptr))
23 {
24 }
25
26 explicit JsonAssetReference(IAssetReference* owner)
27 : AssetReference<JsonAsset>(owner)
28 {
29 }
30
31 /// <summary>
32 /// Gets the deserialized native object instance of the given type. Returns null if asset is not loaded or loaded object has different type.
33 /// </summary>
34 /// <returns>The asset instance object or null.</returns>
35 FORCE_INLINE T* GetInstance() const
36 {
37 return _asset ? Get()->template GetInstance<T>() : nullptr;
38 }
39
40 JsonAssetReference& operator=(JsonAsset* asset) noexcept
41 {
42 OnSet(asset);
43 return *this;
44 }
45
46 operator JsonAsset*() const
47 {
48 return Get();
49 }
50};

Callers

nothing calls this directly

Calls 2

OnSetFunction · 0.85
GetFunction · 0.50

Tested by

no test coverage detected