Decompiled source of FortniteSkins v0.1.1

BepInEx/plugins/ClassicTroopers/ClassicTroopers.dll

Decompiled 2 days ago
using System;
using System.Diagnostics;
using System.IO;
using System.Reflection;
using System.Runtime.CompilerServices;
using BepInEx;
using ModelReplacement;
using ModelReplacement.AvatarBodyUpdater;
using PinkGhoulTrooper;
using UnityEngine;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: AssemblyVersion("0.0.0.0")]
namespace PinkGhoulTrooper
{
	public sealed class FloorAlignedAvatarUpdater : AvatarUpdater
	{
		public override void AssignModelReplacement(GameObject player, GameObject replacement)
		{
			//IL_0009: Unknown result type (might be due to invalid IL or missing references)
			//IL_000e: Unknown result type (might be due to invalid IL or missing references)
			((AvatarUpdater)this).AssignModelReplacement(player, replacement);
			base.rootPositionOffset = Vector3.zero;
		}

		protected override void UpdateModel()
		{
			//IL_0073: Unknown result type (might be due to invalid IL or missing references)
			//IL_007f: Unknown result type (might be due to invalid IL or missing references)
			//IL_0093: Unknown result type (might be due to invalid IL or missing references)
			//IL_009e: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b3: Unknown result type (might be due to invalid IL or missing references)
			//IL_00b8: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c2: Unknown result type (might be due to invalid IL or missing references)
			//IL_00c7: Unknown result type (might be due to invalid IL or missing references)
			((AvatarUpdater)this).UpdateModel();
			Transform avatarTransformFromBoneName = ((AvatarUpdater)this).GetAvatarTransformFromBoneName("spine");
			Transform avatarTransformFromBoneName2 = ((AvatarUpdater)this).GetAvatarTransformFromBoneName("toe.L");
			Transform avatarTransformFromBoneName3 = ((AvatarUpdater)this).GetAvatarTransformFromBoneName("toe.R");
			Transform playerTransformFromBoneName = ((AvatarUpdater)this).GetPlayerTransformFromBoneName("toe.L");
			Transform playerTransformFromBoneName2 = ((AvatarUpdater)this).GetPlayerTransformFromBoneName("toe.R");
			if (!((Object)(object)avatarTransformFromBoneName == (Object)null) && !((Object)(object)avatarTransformFromBoneName2 == (Object)null) && !((Object)(object)avatarTransformFromBoneName3 == (Object)null) && !((Object)(object)playerTransformFromBoneName == (Object)null) && !((Object)(object)playerTransformFromBoneName2 == (Object)null))
			{
				float num = (playerTransformFromBoneName.position.y + playerTransformFromBoneName2.position.y) * 0.5f;
				float num2 = (avatarTransformFromBoneName2.position.y + avatarTransformFromBoneName3.position.y) * 0.5f;
				avatarTransformFromBoneName.position += Vector3.up * (num - num2);
			}
		}
	}
}
namespace ClassicTroopers
{
	[BepInPlugin("clair.classictroopers", "Fortnite Skins", "0.1.1")]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	[BepInDependency(/*Could not decode attribute arguments.*/)]
	public sealed class Plugin : BaseUnityPlugin
	{
		internal static AssetBundle Bundle;

		internal static AssetBundle FixedRaiderBundle;

		private void Awake()
		{
			try
			{
				Bundle = AssetBundle.LoadFromFile(Path.Combine(Path.GetDirectoryName(((BaseUnityPlugin)this).Info.Location), "classictroopers"));
				if (!Object.op_Implicit((Object)(object)Bundle))
				{
					throw new InvalidOperationException("Classic Troopers bundle failed to load");
				}
				FixedRaiderBundle = AssetBundle.LoadFromFile(Path.Combine(Path.GetDirectoryName(((BaseUnityPlugin)this).Info.Location), "renegadehairfix"));
				if (!Object.op_Implicit((Object)(object)FixedRaiderBundle) || !Object.op_Implicit((Object)(object)FixedRaiderBundle.LoadAsset<GameObject>("Assets/Generated/RenegadeRaider.prefab")))
				{
					throw new InvalidOperationException("Missing corrected Renegade bundle");
				}
				string[] array = new string[3] { "AerialAssaultTrooper", "PurpleSkullTrooper", "RenegadeRaider" };
				foreach (string text in array)
				{
					if (!Object.op_Implicit((Object)(object)Bundle.LoadAsset<GameObject>("Assets/Generated/" + text + ".prefab")))
					{
						throw new InvalidOperationException("Missing character: " + text);
					}
				}
				ModelReplacementAPI.RegisterSuitModelReplacement("Aerial Assault Trooper", typeof(AerialReplacement));
				ModelReplacementAPI.RegisterSuitModelReplacement("Purple Skull Trooper", typeof(SkullReplacement));
				ModelReplacementAPI.RegisterSuitModelReplacement("Renegade Raider", typeof(RaiderReplacement));
				((BaseUnityPlugin)this).Logger.LogInfo((object)"Three Classic Troopers suit models registered; Pink Ghoul is supplied by its preserved 1.0.3 plugin.");
			}
			catch (Exception ex)
			{
				((BaseUnityPlugin)this).Logger.LogError((object)ex);
			}
		}
	}
	public abstract class TrooperReplacement : BodyReplacementBase
	{
		protected abstract string Key { get; }

