Decompiled source of TouhouPlayerModels v0.11.0

BepInEx/plugins/TouhouPlayerModels.dll

Decompiled 6 months ago
using System;
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 HarmonyLib;
using Microsoft.CodeAnalysis;
using ModelReplacement;
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("TouhouPlayerModels")]
[assembly: AssemblyConfiguration("Debug")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: AssemblyInformationalVersion("1.0.0")]
[assembly: AssemblyProduct("TouhouPlayerModels")]
[assembly: AssemblyTitle("TouhouPlayerModels")]
[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 TouhouModels
{
	public class MRURUMI : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Urumi";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRMOMOYO : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Momoyo";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRREISEN : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Reisen";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRFUTO : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Futo";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRSHION : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Shion";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRJOON : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Joon";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRKOISHI : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Koishi";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRFLANDRE : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Flandre";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRCHIMATA : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Chimata";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRKANAKO : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Kanako";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRSEIJA : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Seija";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRTSUKASA : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Tsukasa";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRREIMU : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Reimu";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRMARISA : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Marisa";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRREMILIA : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Remilia";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRSANAE : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Sanae";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRSATORI : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Satori";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRSUMIREKO : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Sumireko";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRKOGASA : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Kogasa";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRMOMIJI : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Momiji";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRNUE : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Nue";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRYOSHIKA : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Yoshika";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRAUNN : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Aunn";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRYUUGI : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Yuugi";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRKAGEROU : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Kagerou";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRKYOUKO : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Kyouko";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRMOKOU : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Mokou";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRPARSEE : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Parsee";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRRUMIA : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Rumia";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRCIRNO : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Cirno";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRDAIYOUSEI : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Daiyousei";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRNARUMI : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Narumi";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRBYAKUREN : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Byakuren";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRKEIKI : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Keiki";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRRINGO : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Ringo";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRSEIRAN : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Seiran";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRTAKANE : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Takane";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRMEILING : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Meiling";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRKOAKUMA : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Koakuma";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRPATCHOULI : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Patchouli";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRSAKUYA : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Sakuya";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRLETTY : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Letty";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRCHEN : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Chen";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRALICE : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Alice";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRLILY : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Lily";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRMERLIN : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Merlin";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRLYRICA : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Lyrica";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRLUNASA : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Lunasa";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRYOUMU : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Youmu";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRYUYUKO : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Yuyuko";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRRAN : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Ran";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRYUKARI : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Yukari";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRTENSHI : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Tenshi";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRHECATIA : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Hecatia";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRWRIGGLE : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Wriggle";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRMYSTIA : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Mystia";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRKEINE : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Keine";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRTEWI : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Tewi";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MREIRIN : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Eirin";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRKAGUYA : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Kaguya";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRSUIKA : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Suika";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRAYA : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Aya";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRMEDICINE : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Medicine";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRYUUKA : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Yuuka";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRKOMACHI : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Komachi";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MREIKI : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Eiki";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRMINORIKO : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Minoriko";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRSHIZUHA : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Shizuha";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRHINA : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Hina";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRNITORI : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Nitori";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRSUWAKO : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Suwako";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRSUNNY : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Sunny";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRLUNA : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Luna";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRSTAR : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Star";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRYACHIE : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Yachie";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRSAKI : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Saki";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRYUUMA : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Yuuma";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRKUTAKA : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Kutaka";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRSAGUME : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Sagume";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRCLOWNPIECE : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Clownpiece";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRJUNKO : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Junko";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRYAMAME : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Yamame";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRRIN : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Rin";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRUTSUHO : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Utsuho";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRSHOU : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Shou";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRDOREMY : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Doremy";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRKASEN : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Kasen";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRBIKER : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Biker";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRSUNIFORM : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Suniform";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRDOUJI : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Douji";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRRUNIFORM : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Runiform";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRARMOR : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Armor";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRTAGTEAM : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Tagteam";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRFIFTEEN : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Fifteen";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRVILLAGE : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Village";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRMIKO : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Miko";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRAKYUU : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Akyuu";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRETERNITY : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Eternity";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRKOKORO : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Kokoro";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRKOSUZU : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Kosuzu";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRMIKE : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Mike";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRMIYOI : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Miyoi";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRMAYUMI : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Mayumi";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MROKINA : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Okina";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRSATONO : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Satono";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRMAI : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Mai";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRKIMONO : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Kimono";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRYTAGTEAM : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Ytagteam";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRWINTER : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Winter";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRMAMIZOU : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Mamizou";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRMAMIVILLAGE : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "MamiVillage";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRSUKUNA : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Sukuna";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRRINALT : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "RinAlt";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRSEKIBANKI : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Sekibanki";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRRAIKO : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Raiko";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRIKU : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Iku";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRNAZRIN : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Nazrin";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRICHIRIN : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Ichirin";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	public class MRMURASA : BodyReplacementBase
	{
		protected override GameObject LoadAssetsAndReturnModel()
		{
			string text = "Murasa";
			return Assets.MainAssetBundle.LoadAsset<GameObject>(text);
		}
	}
	[BepInPlugin("Shen.TouhouModels", "Touhou Player Models", "0.11.0")]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	public class Plugin : BaseUnityPlugin
	{
		private void Awake()
		{
			//IL_09cf: Unknown result type (might be due to invalid IL or missing references)
			//IL_09d5: Expected O, but got Unknown
			Assets.PopulateAssets();
			ModelReplacementAPI.RegisterSuitModelReplacement("Momoyo", typeof(MRMOMOYO));
			ModelReplacementAPI.RegisterSuitModelReplacement("Reisen", typeof(MRREISEN));
			ModelReplacementAPI.RegisterSuitModelReplacement("Urumi", typeof(MRURUMI));
			ModelReplacementAPI.RegisterSuitModelReplacement("Shion", typeof(MRSHION));
			ModelReplacementAPI.RegisterSuitModelReplacement("Joon", typeof(MRJOON));
			ModelReplacementAPI.RegisterSuitModelReplacement("Futo", typeof(MRFUTO));
			ModelReplacementAPI.RegisterSuitModelReplacement("Flandre", typeof(MRFLANDRE));
			ModelReplacementAPI.RegisterSuitModelReplacement("Koishi", typeof(MRKOISHI));
			ModelReplacementAPI.RegisterSuitModelReplacement("Chimata", typeof(MRCHIMATA));
			ModelReplacementAPI.RegisterSuitModelReplacement("Kanako", typeof(MRKANAKO));
			ModelReplacementAPI.RegisterSuitModelReplacement("Seija", typeof(MRSEIJA));
			ModelReplacementAPI.RegisterSuitModelReplacement("Tsukasa", typeof(MRTSUKASA));
			ModelReplacementAPI.RegisterSuitModelReplacement("Reimu", typeof(MRREIMU));
			ModelReplacementAPI.RegisterSuitModelReplacement("Marisa", typeof(MRMARISA));
			ModelReplacementAPI.RegisterSuitModelReplacement("Remilia", typeof(MRREMILIA));
			ModelReplacementAPI.RegisterSuitModelReplacement("Sanae", typeof(MRSANAE));
			ModelReplacementAPI.RegisterSuitModelReplacement("Satori", typeof(MRSATORI));
			ModelReplacementAPI.RegisterSuitModelReplacement("Sumireko", typeof(MRSUMIREKO));
			ModelReplacementAPI.RegisterSuitModelReplacement("Kogasa", typeof(MRKOGASA));
			ModelReplacementAPI.RegisterSuitModelReplacement("Nue", typeof(MRNUE));
			ModelReplacementAPI.RegisterSuitModelReplacement("Momiji", typeof(MRMOMIJI));
			ModelReplacementAPI.RegisterSuitModelReplacement("Yoshika", typeof(MRYOSHIKA));
			ModelReplacementAPI.RegisterSuitModelReplacement("Aunn", typeof(MRAUNN));
			ModelReplacementAPI.RegisterSuitModelReplacement("Yuugi", typeof(MRYUUGI));
			ModelReplacementAPI.RegisterSuitModelReplacement("Kyouko", typeof(MRKYOUKO));
			ModelReplacementAPI.RegisterSuitModelReplacement("Mokou", typeof(MRMOKOU));
			ModelReplacementAPI.RegisterSuitModelReplacement("Kagerou", typeof(MRKAGEROU));
			ModelReplacementAPI.RegisterSuitModelReplacement("Parsee", typeof(MRPARSEE));
			ModelReplacementAPI.RegisterSuitModelReplacement("Rumia", typeof(MRRUMIA));
			ModelReplacementAPI.RegisterSuitModelReplacement("Cirno", typeof(MRCIRNO));
			ModelReplacementAPI.RegisterSuitModelReplacement("Daiyousei", typeof(MRDAIYOUSEI));
			ModelReplacementAPI.RegisterSuitModelReplacement("Narumi", typeof(MRNARUMI));
			ModelReplacementAPI.RegisterSuitModelReplacement("Byakuren", typeof(MRBYAKUREN));
			ModelReplacementAPI.RegisterSuitModelReplacement("Keiki", typeof(MRKEIKI));
			ModelReplacementAPI.RegisterSuitModelReplacement("Ringo", typeof(MRRINGO));
			ModelReplacementAPI.RegisterSuitModelReplacement("Seiran", typeof(MRSEIRAN));
			ModelReplacementAPI.RegisterSuitModelReplacement("Takane", typeof(MRTAKANE));
			ModelReplacementAPI.RegisterSuitModelReplacement("Meiling", typeof(MRMEILING));
			ModelReplacementAPI.RegisterSuitModelReplacement("Koakuma", typeof(MRKOAKUMA));
			ModelReplacementAPI.RegisterSuitModelReplacement("Patchouli", typeof(MRPATCHOULI));
			ModelReplacementAPI.RegisterSuitModelReplacement("Sakuya", typeof(MRSAKUYA));
			ModelReplacementAPI.RegisterSuitModelReplacement("Letty", typeof(MRLETTY));
			ModelReplacementAPI.RegisterSuitModelReplacement("Chen", typeof(MRCHEN));
			ModelReplacementAPI.RegisterSuitModelReplacement("Alice", typeof(MRALICE));
			ModelReplacementAPI.RegisterSuitModelReplacement("Lily White", typeof(MRLILY));
			ModelReplacementAPI.RegisterSuitModelReplacement("Merlin", typeof(MRMERLIN));
			ModelReplacementAPI.RegisterSuitModelReplacement("Lyrica", typeof(MRLYRICA));
			ModelReplacementAPI.RegisterSuitModelReplacement("Lunasa", typeof(MRLUNASA));
			ModelReplacementAPI.RegisterSuitModelReplacement("Youmu", typeof(MRYOUMU));
			ModelReplacementAPI.RegisterSuitModelReplacement("Yuyuko", typeof(MRYUYUKO));
			ModelReplacementAPI.RegisterSuitModelReplacement("Ran", typeof(MRRAN));
			ModelReplacementAPI.RegisterSuitModelReplacement("Yukari", typeof(MRYUKARI));
			ModelReplacementAPI.RegisterSuitModelReplacement("Tenshi", typeof(MRTENSHI));
			ModelReplacementAPI.RegisterSuitModelReplacement("Hecatia", typeof(MRHECATIA));
			ModelReplacementAPI.RegisterSuitModelReplacement("Wriggle", typeof(MRWRIGGLE));
			ModelReplacementAPI.RegisterSuitModelReplacement("Mystia", typeof(MRMYSTIA));
			ModelReplacementAPI.RegisterSuitModelReplacement("Keine", typeof(MRKEINE));
			ModelReplacementAPI.RegisterSuitModelReplacement("Tewi", typeof(MRTEWI));
			ModelReplacementAPI.RegisterSuitModelReplacement("Eirin", typeof(MREIRIN));
			ModelReplacementAPI.RegisterSuitModelReplacement("Kaguya", typeof(MRKAGUYA));
			ModelReplacementAPI.RegisterSuitModelReplacement("Suika", typeof(MRSUIKA));
			ModelReplacementAPI.RegisterSuitModelReplacement("Aya", typeof(MRAYA));
			ModelReplacementAPI.RegisterSuitModelReplacement("Medicine", typeof(MRMEDICINE));
			ModelReplacementAPI.RegisterSuitModelReplacement("Yuuka", typeof(MRYUUKA));
			ModelReplacementAPI.RegisterSuitModelReplacement("Komachi", typeof(MRKOMACHI));
			ModelReplacementAPI.RegisterSuitModelReplacement("Eiki", typeof(MREIKI));
			ModelReplacementAPI.RegisterSuitModelReplacement("Minoriko", typeof(MRMINORIKO));
			ModelReplacementAPI.RegisterSuitModelReplacement("Shizuha", typeof(MRSHIZUHA));
			ModelReplacementAPI.RegisterSuitModelReplacement("Hina", typeof(MRHINA));
			ModelReplacementAPI.RegisterSuitModelReplacement("Nitori", typeof(MRNITORI));
			ModelReplacementAPI.RegisterSuitModelReplacement("Suwako", typeof(MRSUWAKO));
			ModelReplacementAPI.RegisterSuitModelReplacement("Sunny Milk", typeof(MRSUNNY));
			ModelReplacementAPI.RegisterSuitModelReplacement("Luna Child", typeof(MRLUNA));
			ModelReplacementAPI.RegisterSuitModelReplacement("Star Sapphire", typeof(MRSTAR));
			ModelReplacementAPI.RegisterSuitModelReplacement("Yachie", typeof(MRYACHIE));
			ModelReplacementAPI.RegisterSuitModelReplacement("Saki", typeof(MRSAKI));
			ModelReplacementAPI.RegisterSuitModelReplacement("Yuuma", typeof(MRYUUMA));
			ModelReplacementAPI.RegisterSuitModelReplacement("Kutaka", typeof(MRKUTAKA));
			ModelReplacementAPI.RegisterSuitModelReplacement("Sagume", typeof(MRSAGUME));
			ModelReplacementAPI.RegisterSuitModelReplacement("Clownpiece", typeof(MRCLOWNPIECE));
			ModelReplacementAPI.RegisterSuitModelReplacement("Junko", typeof(MRJUNKO));
			ModelReplacementAPI.RegisterSuitModelReplacement("Yamame", typeof(MRYAMAME));
			ModelReplacementAPI.RegisterSuitModelReplacement("Rin", typeof(MRRIN));
			ModelReplacementAPI.RegisterSuitModelReplacement("Utsuho", typeof(MRUTSUHO));
			ModelReplacementAPI.RegisterSuitModelReplacement("Shou", typeof(MRSHOU));
			ModelReplacementAPI.RegisterSuitModelReplacement("Doremy", typeof(MRDOREMY));
			ModelReplacementAPI.RegisterSuitModelReplacement("Kasen", typeof(MRKASEN));
			ModelReplacementAPI.RegisterSuitModelReplacement("Hijiri Biker", typeof(MRBIKER));
			ModelReplacementAPI.RegisterSuitModelReplacement("Seiran Uniform", typeof(MRSUNIFORM));
			ModelReplacementAPI.RegisterSuitModelReplacement("Kasen Douji", typeof(MRDOUJI));
			ModelReplacementAPI.RegisterSuitModelReplacement("Ringo Uniform", typeof(MRRUNIFORM));
			ModelReplacementAPI.RegisterSuitModelReplacement("Junko Armor", typeof(MRARMOR));
			ModelReplacementAPI.RegisterSuitModelReplacement("Shou Tag Team", typeof(MRTAGTEAM));
			ModelReplacementAPI.RegisterSuitModelReplacement("Reisen 15", typeof(MRFIFTEEN));
			ModelReplacementAPI.RegisterSuitModelReplacement("Reisen Village", typeof(MRVILLAGE));
			ModelReplacementAPI.RegisterSuitModelReplacement("Miko", typeof(MRMIKO));
			ModelReplacementAPI.RegisterSuitModelReplacement("Akyuu", typeof(MRAKYUU));
			ModelReplacementAPI.RegisterSuitModelReplacement("Eternity", typeof(MRETERNITY));
			ModelReplacementAPI.RegisterSuitModelReplacement("Kokoro", typeof(MRKOKORO));
			ModelReplacementAPI.RegisterSuitModelReplacement("Kosuzu", typeof(MRKOSUZU));
			ModelReplacementAPI.RegisterSuitModelReplacement("Mike", typeof(MRMIKE));
			ModelReplacementAPI.RegisterSuitModelReplacement("Miyoi", typeof(MRMIYOI));
			ModelReplacementAPI.RegisterSuitModelReplacement("Mayumi", typeof(MRMAYUMI));
			ModelReplacementAPI.RegisterSuitModelReplacement("Okina", typeof(MROKINA));
			ModelReplacementAPI.RegisterSuitModelReplacement("Satono", typeof(MRSATONO));
			ModelReplacementAPI.RegisterSuitModelReplacement("Mai", typeof(MRMAI));
			ModelReplacementAPI.RegisterSuitModelReplacement("Yuugi Kimono", typeof(MRKIMONO));
			ModelReplacementAPI.RegisterSuitModelReplacement("Yuugi Tag Team", typeof(MRYTAGTEAM));
			ModelReplacementAPI.RegisterSuitModelReplacement("Aunn Winter", typeof(MRWINTER));
			ModelReplacementAPI.RegisterSuitModelReplacement("Mamizou", typeof(MRMAMIZOU));
			ModelReplacementAPI.RegisterSuitModelReplacement("Mami Village", typeof(MRMAMIVILLAGE));
			ModelReplacementAPI.RegisterSuitModelReplacement("Sukuna", typeof(MRSUKUNA));
			ModelReplacementAPI.RegisterSuitModelReplacement("Sekibanki", typeof(MRSEKIBANKI));
			ModelReplacementAPI.RegisterSuitModelReplacement("Rin Alt", typeof(MRRINALT));
			ModelReplacementAPI.RegisterSuitModelReplacement("Raiko", typeof(MRRAIKO));
			ModelReplacementAPI.RegisterSuitModelReplacement("Iku", typeof(MRIKU));
			ModelReplacementAPI.RegisterSuitModelReplacement("Nazrin", typeof(MRNAZRIN));
			ModelReplacementAPI.RegisterSuitModelReplacement("Ichirin", typeof(MRICHIRIN));
			ModelReplacementAPI.RegisterSuitModelReplacement("Murasa", typeof(MRMURASA));
			Harmony val = new Harmony("Shen.TouhouModels");
			val.PatchAll();
			((BaseUnityPlugin)this).Logger.LogInfo((object)"Plugin Shen.TouhouModels is loaded!");
		}
	}
	public static class Assets
	{
		public static string mainAssetBundleName = "TouhouModels";

		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);
			}
		}
	}
}
namespace System.Runtime.CompilerServices
{
	[AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)]
	internal sealed class IgnoresAccessChecksToAttribute : Attribute
	{
		public IgnoresAccessChecksToAttribute(string assemblyName)
		{
		}
	}
}