Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- 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<string, UnityEngine.Object> assetsDictionary = new Dictionary<string, UnityEngine.Object>();
- public void Awake()
- {
- var bundle = AssetBundle.LoadFromMemory(TombsMadnessMod.Properties.Resources.tombsmadnessmodbundle);
- foreach (var assetName in bundle.GetAllAssetNames())
- {
- GameObject asset = bundle.LoadAsset<GameObject>(assetName);
- if (asset != null)
- {
- assetsDictionary[assetName] = asset;
- if(asset.GetComponent<ScrapItem>() 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<ShipItem>() is ShipItem u && u != null)
- {
- LethalLib.Modules.Unlockables.RegisterUnlockable(u.unlockableRef, u.cost, u.storeType);
- Destroy(u);
- }
- if (asset.GetComponent<MapItem>() is MapItem m && m != null)
- {
- LethalLib.Modules.MapObjects.RegisterMapObject(m.spawnableMapObject, m.levelTypes, null);
- Destroy(m);
- }
- if (asset.GetComponent<NetworkObject>() 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 <e27997765c1848b09d8073e5d642717a>:IL_0045)
- UnityEngine.Object.Instantiate[T] (T original, UnityEngine.Transform parent, System.Boolean worldPositionStays) (at <e27997765c1848b09d8073e5d642717a>:IL_0001)
- UnityEngine.Object.Instantiate[T] (T original, UnityEngine.Transform parent) (at <e27997765c1848b09d8073e5d642717a>:IL_0001)
- LethalLib.Modules.Items+ScrapItem..ctor (Item item, System.Int32 rarity, LethalLib.Modules.Levels+LevelTypes spawnLevels, System.String[] spawnLevelOverrides) (at <c6bd6fcd6b8d4b0a88abbcaf6c53c112>:IL_00D8)
- LethalLib.Modules.Items.RegisterScrap (Item spawnableItem, System.Int32 rarity, LethalLib.Modules.Levels+LevelTypes levelFlags) (at <c6bd6fcd6b8d4b0a88abbcaf6c53c112>: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()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement