Remove event/bundle property in qsbcore

This commit is contained in:
_nebula 2023-10-30 00:05:28 +00:00
parent 64d83fcf15
commit 419bb833d7
2 changed files with 11 additions and 13 deletions

View File

@ -10,24 +10,26 @@ public class BodyCustomizer : MonoBehaviour, IAddComponentOnStart
private Dictionary<string, (Texture2D albedo, Texture2D normal)> skinMap = new();
private Dictionary<string, Texture2D> jetpackMap = new();
public AssetBundle SkinsBundle { get; private set; }
public static BodyCustomizer Instance { get; private set; }
private void Start()
{
Instance = this;
QSBCore.OnSkinsBundleLoaded += LoadAssets;
}
private void OnDestroy()
public void OnBundleLoaded(AssetBundle bundle)
{
QSBCore.OnSkinsBundleLoaded -= LoadAssets;
SkinsBundle = bundle;
LoadAssets();
}
private void LoadAssets()
{
DebugLog.DebugWrite($"Loading skin assets...", MessageType.Info);
skinMap.Add("Default", (QSBCore.SkinsBundle.LoadAsset<Texture2D>("Assets/GameAssets/Texture2D/Traveller_HEA_Player_Skin_d.png"), QSBCore.SkinsBundle.LoadAsset<Texture2D>("Assets/GameAssets/Texture2D/Traveller_HEA_Player_Skin_n.png")));
skinMap.Add("Default", (SkinsBundle.LoadAsset<Texture2D>("Assets/GameAssets/Texture2D/Traveller_HEA_Player_Skin_d.png"), SkinsBundle.LoadAsset<Texture2D>("Assets/GameAssets/Texture2D/Traveller_HEA_Player_Skin_n.png")));
skinMap.Add("Type 1", LoadSkin("Type 1"));
skinMap.Add("Type 2", LoadSkin("Type 2"));
skinMap.Add("Type 3", LoadSkin("Type 3"));
@ -46,7 +48,7 @@ public class BodyCustomizer : MonoBehaviour, IAddComponentOnStart
skinMap.Add("Type 16", LoadSkin("Type 16"));
skinMap.Add("Type 17", LoadSkin("Type 17"));
jetpackMap.Add("Orange", QSBCore.SkinsBundle.LoadAsset<Texture2D>("Assets/GameAssets/Texture2D/Props_HEA_Jetpack_d.png"));
jetpackMap.Add("Orange", SkinsBundle.LoadAsset<Texture2D>("Assets/GameAssets/Texture2D/Props_HEA_Jetpack_d.png"));
jetpackMap.Add("Yellow", LoadJetpack("yellow"));
jetpackMap.Add("Red", LoadJetpack("red"));
jetpackMap.Add("Pink", LoadJetpack("pink"));
@ -60,12 +62,12 @@ public class BodyCustomizer : MonoBehaviour, IAddComponentOnStart
private (Texture2D d, Texture2D n) LoadSkin(string skinName)
{
var number = skinName.Replace($"Type ", "");
return (QSBCore.SkinsBundle.LoadAsset<Texture2D>($"Assets/GameAssets/Texture2D/Skin Variations/{number}d.png"), QSBCore.SkinsBundle.LoadAsset<Texture2D>($"Assets/GameAssets/Texture2D/Skin Variations/{number}n.png"));
return (SkinsBundle.LoadAsset<Texture2D>($"Assets/GameAssets/Texture2D/Skin Variations/{number}d.png"), SkinsBundle.LoadAsset<Texture2D>($"Assets/GameAssets/Texture2D/Skin Variations/{number}n.png"));
}
private Texture2D LoadJetpack(string jetpackName)
{
return QSBCore.SkinsBundle.LoadAsset<Texture2D>($"Assets/GameAssets/Texture2D/Jetpack Variations/{jetpackName}.png");
return SkinsBundle.LoadAsset<Texture2D>($"Assets/GameAssets/Texture2D/Jetpack Variations/{jetpackName}.png");
}
public void CustomizeRemoteBody(GameObject REMOTE_Traveller_HEA_Player_v2, string skinType, string jetpackType)

View File

@ -19,6 +19,7 @@ using System.IO;
using System.Linq;
using System.Reflection;
using QSB.API;
using QSB.BodyCustomization;
using QSB.Player.Messages;
using UnityEngine;
using UnityEngine.InputSystem;
@ -55,7 +56,6 @@ public class QSBCore : ModBehaviour
public static AssetBundle ConversationAssetBundle { get; private set; }
public static AssetBundle DebugAssetBundle { get; private set; }
public static AssetBundle HUDAssetBundle { get; private set; }
public static AssetBundle SkinsBundle { get; private set; }
public static bool IsHost => NetworkServer.active;
public static bool IsInMultiplayer;
public static string QSBVersion => Helper.Manifest.Version;
@ -260,11 +260,7 @@ public class QSBCore : ModBehaviour
MenuApi = ModHelper.Interaction.TryGetModApi<IMenuAPI>(ModHelper.Manifest.Dependencies[0]);
LoadBundleAsync("qsb_network_big");
LoadBundleAsync("qsb_skins", request =>
{
SkinsBundle = request.assetBundle;
OnSkinsBundleLoaded?.SafeInvoke();
});
LoadBundleAsync("qsb_skins", request => BodyCustomizer.Instance.OnBundleLoaded(request.assetBundle));
NetworkAssetBundle = LoadBundle("qsb_network");
ConversationAssetBundle = LoadBundle("qsb_conversation");