using 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)
{
}
}
}