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!"); + } +}