		protected override GameObject LoadAssetsAndReturnModel()
		{
			return ((Key == "RenegadeRaider") ? Plugin.FixedRaiderBundle : Plugin.Bundle).LoadAsset<GameObject>("Assets/Generated/" + Key + ".prefab");
		}

		protected override AvatarUpdater GetAvatarUpdater()
		{
			return (AvatarUpdater)(object)new FloorAlignedAvatarUpdater();
		}
	}
	public sealed class AerialReplacement : TrooperReplacement
	{
		protected override string Key => "AerialAssaultTrooper";
	}
	public sealed class SkullReplacement : TrooperReplacement
	{
		protected override string Key => "PurpleSkullTrooper";
	}
	public sealed class RaiderReplacement : TrooperReplacement
	{
		protected override string Key => "RenegadeRaider";
	}
}

BepInEx/plugins/PinkGhoulTrooper/PinkGhoulTrooper.dll

Decompiled 2 days ago
using System;
using System.Diagnostics;
using System.IO;
using System.Reflection;
using System.Runtime.CompilerServices;
using BepInEx;
using ModelReplacement;
using ModelReplacement.AvatarBodyUpdater;
using UnityEngine;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)]
[assembly: AssemblyVersion("0.0.0.0")]
namespace PinkGhoulTrooper;

[BepInPlugin("clair.pinkghoultrooper", "Pink Ghoul Trooper", "1.0.2")]
[BepInDependency(/*Could not decode attribute arguments.*/)]
[BepInDependency(/*Could not decode attribute arguments.*/)]
public sealed class Plugin : BaseUnityPlugin
{
	internal static GameObject Prefab;

	private void Awake()
	{
		try
		{
			string text = Path.Combine(Path.GetDirectoryName(((BaseUnityPlugin)this).Info.Location), "pinkghoultrooper");
			AssetBundle obj = AssetBundle.LoadFromFile(text);
			if ((Object)(object)obj == (Object)null)
			{
				throw new InvalidOperationException("Unable to load character asset bundle: " + text);
			}
			Prefab = obj.LoadAsset<GameObject>("Assets/Generated/PinkGhoulTrooper.prefab");
			if ((Object)(object)Prefab == (Object)null)
			{
				throw new InvalidOperationException("PinkGhoulTrooper prefab is missing");
			}
			ModelReplacementAPI.RegisterSuitModelReplacement("Pink Ghoul Trooper", typeof(GhoulReplacement));
			((BaseUnityPlugin)this).Logger.LogInfo((object)"Pink Ghoul Trooper ready. Select its suit on the ship's rack.");
		}
		catch (Exception ex)
		{
			((BaseUnityPlugin)this).Logger.LogError((object)ex);
		}
	}
}
public sealed class GhoulReplacement : BodyReplacementBase
{
	protected override GameObject LoadAssetsAndReturnModel()
	{
		return Plugin.Prefab;
	}

	protected override AvatarUpdater GetAvatarUpdater()
	{
		return (AvatarUpdater)(object)new FloorAlignedAvatarUpdater();
	}
}
public sealed class FloorAlignedAvatarUpdater : AvatarUpdater
{
	public override void AssignModelReplacement(GameObject player, GameObject replacement)
	{
		//IL_0009: Unknown result type (might be due to invalid IL or missing references)
		//IL_000e: Unknown result type (might be due to invalid IL or missing references)
		((AvatarUpdater)this).AssignModelReplacement(player, replacement);
		base.rootPositionOffset = Vector3.zero;
	}

	protected override void UpdateModel()
	{
		//IL_0073: Unknown result type (might be due to invalid IL or missing references)
		//IL_007f: Unknown result type (might be due to invalid IL or missing references)
		//IL_0093: Unknown result type (might be due to invalid IL or missing references)
		//IL_009e: Unknown result type (might be due to invalid IL or missing references)
		//IL_00b3: Unknown result type (might be due to invalid IL or missing references)
		//IL_00b8: Unknown result type (might be due to invalid IL or missing references)
		//IL_00c2: Unknown result type (might be due to invalid IL or missing references)
		//IL_00c7: Unknown result type (might be due to invalid IL or missing references)
		((AvatarUpdater)this).UpdateModel();
		Transform avatarTransformFromBoneName = ((AvatarUpdater)this).GetAvatarTransformFromBoneName("spine");
		Transform avatarTransformFromBoneName2 = ((AvatarUpdater)this).GetAvatarTransformFromBoneName("toe.L");
		Transform avatarTransformFromBoneName3 = ((AvatarUpdater)this).GetAvatarTransformFromBoneName("toe.R");
		Transform playerTransformFromBoneName = ((AvatarUpdater)this).GetPlayerTransformFromBoneName("toe.L");
		Transform playerTransformFromBoneName2 = ((AvatarUpdater)this).GetPlayerTransformFromBoneName("toe.R");
		if (!((Object)(object)avatarTransformFromBoneName == (Object)null) && !((Object)(object)avatarTransformFromBoneName2 == (Object)null) && !((Object)(object)avatarTransformFromBoneName3 == (Object)null) && !((Object)(object)playerTransformFromBoneName == (Object)null) && !((Object)(object)playerTransformFromBoneName2 == (Object)null))
		{
			float num = (playerTransformFromBoneName.position.y + playerTransformFromBoneName2.position.y) * 0.5f;
			float num2 = (avatarTransformFromBoneName2.position.y + avatarTransformFromBoneName3.position.y) * 0.5f;
			avatarTransformFromBoneName.position += Vector3.up * (num - num2);
		}
	}
}