Please disclose if any significant portion of your mod was created 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 TouhouPlayerModels v0.9.0
TouhouPlayerModels.dll
Decompiled 2 years agousing 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 BepInEx.Configuration; 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); } } [BepInPlugin("Shen.TouhouModels", "Touhou Player Models", "0.8.0")] [BepInDependency(/*Could not decode attribute arguments.*/)] [BepInDependency(/*Could not decode attribute arguments.*/)] public class Plugin : BaseUnityPlugin { public static ConfigFile config; public static ConfigEntry<bool> enableModelForAllSuits { get; private set; } public static ConfigEntry<bool> enableModelAsDefault { get; private set; } public static ConfigEntry<string> suitNamesToEnableModel { get; private set; } private static void InitConfig() { enableModelForAllSuits = config.Bind<bool>("Suits to Replace Settings", "Enable Model for all Suits", false, "Enable to model replace every suit. Set to false to specify suits"); enableModelAsDefault = config.Bind<bool>("Suits to Replace Settings", "Enable Model as default", false, "Enable to model replace every suit that hasn't been otherwise registered."); suitNamesToEnableModel = config.Bind<string>("Suits to Replace Settings", "Suits to enable Model for", "Default,Orange suit", "Enter a comma separated list of suit names.(Additionally, [Green suit,Pajama suit,Hazard suit])"); } private void Awake() { //IL_0740: Unknown result type (might be due to invalid IL or missing references) //IL_0746: Expected O, but got Unknown config = ((BaseUnityPlugin)this).Config; InitConfig(); 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)); 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) { } } }