Decompiled source of scallywag NSFW models extra v0.2.0

modelpack 2 build.dll

Decompiled a month 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("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)
		{
		}
	}
}