Advertisement
glados123123123123

Untitled

Jan 17th, 2024
755
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.12 KB | None | 0 0
  1. using HarmonyLib;
  2. using LethalLib.Modules;
  3. using System.Collections.Generic;
  4. using TombsMadnessMod.Tags;
  5. using Unity.Netcode;
  6. using UnityEngine;
  7. using static LethalLib.Modules.Items;
  8. using static LethalLib.Modules.Levels;
  9. using ScrapItem = TombsMadnessMod.Tags.ScrapItem;
  10.  
  11. namespace TombsMadnessMod.Component
  12. {
  13.     public class AssetLoader : MonoBehaviour
  14.     {
  15.        
  16.         public StartOfRound SoR;
  17.          
  18.  
  19.         public Dictionary<string, UnityEngine.Object> assetsDictionary = new Dictionary<string, UnityEngine.Object>();
  20.  
  21.          
  22.         public void Awake()  
  23.         {
  24.            
  25.             var bundle = AssetBundle.LoadFromMemory(TombsMadnessMod.Properties.Resources.tombsmadnessmodbundle);
  26.             foreach (var assetName in bundle.GetAllAssetNames())
  27.             {
  28.                 GameObject asset = bundle.LoadAsset<GameObject>(assetName);
  29.                 if (asset != null)
  30.                 {
  31.                     assetsDictionary[assetName] = asset;
  32.                     if(asset.GetComponent<ScrapItem>() is ScrapItem i && i != null)
  33.                     {
  34.                         if (i.regScrap) { RegisterScrap(i.itemRef, i.rarity, i.levelTypes); }
  35.                         if (i.regShop) { RegisterShopItem(i.itemRef, i.cost); }
  36.                         Destroy(i);  
  37.                     }
  38.  
  39.                     if (asset.GetComponent<ShipItem>() is ShipItem u && u != null)
  40.                     {
  41.                         LethalLib.Modules.Unlockables.RegisterUnlockable(u.unlockableRef, u.cost, u.storeType);
  42.                         Destroy(u);
  43.                     }
  44.                     if (asset.GetComponent<MapItem>() is MapItem m && m != null)
  45.                     {
  46.                         LethalLib.Modules.MapObjects.RegisterMapObject(m.spawnableMapObject, m.levelTypes, null);
  47.                         Destroy(m);
  48.                     }
  49.                     if (asset.GetComponent<NetworkObject>() is NetworkObject obj && obj != null)
  50.                     {
  51.                         LethalLib.Modules.NetworkPrefabs.RegisterNetworkPrefab(asset);
  52.                     }
  53.                 }
  54.                
  55.             }
  56.             foreach (var item in assetsDictionary)
  57.             {
  58.                 TombsMadnessModBase.mls.LogFatal($"Key: {item.Key}, Value: {item.Value}");
  59.             }
  60.         }
  61.  
  62.         public GameObject GetAsset(string assetName)
  63.         {
  64.             if (assetsDictionary.TryGetValue(assetName, out UnityEngine.Object asset))
  65.             {
  66.                 return asset as GameObject;
  67.             }
  68.             else
  69.             {
  70.                 TombsMadnessModBase.mls.LogFatal($"Asset '{assetName}' not found in AssetLoader.");
  71.                 return null;
  72.             }
  73.         }
  74.  
  75.     }
  76.  
  77.  
  78. }
  79.  
  80.  
  81. [Error  : Unity Log] ArgumentException: The Object you want to instantiate is null.
  82. Stack trace:
  83. UnityEngine.Object.Instantiate (UnityEngine.Object original, UnityEngine.Transform parent, System.Boolean instantiateInWorldSpace) (at <e27997765c1848b09d8073e5d642717a>:IL_0045)
  84. UnityEngine.Object.Instantiate[T] (T original, UnityEngine.Transform parent, System.Boolean worldPositionStays) (at <e27997765c1848b09d8073e5d642717a>:IL_0001)
  85. UnityEngine.Object.Instantiate[T] (T original, UnityEngine.Transform parent) (at <e27997765c1848b09d8073e5d642717a>:IL_0001)
  86. LethalLib.Modules.Items+ScrapItem..ctor (Item item, System.Int32 rarity, LethalLib.Modules.Levels+LevelTypes spawnLevels, System.String[] spawnLevelOverrides) (at <c6bd6fcd6b8d4b0a88abbcaf6c53c112>:IL_00D8)
  87. LethalLib.Modules.Items.RegisterScrap (Item spawnableItem, System.Int32 rarity, LethalLib.Modules.Levels+LevelTypes levelFlags) (at <c6bd6fcd6b8d4b0a88abbcaf6c53c112>:IL_0039)
  88. TombsMadnessMod.Component.AssetLoader.Awake () (at D:/Documents/GitHub/TombsMadnessMod/TombsMadnessMod/AssetLoader.cs:34)
  89. UnityEngine.GameObject:AddComponent()
  90. TombsMadnessMod.TombsMadnessModBase:Awake() (at D:/Documents/GitHub/TombsMadnessMod/TombsMadnessMod/TombsMadnessModBase.cs:68)
  91. UnityEngine.GameObject:AddComponent(Type)
  92. BepInEx.Bootstrap.Chainloader:Start()
  93. UnityEngine.Rendering.HighDefinition.HDRenderPipelineAsset:OnEnable()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement