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("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()?.Name ?? throw new Exception("Missing [AssetName] on " + ((object)this).GetType().Name); return Assets.MainAssetBundle.LoadAsset(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) { } } }