From b99efaa420442fc756b176c373e2edcefb10ad46 Mon Sep 17 00:00:00 2001
From: XtraCube <72575280+XtraCube@users.noreply.github.com>
Date: Sat, 29 Mar 2025 14:25:57 -0400
Subject: [PATCH] create loadable asset wrapper
---
.../Utilities/Assets/LoadableAssetWrapper.cs | 25 +++++++++++++++++++
1 file changed, 25 insertions(+)
create mode 100644 MiraAPI/Utilities/Assets/LoadableAssetWrapper.cs
diff --git a/MiraAPI/Utilities/Assets/LoadableAssetWrapper.cs b/MiraAPI/Utilities/Assets/LoadableAssetWrapper.cs
new file mode 100644
index 0000000..578c051
--- /dev/null
+++ b/MiraAPI/Utilities/Assets/LoadableAssetWrapper.cs
@@ -0,0 +1,25 @@
+using Reactor.Utilities.Extensions;
+
+namespace MiraAPI.Utilities.Assets;
+
+///
+/// Wrapper class to turn any UnityEngine.Object into a .
+///
+/// The type of the asset to be loaded. Must be a subclass of .
+public class LoadableAssetWrapper : LoadableAsset where T : UnityEngine.Object
+{
+ ///
+ /// Initializes a new instance of the class.
+ ///
+ /// The asset to wrap. This should be a reference to a UnityEngine.Object.
+ public LoadableAssetWrapper(T asset)
+ {
+ LoadedAsset = asset.DontDestroy();
+ }
+
+ ///
+ public override T LoadAsset()
+ {
+ return LoadedAsset ?? throw new System.InvalidOperationException("The asset could not be loaded!");
+ }
+}