using HarmonyLib; using LethalLib.Modules; using System.Collections.Generic; using TombsMadnessMod.Tags; using Unity.Netcode; using UnityEngine; using static LethalLib.Modules.Items; using static LethalLib.Modules.Levels; using ScrapItem = TombsMadnessMod.Tags.ScrapItem; namespace TombsMadnessMod.Component { public class AssetLoader : MonoBehaviour { public StartOfRound SoR; public Dictionary assetsDictionary = new Dictionary(); public void Awake() { var bundle = AssetBundle.LoadFromMemory(TombsMadnessMod.Properties.Resources.tombsmadnessmodbundle); foreach (var assetName in bundle.GetAllAssetNames()) { GameObject asset = bundle.LoadAsset(assetName); if (asset != null) { assetsDictionary[assetName] = asset; if(asset.GetComponent() is ScrapItem i && i != null) { if (i.regScrap) { RegisterScrap(i.itemRef, i.rarity, i.levelTypes); } if (i.regShop) { RegisterShopItem(i.itemRef, i.cost); } Destroy(i); } if (asset.GetComponent() is ShipItem u && u != null) { LethalLib.Modules.Unlockables.RegisterUnlockable(u.unlockableRef, u.cost, u.storeType); Destroy(u); } if (asset.GetComponent() is MapItem m && m != null) { LethalLib.Modules.MapObjects.RegisterMapObject(m.spawnableMapObject, m.levelTypes, null); Destroy(m); } if (asset.GetComponent() is NetworkObject obj && obj != null) { LethalLib.Modules.NetworkPrefabs.RegisterNetworkPrefab(asset); } } } foreach (var item in assetsDictionary) { TombsMadnessModBase.mls.LogFatal($"Key: {item.Key}, Value: {item.Value}"); } } public GameObject GetAsset(string assetName) { if (assetsDictionary.TryGetValue(assetName, out UnityEngine.Object asset)) { return asset as GameObject; } else { TombsMadnessModBase.mls.LogFatal($"Asset '{assetName}' not found in AssetLoader."); return null; } } } } [Error : Unity Log] ArgumentException: The Object you want to instantiate is null. Stack trace: UnityEngine.Object.Instantiate (UnityEngine.Object original, UnityEngine.Transform parent, System.Boolean instantiateInWorldSpace) (at :IL_0045) UnityEngine.Object.Instantiate[T] (T original, UnityEngine.Transform parent, System.Boolean worldPositionStays) (at :IL_0001) UnityEngine.Object.Instantiate[T] (T original, UnityEngine.Transform parent) (at :IL_0001) LethalLib.Modules.Items+ScrapItem..ctor (Item item, System.Int32 rarity, LethalLib.Modules.Levels+LevelTypes spawnLevels, System.String[] spawnLevelOverrides) (at :IL_00D8) LethalLib.Modules.Items.RegisterScrap (Item spawnableItem, System.Int32 rarity, LethalLib.Modules.Levels+LevelTypes levelFlags) (at :IL_0039) TombsMadnessMod.Component.AssetLoader.Awake () (at D:/Documents/GitHub/TombsMadnessMod/TombsMadnessMod/AssetLoader.cs:34) UnityEngine.GameObject:AddComponent() TombsMadnessMod.TombsMadnessModBase:Awake() (at D:/Documents/GitHub/TombsMadnessMod/TombsMadnessMod/TombsMadnessModBase.cs:68) UnityEngine.GameObject:AddComponent(Type) BepInEx.Bootstrap.Chainloader:Start() UnityEngine.Rendering.HighDefinition.HDRenderPipelineAsset:OnEnable()