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 scallywag NSFW models extra v0.2.0
modelpack 2 build.dll
Decompiled a month 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 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("modelpack 2 build")] [assembly: AssemblyConfiguration("Debug")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: AssemblyInformationalVersion("1.0.0")] [assembly: AssemblyProduct("modelpack 2 build")] [assembly: AssemblyTitle("modelpack 2 build")] [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; } } } [AttributeUsage(AttributeTargets.Class)] public class AssetNameAttribute : Attribute { public string Name { get; } public AssetNameAttribute(string name) { Name = name; } } public abstract class NamedModel : BodyReplacementBase { protected override GameObject LoadAssetsAndReturnModel() { string text = ((object)this).GetType().GetCustomAttribute<AssetNameAttribute>()?.Name ?? throw new Exception("Missing [AssetName] on " + ((object)this).GetType().Name); return Assets.MainAssetBundle.LoadAsset<GameObject>(text); } } [AssetName("bonfie2")] public class BONFIE2 : NamedModel { } [AssetName("bonfie2_casual")] public class BONFIE2CASUAL : NamedModel { } [AssetName("bonfie2_bikini")] public class BONFIE2BIKINI : NamedModel { } [AssetName("bonfie2_nude")] public class BONFIE2NUDE : NamedModel { } [AssetName("frenni2")] public class FRENNI2 : NamedModel { } [AssetName("frenni2_casual")] public class FRENNI2CASUAL : NamedModel { } [AssetName("frenni2_bikini")] public class FRENNI2BIKINI : NamedModel { } [AssetName("frenni2_nude")] public class FRENNI2NUDE : NamedModel { } [AssetName("goldie2")] public class GOLDIE2 : NamedModel { } [AssetName("goldie2_alt")] public class GOLDIE2ALT : NamedModel { } [AssetName("goldie2_casual")] public class GOLDIE2CASUAL : NamedModel { } [AssetName("goldie2_nude")] public class GOLDIE2NUDE : NamedModel { } namespace ModelReplacement { [AssetName("angela")] public class ANGELA : NamedModel { } [AssetName("angela nsfw")] public class ANGELA_NSFW : NamedModel { } [AssetName("angela nun")] public class ANGELA_NUN : NamedModel { } [AssetName("angela nun nsfw")] public class ANGELA_NUN_NSFW : NamedModel { } [AssetName("glados")] public class GLADOS : NamedModel { } [AssetName("glados human")] public class GLADOS_HUMAN : NamedModel { } [AssetName("glados nsfw")] public class GLADOS_NSFW : NamedModel { } [AssetName("glados human nsfw")] public class GLADOS_HUMAN_NSFW : NamedModel { } [AssetName("glados alt")] public class GLADOS_ALT : NamedModel { } [AssetName("glados alt human")] public class GLADOS_ALT_HUMAN : NamedModel { } [AssetName("glados alt nsfw")] public class GLADOS_ALT_NSFW : NamedModel { } [AssetName("glados alt human nsfw")] public class GLADOS_ALT_HUMAN_NSFW : NamedModel { } [AssetName("loona2")] public class LOONA : NamedModel { } [AssetName("loona2 bikini 1")] public class LOONA_BIKINI_1 : NamedModel { } [AssetName("loona2 bikini 2")] public class LOONA_BIKINI_2 : NamedModel { } [AssetName("loona2 nsfw 1")] public class LOONA_NSFW_1 : NamedModel { } [AssetName("loona2 nsfw 2")] public class LOONA_NSFW_2 : NamedModel { } [AssetName("ralsei normal")] public class RALSEI_NORMAL : NamedModel { } [AssetName("ralsei normal sweater")] public class RALSEI_NORMAL_SWEATER : NamedModel { } [AssetName("ralsei normal nsfw 1")] public class RALSEI_NORMAL_NSFW_1 : NamedModel { } [AssetName("ralsei normal nsfw 2")] public class RALSEI_NORMAL_NSFW_2 : NamedModel { } [AssetName("ralsei shadow")] public class RALSEI_SHADOW : NamedModel { } [AssetName("ralsei shadow sweater")] public class RALSEI_SHADOW_SWEATER : NamedModel { } [AssetName("ralsei shadow nsfw 1")] public class RALSEI_SHADOW_NSFW_1 : NamedModel { } [AssetName("ralsei shadow nsfw 2")] public class RALSEI_SHADOW_NSFW_2 : NamedModel { } [BepInPlugin("com.grober_swashbuckle.scallywag_models_extra", "scallywag_models_extra", "0.1.0")] [BepInDependency(/*Could not decode attribute arguments.*/)] public class Plugin : BaseUnityPlugin { private void Awake() { //IL_0315: Unknown result type (might be due to invalid IL or missing references) //IL_031b: Expected O, but got Unknown Assets.PopulateAssets(); ModelReplacementAPI.RegisterSuitModelReplacement("angela", typeof(ANGELA)); ModelReplacementAPI.RegisterSuitModelReplacement("angela_nsfw", typeof(ANGELA_NSFW)); ModelReplacementAPI.RegisterSuitModelReplacement("angela_nun", typeof(ANGELA_NUN)); ModelReplacementAPI.RegisterSuitModelReplacement("angela_nun_nsfw", typeof(ANGELA_NUN_NSFW)); ModelReplacementAPI.RegisterSuitModelReplacement("glados", typeof(GLADOS)); ModelReplacementAPI.RegisterSuitModelReplacement("glados_human", typeof(GLADOS_HUMAN)); ModelReplacementAPI.RegisterSuitModelReplacement("glados_nsfw", typeof(GLADOS_NSFW)); ModelReplacementAPI.RegisterSuitModelReplacement("glados_human_nsfw", typeof(GLADOS_HUMAN_NSFW)); ModelReplacementAPI.RegisterSuitModelReplacement("glados_alt", typeof(GLADOS_ALT)); ModelReplacementAPI.RegisterSuitModelReplacement("glados_alt_human", typeof(GLADOS_ALT_HUMAN)); ModelReplacementAPI.RegisterSuitModelReplacement("glados_alt_nsfw", typeof(GLADOS_ALT_NSFW)); ModelReplacementAPI.RegisterSuitModelReplacement("glados_alt_human_nsfw", typeof(GLADOS_ALT_HUMAN_NSFW)); ModelReplacementAPI.RegisterSuitModelReplacement("loona2", typeof(LOONA)); ModelReplacementAPI.RegisterSuitModelReplacement("loona2_bikini_1", typeof(LOONA_BIKINI_1)); ModelReplacementAPI.RegisterSuitModelReplacement("loona2_bikini_2", typeof(LOONA_BIKINI_2)); ModelReplacementAPI.RegisterSuitModelReplacement("loona2_nsfw_1", typeof(LOONA_NSFW_1)); ModelReplacementAPI.RegisterSuitModelReplacement("loona2_nsfw_2", typeof(LOONA_NSFW_2)); ModelReplacementAPI.RegisterSuitModelReplacement("ralsei_normal", typeof(RALSEI_NORMAL)); ModelReplacementAPI.RegisterSuitModelReplacement("ralsei_normal_sweater", typeof(RALSEI_NORMAL_SWEATER)); ModelReplacementAPI.RegisterSuitModelReplacement("ralsei_normal_nsfw_1", typeof(RALSEI_NORMAL_NSFW_1)); ModelReplacementAPI.RegisterSuitModelReplacement("ralsei_normal_nsfw_2", typeof(RALSEI_NORMAL_NSFW_2)); ModelReplacementAPI.RegisterSuitModelReplacement("ralsei_shadow", typeof(RALSEI_SHADOW)); ModelReplacementAPI.RegisterSuitModelReplacement("ralsei_shadow_sweater", typeof(RALSEI_SHADOW_SWEATER)); ModelReplacementAPI.RegisterSuitModelReplacement("ralsei_shadow_nsfw_1", typeof(RALSEI_SHADOW_NSFW_1)); ModelReplacementAPI.RegisterSuitModelReplacement("ralsei_shadow_nsfw_2", typeof(RALSEI_SHADOW_NSFW_2)); ModelReplacementAPI.RegisterSuitModelReplacement("bonfie2", typeof(BONFIE2)); ModelReplacementAPI.RegisterSuitModelReplacement("bonfie2_casual", typeof(BONFIE2CASUAL)); ModelReplacementAPI.RegisterSuitModelReplacement("bonfie2_bikini", typeof(BONFIE2BIKINI)); ModelReplacementAPI.RegisterSuitModelReplacement("bonfie2_nude", typeof(BONFIE2NUDE)); ModelReplacementAPI.RegisterSuitModelReplacement("frenni2", typeof(FRENNI2)); ModelReplacementAPI.RegisterSuitModelReplacement("frenni2_casual", typeof(FRENNI2CASUAL)); ModelReplacementAPI.RegisterSuitModelReplacement("frenni2_bikini", typeof(FRENNI2BIKINI)); ModelReplacementAPI.RegisterSuitModelReplacement("frenni2_nude", typeof(FRENNI2NUDE)); ModelReplacementAPI.RegisterSuitModelReplacement("goldie2", typeof(GOLDIE2)); ModelReplacementAPI.RegisterSuitModelReplacement("goldie2_alt", typeof(GOLDIE2ALT)); ModelReplacementAPI.RegisterSuitModelReplacement("goldie2_casual", typeof(GOLDIE2CASUAL)); ModelReplacementAPI.RegisterSuitModelReplacement("goldie2_nude", typeof(GOLDIE2NUDE)); Harmony val = new Harmony("com.grober_swashbuckle.scallywag_models_extra"); val.PatchAll(); ((BaseUnityPlugin)this).Logger.LogInfo((object)"Plugin com.grober_swashbuckle.scallywag_models_extra is loaded!"); } } public static class Assets { public static string mainAssetBundleName = "scallywag_models_extra"; 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) { } } }