Please disclose if your mod was created primarily using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
Decompiled source of Vocaloid Pack v1.17.0
vocaloidpack.dll
Decompiled 2 months agousing System; using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using BepInEx; using BepInEx.Logging; using GameNetcodeStuff; using HarmonyLib; using Microsoft.CodeAnalysis; using UnityEngine; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)] [assembly: TargetFramework(".NETStandard,Version=v2.1", FrameworkDisplayName = ".NET Standard 2.1")] [assembly: IgnoresAccessChecksTo("Assembly-CSharp")] [assembly: AssemblyCompany("vocaloidpack")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("vocaloidpack")] [assembly: AssemblyTitle("vocaloidpack")] [assembly: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)] [assembly: AssemblyVersion("1.0.0.0")] [module: UnverifiableCode] namespace Microsoft.CodeAnalysis { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] internal sealed class EmbeddedAttribute : Attribute { } } namespace System.Runtime.CompilerServices { [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Class | AttributeTargets.Property | AttributeTargets.Field | AttributeTargets.Event | AttributeTargets.Parameter | AttributeTargets.ReturnValue | AttributeTargets.GenericParameter, AllowMultiple = false, Inherited = false)] internal sealed class NullableAttribute : Attribute { public readonly byte[] NullableFlags; public NullableAttribute(byte P_0) { NullableFlags = new byte[1] { P_0 }; } public NullableAttribute(byte[] P_0) { NullableFlags = P_0; } } [CompilerGenerated] [Microsoft.CodeAnalysis.Embedded] [AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct | AttributeTargets.Method | AttributeTargets.Interface | AttributeTargets.Delegate, AllowMultiple = false, Inherited = false)] internal sealed class NullableContextAttribute : Attribute { public readonly byte Flag; public NullableContextAttribute(byte P_0) { Flag = P_0; } } } namespace ModelReplacement { public class VFLOWER : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "VFlower"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class CMIKU : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Cute Miku"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class SEEU : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "SeeU"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class AMEIKO : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Adult Meiko"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class IMIKU : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Infinity Miku"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class RGIRL : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Rolling Girl"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class NMIKU : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Nyanko Miku"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class PMIKU : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Miku Plugin"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class YUU : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Yuu"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class WIL : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Wil"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class KYO : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Kyo"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MIKI : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Miki"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class FUKASE : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Fukase"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class PIKO : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Piko"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class ZMIKU : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Miku Zukin"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MRTM : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Miku Rasetsu to Mukuro"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class UNI : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "UNI"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class V3FLOWER : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "V3 Flower"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class STARDUST : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Stardust"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class YUECHENG : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Yue Cheng"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class UTAP : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Uta Utane Pants"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class UTAS : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Uta Utane Skirt"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class DSMIKU : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Deep Sea Miku"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class RRF : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Rin Raspberry Fox"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class YOHIO : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "YOHIOloid"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class YOHIOA : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "YOHIOloid Anniversary"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class IA : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "IA"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class YANHE : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Yan He"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class DAINA : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Daina"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class ELEANOR : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Eleanor Forte"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class LONGYA : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Yuezheng Longya"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class DEX : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Dex"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class RUBY : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Ruby"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class MWINTER : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Miku Winter"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class GUMISV2 : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "GUMI SV2"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class LUOT : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Luo Tianyi"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class ZMOKE : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Zhiyu Moke"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class OUNA : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Otomachi Una"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class RANA : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Rana"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class ZUNDAMON : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Zundamon"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class KRIKKA : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Koharu Rikka"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class CHIYU : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Chiyu"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } public class KAKARI : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Kizuna Akari"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } [BepInPlugin("com.gaby.vocaloid", "Vocaloid Pack", "1.17.0")] [BepInDependency(/*Could not decode attribute arguments.*/)] public class Plugin : BaseUnityPlugin { private void Awake() { //IL_0393: Unknown result type (might be due to invalid IL or missing references) //IL_0399: Expected O, but got Unknown Assets.PopulateAssets(); ModelReplacementAPI.RegisterSuitModelReplacement("VFlower", typeof(VFLOWER)); ModelReplacementAPI.RegisterSuitModelReplacement("Cute Miku", typeof(CMIKU)); ModelReplacementAPI.RegisterSuitModelReplacement("SeeU", typeof(SEEU)); ModelReplacementAPI.RegisterSuitModelReplacement("Adult Meiko", typeof(AMEIKO)); ModelReplacementAPI.RegisterSuitModelReplacement("Infinity Miku", typeof(IMIKU)); ModelReplacementAPI.RegisterSuitModelReplacement("Rolling Girl", typeof(RGIRL)); ModelReplacementAPI.RegisterSuitModelReplacement("Nyanko Miku", typeof(NMIKU)); ModelReplacementAPI.RegisterSuitModelReplacement("Miku Plugin", typeof(PMIKU)); ModelReplacementAPI.RegisterSuitModelReplacement("Yuu", typeof(YUU)); ModelReplacementAPI.RegisterSuitModelReplacement("Wil", typeof(WIL)); ModelReplacementAPI.RegisterSuitModelReplacement("Kyo", typeof(KYO)); ModelReplacementAPI.RegisterSuitModelReplacement("Miki", typeof(MIKI)); ModelReplacementAPI.RegisterSuitModelReplacement("Fukase", typeof(FUKASE)); ModelReplacementAPI.RegisterSuitModelReplacement("Piko", typeof(PIKO)); ModelReplacementAPI.RegisterSuitModelReplacement("Miku Zukin", typeof(ZMIKU)); ModelReplacementAPI.RegisterSuitModelReplacement("Miku Rasetsu to Mukuro", typeof(MRTM)); ModelReplacementAPI.RegisterSuitModelReplacement("UNI", typeof(UNI)); ModelReplacementAPI.RegisterSuitModelReplacement("V3 Flower", typeof(V3FLOWER)); ModelReplacementAPI.RegisterSuitModelReplacement("Stardust", typeof(STARDUST)); ModelReplacementAPI.RegisterSuitModelReplacement("Yue Cheng", typeof(YUECHENG)); ModelReplacementAPI.RegisterSuitModelReplacement("Uta Utane Pants", typeof(UTAP)); ModelReplacementAPI.RegisterSuitModelReplacement("Uta Utane Skirt", typeof(UTAS)); ModelReplacementAPI.RegisterSuitModelReplacement("Deep Sea Miku", typeof(DSMIKU)); ModelReplacementAPI.RegisterSuitModelReplacement("Rin Raspberry Fox", typeof(RRF)); ModelReplacementAPI.RegisterSuitModelReplacement("YOHIOloid", typeof(YOHIO)); ModelReplacementAPI.RegisterSuitModelReplacement("YOHIOloid Anniversary", typeof(YOHIOA)); ModelReplacementAPI.RegisterSuitModelReplacement("IA", typeof(IA)); ModelReplacementAPI.RegisterSuitModelReplacement("Yan He", typeof(YANHE)); ModelReplacementAPI.RegisterSuitModelReplacement("Daina", typeof(DAINA)); ModelReplacementAPI.RegisterSuitModelReplacement("Eleanor Forte", typeof(ELEANOR)); ModelReplacementAPI.RegisterSuitModelReplacement("Yuezheng Longya", typeof(LONGYA)); ModelReplacementAPI.RegisterSuitModelReplacement("Dex", typeof(DEX)); ModelReplacementAPI.RegisterSuitModelReplacement("Ruby", typeof(RUBY)); ModelReplacementAPI.RegisterSuitModelReplacement("Miku Winter", typeof(MWINTER)); ModelReplacementAPI.RegisterSuitModelReplacement("GUMI SV2", typeof(GUMISV2)); ModelReplacementAPI.RegisterSuitModelReplacement("Luo Tianyi", typeof(LUOT)); ModelReplacementAPI.RegisterSuitModelReplacement("Zhiyu Moke", typeof(ZMOKE)); ModelReplacementAPI.RegisterSuitModelReplacement("Otomachi Una", typeof(OUNA)); ModelReplacementAPI.RegisterSuitModelReplacement("Rana", typeof(RANA)); ModelReplacementAPI.RegisterSuitModelReplacement("Zundamon", typeof(ZUNDAMON)); ModelReplacementAPI.RegisterSuitModelReplacement("Koharu Rikka", typeof(KRIKKA)); ModelReplacementAPI.RegisterSuitModelReplacement("Chiyu", typeof(CHIYU)); ModelReplacementAPI.RegisterSuitModelReplacement("Kizuna Akari", typeof(KAKARI)); Harmony val = new Harmony("com.gaby.vocaloidpack"); val.PatchAll(); ((BaseUnityPlugin)this).Logger.LogInfo((object)"Plugin com.gaby.vocaloidpack is loaded!"); } } public static class Assets { public static string mainAssetBundleName = "vocaloid"; public static AssetBundle MainAssetBundle = null; private static string GetAssemblyName() { return Assembly.GetExecutingAssembly().GetName().Name.Replace(" ", "_"); } public static void PopulateAssets() { if ((Object)(object)MainAssetBundle == (Object)null) { Console.WriteLine(GetAssemblyName() + "." + mainAssetBundleName); using Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(GetAssemblyName() + "." + mainAssetBundleName); MainAssetBundle = AssetBundle.LoadFromStream(stream); } } } [BepInPlugin("com.gaby.modelheight", "Custom Model Height", "1.0.0")] public class CustomModelHeight : BaseUnityPlugin { private struct CameraPreset { public float Scale; public float ModelLift; public Vector3 CameraOffset; public CameraPreset(float scale, float modelLift, Vector3 cameraOffset) { //IL_0010: Unknown result type (might be due to invalid IL or missing references) //IL_0011: Unknown result type (might be due to invalid IL or missing references) Scale = scale; ModelLift = modelLift; CameraOffset = cameraOffset; } } [CompilerGenerated] private sealed class <ApplyNextFrame>d__7 : IEnumerator<object>, IEnumerator, IDisposable { private int <>1__state; private object <>2__current; public PlayerControllerB player; private GameObject <go>5__1; private Transform <modelRoot>5__2; private Transform <hud>5__3; object IEnumerator<object>.Current { [DebuggerHidden] get { return <>2__current; } } object IEnumerator.Current { [DebuggerHidden] get { return <>2__current; } } [DebuggerHidden] public <ApplyNextFrame>d__7(int <>1__state) { this.<>1__state = <>1__state; } [DebuggerHidden] void IDisposable.Dispose() { <go>5__1 = null; <modelRoot>5__2 = null; <hud>5__3 = null; <>1__state = -2; } private bool MoveNext() { switch (<>1__state) { default: return false; case 0: <>1__state = -1; <>2__current = null; <>1__state = 1; return true; case 1: <>1__state = -1; if ((Object)(object)player != (Object)(object)GameNetworkManager.Instance.localPlayerController) { return false; } <go>5__1 = ((Component)player).gameObject; <modelRoot>5__2 = <go>5__1.transform.Find("ScavengerModel"); <hud>5__3 = <go>5__1.transform.Find("ScavengerModel/metarig/CameraContainer/MainCamera/HUDHelmetPosition"); if (Object.op_Implicit((Object)(object)<go>5__1.GetComponent<OUNA>())) { ApplyPreset(<go>5__1, <modelRoot>5__2, <hud>5__3, OUNAPreset); } else if (Object.op_Implicit((Object)(object)<go>5__1.GetComponent<RANA>())) { ApplyPreset(<go>5__1, <modelRoot>5__2, <hud>5__3, RANAPreset); } else if (Object.op_Implicit((Object)(object)<go>5__1.GetComponent<ZUNDAMON>())) { ApplyPreset(<go>5__1, <modelRoot>5__2, <hud>5__3, ZUNDAPreset); } else { ApplyPreset(<go>5__1, <modelRoot>5__2, <hud>5__3, DefaultPreset); } return false; } } bool IEnumerator.MoveNext() { //ILSpy generated this explicit interface implementation from .override directive in MoveNext return this.MoveNext(); } [DebuggerHidden] void IEnumerator.Reset() { throw new NotSupportedException(); } } internal static ManualLogSource Log; private static readonly CameraPreset DefaultPreset = new CameraPreset(1f, 0f, new Vector3(0.01f, -0.048f, -0.063f)); private static readonly CameraPreset OUNAPreset = new CameraPreset(0.5f, 0.65f, new Vector3(0.01f, -0.1f, -0.12f)); private static readonly CameraPreset RANAPreset = new CameraPreset(0.5f, 0.4f, new Vector3(0.01f, -0.1f, -0.12f)); private static readonly CameraPreset ZUNDAPreset = new CameraPreset(0.5f, 0.63f, new Vector3(0.01f, -0.1f, -0.12f)); private void Awake() { //IL_0006: Unknown result type (might be due to invalid IL or missing references) new Harmony("com.gaby.modelheight").PatchAll(); } [IteratorStateMachine(typeof(<ApplyNextFrame>d__7))] internal static IEnumerator ApplyNextFrame(PlayerControllerB player) { //yield-return decompiler failed: Unexpected instruction in Iterator.Dispose() return new <ApplyNextFrame>d__7(0) { player = player }; } private static void ApplyPreset(GameObject go, Transform modelRoot, Transform hud, CameraPreset preset) { //IL_0007: Unknown result type (might be due to invalid IL or missing references) //IL_0012: Unknown result type (might be due to invalid IL or missing references) //IL_004e: Unknown result type (might be due to invalid IL or missing references) //IL_0066: Unknown result type (might be due to invalid IL or missing references) go.transform.localScale = Vector3.one * preset.Scale; float num = (1f - preset.Scale) * 0.5f; if ((Object)(object)modelRoot != (Object)null) { modelRoot.localPosition = new Vector3(0f, num + preset.ModelLift, 0f); } if ((Object)(object)hud != (Object)null) { hud.localPosition = preset.CameraOffset; } } } [HarmonyPatch(typeof(ModelReplacementAPI), "SetPlayerModelReplacement")] public static class SetModelPatch { [HarmonyPostfix] public static void Postfix(PlayerControllerB player) { if ((Object)(object)player != (Object)null) { ((MonoBehaviour)player).StartCoroutine(CustomModelHeight.ApplyNextFrame(player)); } } } [HarmonyPatch(typeof(ModelReplacementAPI), "RemovePlayerModelReplacement")] public static class RemoveModelPatch { [HarmonyPostfix] public static void Postfix(PlayerControllerB player) { if ((Object)(object)player != (Object)null) { ((MonoBehaviour)player).StartCoroutine(CustomModelHeight.ApplyNextFrame(player)); } } } } namespace System.Runtime.CompilerServices { [AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)] internal sealed class IgnoresAccessChecksToAttribute : Attribute { public IgnoresAccessChecksToAttribute(string assemblyName) { } } }