Decompiled source of ReplaceFishtoyWithBlahaj v1.0.1

LC_Blahaj.dll

Decompiled 11 months ago
using System.Diagnostics;
using System.IO;
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
using System.Runtime.Versioning;
using BepInEx;
using BepInEx.Logging;
using HarmonyLib;
using LC_Blåhaj.Patches;
using UnityEngine;

[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: AssemblyTitle("LC_Blåhaj")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("LC_Blåhaj")]
[assembly: AssemblyCopyright("Copyright ©  2024")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("349b55f3-8fa2-413e-b05f-317be6634fce")]
[assembly: AssemblyFileVersion("1.0.0.0")]
[assembly: TargetFramework(".NETFramework,Version=v4.7.2", FrameworkDisplayName = ".NET Framework 4.7.2")]
[assembly: AssemblyVersion("1.0.0.0")]
namespace LC_Blåhaj
{
	[BepInPlugin("Mellowdy.BlahajReplacer", "BlahajReplacer", "1.0.0")]
	public class BlåhajReplacerMod : BaseUnityPlugin
	{
		private const string modGUID = "Mellowdy.BlahajReplacer";

		private const string modName = "BlahajReplacer";

		private const string modVersion = "1.0.0";

		private readonly Harmony harmony = new Harmony("Mellowdy.BlahajReplacer");

		public static ManualLogSource mls;

		private static BlåhajReplacerMod instance;

		private void Awake()
		{
			if ((Object)(object)instance == (Object)null)
			{
				instance = this;
			}
			mls = Logger.CreateLogSource("Mellowdy.BlahajReplacer");
			mls.LogInfo((object)"Blåhaj is soothing your soul");
			harmony.PatchAll(typeof(BlåhajReplacerMod));
			harmony.PatchAll(typeof(ItemReplacerPatch));
		}
	}
}
namespace LC_Blåhaj.Patches
{
	[HarmonyPatch(typeof(GrabbableObject))]
	internal class ItemReplacerPatch
	{
		private static string itemName = "Blåhaj";

		private static string assetName = "blahaj.haj";

		private static Mesh customMesh = null;

		private static string meshName = "blåHaj.mesh";

		private static Material blåhajMat;

		private static string materialName = "defaultMat.mat";

		private static AudioClip pickUp;

		private static string pickUpAudioName = "BlåhajPickup.wav";

		private static AudioClip drop;

		private static string dropAudioName = "BlåhajPickup.mp3";

		private static float blåhajSize = 5f;

		private static string affectedObject = "fishtestprop";

		private static Vector3 rotation = new Vector3(0f, 0f, 0f);

		[HarmonyPatch("Start")]
		[HarmonyPostfix]
		private static void ReplaceModel(ref Item ___itemProperties, ref MeshRenderer ___mainObjectRenderer, ref int ___floorYRot)
		{
			//IL_0160: Unknown result type (might be due to invalid IL or missing references)
			//IL_0165: Unknown result type (might be due to invalid IL or missing references)
			//IL_0169: Unknown result type (might be due to invalid IL or missing references)
			//IL_016e: Unknown result type (might be due to invalid IL or missing references)
			//IL_017a: Unknown result type (might be due to invalid IL or missing references)
			//IL_0180: Unknown result type (might be due to invalid IL or missing references)
			//IL_0185: Unknown result type (might be due to invalid IL or missing references)
			//IL_0187: Unknown result type (might be due to invalid IL or missing references)
			//IL_0191: Unknown result type (might be due to invalid IL or missing references)
			//IL_0196: Unknown result type (might be due to invalid IL or missing references)
			//IL_019b: Unknown result type (might be due to invalid IL or missing references)
			//IL_01f3: Unknown result type (might be due to invalid IL or missing references)
			//IL_0245: Unknown result type (might be due to invalid IL or missing references)
			//IL_0272: Unknown result type (might be due to invalid IL or missing references)
			//IL_0277: Unknown result type (might be due to invalid IL or missing references)
			if ((Object)(object)customMesh == (Object)null)
			{
				string directoryName = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);
				string text = Path.Combine(directoryName, assetName).Replace("\\", "/");
				BlåhajReplacerMod.mls.LogMessage((object)("Searching this filepath:" + text));
				AssetBundleCreateRequest val = AssetBundle.LoadFromFileAsync(text);
				AssetBundle assetBundle = val.assetBundle;
				customMesh = assetBundle.LoadAsset<Mesh>(meshName);
				blåhajMat = assetBundle.LoadAsset<Material>(materialName);
				pickUp = assetBundle.LoadAsset<AudioClip>(pickUpAudioName);
				drop = assetBundle.LoadAsset<AudioClip>(dropAudioName);
				ScanNodeProperties[] array = Object.FindObjectsOfType<ScanNodeProperties>();
				foreach (ScanNodeProperties val2 in array)
				{
					BlåhajReplacerMod.mls.LogMessage((object)(((Object)val2).name + " " + val2.headerText + " " + val2.subText));
				}
			}
			if (affectedObject == ((Object)___itemProperties).name.ToLower())
			{
				MeshFilter component = ((Component)___mainObjectRenderer).GetComponent<MeshFilter>();
				component.mesh = Object.Instantiate<Mesh>(customMesh);
				Mesh mesh = component.mesh;
				Vector3[] vertices = mesh.vertices;
				Bounds bounds = mesh.bounds;
				Vector3 center = ((Bounds)(ref bounds)).center;
				for (int j = 0; j < vertices.Length; j++)
				{
					vertices[j] = center + (vertices[j] - center) * blåhajSize;
				}
				mesh.vertices = vertices;
				mesh.RecalculateBounds();
				((Renderer)___mainObjectRenderer).materials = (Material[])(object)new Material[1] { blåhajMat };
				((Component)___mainObjectRenderer).transform.localScale = new Vector3(0.08f, 0.08f, 0.08f);
				___itemProperties.grabSFX = pickUp;
				___itemProperties.dropSFX = drop;
				___itemProperties.spawnPrefab.GetComponent<MeshFilter>().mesh = mesh;
				___itemProperties.spawnPrefab.transform.localScale = new Vector3(0.08f, 0.08f, 0.08f);
				___itemProperties.itemName = itemName;
				((Component)___mainObjectRenderer).GetComponentInChildren<ScanNodeProperties>().headerText = itemName;
				___floorYRot = -1;
				___itemProperties.restingRotation = rotation;
			}
		}

		[HarmonyPatch("Update")]
		[HarmonyPostfix]
		private static void Upright(ref Item ___itemProperties, ref MeshRenderer ___mainObjectRenderer)
		{
			//IL_0033: Unknown result type (might be due to invalid IL or missing references)
			try
			{
				if (affectedObject == ((Object)___itemProperties).name.ToLower())
				{
					((Component)___mainObjectRenderer).transform.localScale = new Vector3(0.08f, 0.08f, 0.08f);
				}
			}
			catch
			{
				BlåhajReplacerMod.mls.LogMessage((object)(((Object)___itemProperties).name.ToLower() + " failed to update rotation"));
			}
		}

		private static void Print(string s)
		{
			BlåhajReplacerMod.mls.LogMessage((object)s);
		}
	}
}