Decompiled source of Suit Thing v1.0.1
BepInEx/plugins/BunyaPineTree-MikuModelReplacement/HatsuneMikuModelReplacement.dll
Decompiled 4 months agousing System; using System.Collections.Generic; using System.Diagnostics; using System.IO; using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using System.Runtime.Versioning; using System.Security; using System.Security.Permissions; using BepInEx; using BepInEx.Configuration; using GameNetcodeStuff; 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("HatsuneMikuModelReplacement")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0+f411b9a21a4403599802c74c5e4ad76369b7795a")] [assembly: AssemblyProduct("HatsuneMikuModelReplacement")] [assembly: AssemblyTitle("HatsuneMikuModelReplacement")] [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 HatsuneMikuModelReplacement { public class BodyReplacementMiku : BodyReplacementBase { private List<string> baseMatNames = new List<string> { "Body", "Eye", "Costume", "Hair", "HairF", "Transparent" }; protected override GameObject LoadAssetsAndReturnModel() { string text = "HatsuneMikuNT"; GameObject val = Assets.MainAssetBundle.LoadAsset<GameObject>(text); int currentSuitID = ((Component)this).GetComponent<PlayerControllerB>().currentSuitID; string value = StartOfRound.Instance.unlockablesList.unlockables[currentSuitID].unlockableName.ToLower().Replace(" ", ""); string[] source = Plugin.suitNamesToEnableEvilMiku.Value.Split(','); source = source.Select((string x) => x.ToLower().Replace(" ", "")).ToArray(); if (source.Contains(value)) { SkinnedMeshRenderer componentInChildren = val.GetComponentInChildren<SkinnedMeshRenderer>(); string text2 = "D"; List<Material> list = new List<Material>(); foreach (string baseMatName in baseMatNames) { list.Add(Assets.MainAssetBundle.LoadAsset<Material>(baseMatName + text2)); } ((Renderer)componentInChildren).SetMaterials(list); } else { SkinnedMeshRenderer componentInChildren2 = val.GetComponentInChildren<SkinnedMeshRenderer>(); string text3 = ""; List<Material> list2 = new List<Material>(); foreach (string baseMatName2 in baseMatNames) { list2.Add(Assets.MainAssetBundle.LoadAsset<Material>(baseMatName2 + text3)); } ((Renderer)componentInChildren2).SetMaterials(list2); } return val; } protected override void OnDeath() { SkinnedMeshRenderer[] componentsInChildren = base.replacementDeadBody.GetComponentsInChildren<SkinnedMeshRenderer>(); SkinnedMeshRenderer val = (componentsInChildren.Any() ? componentsInChildren.First() : null); if (!((Object)(object)val == (Object)null)) { val.SetBlendShapeWeight(83, 0f); val.SetBlendShapeWeight(84, 0f); val.SetBlendShapeWeight(25, 0f); val.SetBlendShapeWeight(45, 0f); val.SetBlendShapeWeight(29, 0f); val.SetBlendShapeWeight(44, 0f); val.SetBlendShapeWeight(49, 0f); val.SetBlendShapeWeight(58, 0f); val.SetBlendShapeWeight(60, 0f); val.SetBlendShapeWeight(29, 100f); val.SetBlendShapeWeight(52, 100f); val.SetBlendShapeWeight(61, 100f); val.SetBlendShapeWeight(67, 12f); val.SetBlendShapeWeight(72, 100f); } } protected override void OnEmoteStart(int emoteId) { SkinnedMeshRenderer[] componentsInChildren = base.replacementModel.GetComponentsInChildren<SkinnedMeshRenderer>(); SkinnedMeshRenderer val = (componentsInChildren.Any() ? componentsInChildren.First() : null); if (!((Object)(object)val == (Object)null)) { val.SetBlendShapeWeight(29, 0f); val.SetBlendShapeWeight(44, 0f); val.SetBlendShapeWeight(49, 0f); val.SetBlendShapeWeight(58, 0f); val.SetBlendShapeWeight(60, 0f); val.SetBlendShapeWeight(83, 0f); val.SetBlendShapeWeight(84, 0f); val.SetBlendShapeWeight(25, 0f); val.SetBlendShapeWeight(45, 0f); if (emoteId == 1) { val.SetBlendShapeWeight(83, 100f); val.SetBlendShapeWeight(84, 100f); val.SetBlendShapeWeight(25, 60f); val.SetBlendShapeWeight(45, 100f); } if (emoteId == 2) { val.SetBlendShapeWeight(29, 100f); val.SetBlendShapeWeight(44, 100f); val.SetBlendShapeWeight(49, 100f); val.SetBlendShapeWeight(58, 100f); val.SetBlendShapeWeight(60, 70f); } } } protected override void OnEmoteEnd() { SkinnedMeshRenderer[] componentsInChildren = base.replacementModel.GetComponentsInChildren<SkinnedMeshRenderer>(); SkinnedMeshRenderer val = (componentsInChildren.Any() ? componentsInChildren.First() : null); if (!((Object)(object)val == (Object)null)) { val.SetBlendShapeWeight(83, 0f); val.SetBlendShapeWeight(84, 0f); val.SetBlendShapeWeight(25, 0f); val.SetBlendShapeWeight(45, 0f); val.SetBlendShapeWeight(29, 0f); val.SetBlendShapeWeight(44, 0f); val.SetBlendShapeWeight(49, 0f); val.SetBlendShapeWeight(58, 0f); val.SetBlendShapeWeight(60, 0f); } } } [BepInPlugin("meow.MikuModelReplacement", "Miku Model", "1.5.1")] [BepInDependency(/*Could not decode attribute arguments.*/)] public class Plugin : BaseUnityPlugin { public static ConfigFile config; public static ConfigEntry<bool> enableMikuForAllSuits { get; private set; } public static ConfigEntry<bool> enableMikuAsDefault { get; private set; } public static ConfigEntry<string> suitNamesToEnableMiku { get; private set; } public static ConfigEntry<string> suitNamesToEnableEvilMiku { get; private set; } public static ConfigEntry<float> UpdateRate { get; private set; } public static ConfigEntry<float> distanceDisablePhysics { get; private set; } public static ConfigEntry<bool> disablePhysicsAtRange { get; private set; } private static void InitConfig() { enableMikuForAllSuits = config.Bind<bool>("Suits to Replace Settings", "Enable Miku for all Suits", false, "Enable to replace every suit with Miku. Set to false to specify suits"); enableMikuAsDefault = config.Bind<bool>("Suits to Replace Settings", "Enable Miku as default", false, "Enable to replace every suit that hasn't been otherwise registered with Miku."); suitNamesToEnableMiku = config.Bind<string>("Suits to Replace Settings", "Suits to enable Miku for", "Default,Orange suit", "Enter a comma separated list of suit names.(Additionally, [Green suit,Pajama suit,Hazard suit])"); suitNamesToEnableEvilMiku = config.Bind<string>("Suits to Replace Settings", "Suits to enable Evil Miku for", "Green suit", "Enter a comma separated list of suit names.(Additionally, [Green suit,Pajama suit,Hazard suit])"); UpdateRate = config.Bind<float>("Dynamic Bone Settings", "Update rate", 60f, "Refreshes dynamic bones more times per second the higher the number"); disablePhysicsAtRange = config.Bind<bool>("Dynamic Bone Settings", "Disable physics at range", false, "Enable to disable physics past the specified range"); distanceDisablePhysics = config.Bind<float>("Dynamic Bone Settings", "Distance to disable physics", 20f, "If Disable physics at range is enabled, this is the range after which physics is disabled."); } private void Awake() { //IL_00e9: Unknown result type (might be due to invalid IL or missing references) //IL_00ef: Expected O, but got Unknown config = ((BaseUnityPlugin)this).Config; InitConfig(); Assets.PopulateAssets(); if (enableMikuForAllSuits.Value) { ModelReplacementAPI.RegisterModelReplacementOverride(typeof(BodyReplacementMiku)); } if (enableMikuAsDefault.Value) { ModelReplacementAPI.RegisterModelReplacementDefault(typeof(BodyReplacementMiku)); } string[] array = suitNamesToEnableMiku.Value.Split(','); string[] array2 = array; foreach (string text in array2) { ModelReplacementAPI.RegisterSuitModelReplacement(text, typeof(BodyReplacementMiku)); } string[] array3 = suitNamesToEnableEvilMiku.Value.Split(','); string[] array4 = array3; foreach (string text2 in array4) { ModelReplacementAPI.RegisterSuitModelReplacement(text2, typeof(BodyReplacementMiku)); } Harmony val = new Harmony("meow.MikuModelReplacement"); val.PatchAll(); ((BaseUnityPlugin)this).Logger.LogInfo((object)"Plugin meow.MikuModelReplacement is loaded!"); } } public static class Assets { public static string mainAssetBundleName = "mbundle"; public static AssetBundle MainAssetBundle = null; private static string GetAssemblyName() { return Assembly.GetExecutingAssembly().GetName().Name; } public static void PopulateAssets() { if ((Object)(object)MainAssetBundle == (Object)null) { 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) { } } }
BepInEx/plugins/Daviza-Link_OoT/Link v0.3.dll
Decompiled 4 months 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("Link v0.3")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("Link v0.3")] [assembly: AssemblyTitle("Link v0.3")] [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 LinkOoTLC { public class MRLINKMODELV14 : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "LinkModelv14"; GameObject val = Assets.MainAssetBundle.LoadAsset<GameObject>(text); Material material = (Material)(StartOfRound.Instance.unlockablesList.unlockables[((BodyReplacementBase)this).controller.currentSuitID].unlockableName switch { "Orange suit" => Assets.MainAssetBundle.LoadAsset<Material>("Green Tunic"), "Green suit" => Assets.MainAssetBundle.LoadAsset<Material>("Red Tunic"), "Hazard suit" => Assets.MainAssetBundle.LoadAsset<Material>("Blue Tunic"), "Pajama suit" => Assets.MainAssetBundle.LoadAsset<Material>("Diety Tunic"), _ => Assets.MainAssetBundle.LoadAsset<Material>("Green Tunic"), }); SkinnedMeshRenderer[] componentsInChildren = val.GetComponentsInChildren<SkinnedMeshRenderer>(); Debug.Log((object)"Looking for meshes..."); SkinnedMeshRenderer[] array = componentsInChildren; foreach (SkinnedMeshRenderer val2 in array) { Debug.Log((object)("Found a mesh: " + ((Object)val2).name)); ((Renderer)val2).SetMaterial(material); } return val; } } [BepInPlugin("Daviza.LinkOoT", "Link OoT", "0.1.0")] [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,Green suit,Hazard suit, Pajama suit", "Enter a comma separated list of suit names.(Additionally, [Green suit,Pajama suit,Hazard suit])"); } private void Awake() { //IL_00a2: Unknown result type (might be due to invalid IL or missing references) //IL_00a8: Expected O, but got Unknown config = ((BaseUnityPlugin)this).Config; InitConfig(); Assets.PopulateAssets(); if (enableModelForAllSuits.Value) { ModelReplacementAPI.RegisterModelReplacementOverride(typeof(MRLINKMODELV14)); } if (enableModelAsDefault.Value) { ModelReplacementAPI.RegisterModelReplacementDefault(typeof(MRLINKMODELV14)); } string[] array = suitNamesToEnableModel.Value.Split(','); string[] array2 = array; foreach (string text in array2) { ModelReplacementAPI.RegisterSuitModelReplacement(text, typeof(MRLINKMODELV14)); } Harmony val = new Harmony("Daviza.LinkOoT"); val.PatchAll(); ((BaseUnityPlugin)this).Logger.LogInfo((object)"Plugin Daviza.LinkOoT is loaded!"); } } public static class Assets { public static string mainAssetBundleName = "linkassetbundle"; 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) { } } }
BepInEx/plugins/JoleneKirby-Sans_Player_Model/SansMod.dll
Decompiled 4 months 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 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("SansMod")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("SansMod")] [assembly: AssemblyTitle("SansMod")] [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 MRSANSPREFAB : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "sansPrefab"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } [BepInPlugin("jkirby.LethalSans", "Sans_Player_Model", "0.1.0")] [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", "skeleton", "Enter a comma separated list of suit names.(Additionally, [Green suit,Pajama suit,Hazard suit])"); } private void Awake() { //IL_00a2: Unknown result type (might be due to invalid IL or missing references) //IL_00a8: Expected O, but got Unknown config = ((BaseUnityPlugin)this).Config; InitConfig(); Assets.PopulateAssets(); if (enableModelForAllSuits.Value) { ModelReplacementAPI.RegisterModelReplacementOverride(typeof(MRSANSPREFAB)); } if (enableModelAsDefault.Value) { ModelReplacementAPI.RegisterModelReplacementDefault(typeof(MRSANSPREFAB)); } string[] array = suitNamesToEnableModel.Value.Split(','); string[] array2 = array; foreach (string text in array2) { ModelReplacementAPI.RegisterSuitModelReplacement(text, typeof(MRSANSPREFAB)); } Harmony val = new Harmony("jkirby.LethalSans"); val.PatchAll(); ((BaseUnityPlugin)this).Logger.LogInfo((object)"Plugin jkirby.LethalSans is loaded!"); } } public static class Assets { public static string mainAssetBundleName = "sansbundle"; 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) { } } }
BepInEx/plugins/Sticks-Mario64Playermodel/Mario64.dll
Decompiled 4 months 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 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("Mario64")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("Mario64")] [assembly: AssemblyTitle("Mario64")] [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 MRMARIO64 : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = "Mario 64"; return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } [BepInPlugin("con.stickytweaker.Mario64", "Mario64Playermodel", "0.1.0")] [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_00a5: Unknown result type (might be due to invalid IL or missing references) //IL_00ab: Expected O, but got Unknown config = ((BaseUnityPlugin)this).Config; InitConfig(); Assets.PopulateAssets(); if (enableModelForAllSuits.Value) { ModelReplacementAPI.RegisterModelReplacementOverride(typeof(MRMARIO64)); } if (enableModelAsDefault.Value) { ModelReplacementAPI.RegisterModelReplacementDefault(typeof(MRMARIO64)); } string[] array = suitNamesToEnableModel.Value.Split(','); string[] array2 = array; foreach (string text in array2) { ModelReplacementAPI.RegisterSuitModelReplacement("Mario64", typeof(MRMARIO64)); } Harmony val = new Harmony("con.stickytweaker.Mario64"); val.PatchAll(); ((BaseUnityPlugin)this).Logger.LogInfo((object)"Plugin con.stickytweaker.Mario64 is loaded!"); } } public static class Assets { public static string mainAssetBundleName = "Mario"; 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) { } } }