Decompiled source of VineBoomTitleDrop v0.1.0

VineBoomTitleDrop.dll

Decompiled 2 days 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 BepInEx.Configuration;
using HarmonyLib;
using Microsoft.CodeAnalysis;
using UnityEngine;
using VineBoomTitleDrop.Helpers;

[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: SecurityPermission(SecurityAction.RequestMinimum, SkipVerification = true)]
[assembly: AssemblyVersion("0.0.0.0")]
[module: UnverifiableCode]
[module: RefSafetyRules(11)]
namespace Microsoft.CodeAnalysis
{
	[CompilerGenerated]
	[Embedded]
	internal sealed class EmbeddedAttribute : Attribute
	{
	}
}
namespace System.Runtime.CompilerServices
{
	[CompilerGenerated]
	[Embedded]
	[AttributeUsage(AttributeTargets.Module, AllowMultiple = false, Inherited = false)]
	internal sealed class RefSafetyRulesAttribute : Attribute
	{
		public readonly int Version;

		public RefSafetyRulesAttribute(int P_0)
		{
			Version = P_0;
		}
	}
}
namespace VineBoomTitleDrop
{
	[BepInPlugin("duviz.VineBoomTitleDrop", "VineBoomTitleDrop", "0.1.0")]
	public class Plugin : BaseUnityPlugin
	{
		public static Plugin instance;

		public static ConfigFile config;

		public void Awake()
		{
			//IL_0025: Unknown result type (might be due to invalid IL or missing references)
			instance = this;
			((Object)((Component)this).gameObject).hideFlags = (HideFlags)61;
			config = ((BaseUnityPlugin)this).Config;
			new Harmony("duviz.VineBoomTitleDrop").PatchAll();
		}

		public void Start()
		{
			BundleLoader.LoadBundle("Assets.vineboomtitledrop.bundle");
		}

		public static void LogInfo(object msg)
		{
			((BaseUnityPlugin)instance).Logger.LogInfo(msg);
		}

		public static void LogWarning(object msg)
		{
			((BaseUnityPlugin)instance).Logger.LogWarning(msg);
		}

		public static void LogError(object msg)
		{
			((BaseUnityPlugin)instance).Logger.LogError(msg);
		}
	}
	[HarmonyPatch]
	public static class LevelNamePatch
	{
		[HarmonyPrefix]
		[HarmonyPatch(typeof(LevelNamePopup), "NameAppear")]
		public static void Play(LevelNamePopup __instance)
		{
			//IL_0014: Unknown result type (might be due to invalid IL or missing references)
			if (!__instance.activated)
			{
				AudioSource val = new GameObject("Vine boom").AddComponent<AudioSource>();
				val.volume = 1f;
				val.outputAudioMixerGroup = MonoSingleton<AudioMixerController>.Instance.allGroup;
				val.clip = BundleLoader.bundle.LoadAsset<AudioClip>("vineboom");
				val.Play();
			}
		}
	}
	public class PluginInfo
	{
		public const string GUID = "duviz.VineBoomTitleDrop";

		public const string Name = "VineBoomTitleDrop";

		public const string Version = "0.1.0";
	}
}
namespace VineBoomTitleDrop.Helpers
{
	public static class BundleLoader
	{
		public static AssetBundle bundle { get; private set; }

		public static void LoadBundle(string path)
		{
			Assembly executingAssembly = Assembly.GetExecutingAssembly();
			string text = "VineBoomTitleDrop." + path;
			using Stream stream = executingAssembly.GetManifestResourceStream(text);
			if (stream == null)
			{
				Plugin.LogError("Bundle not found: " + text);
				return;
			}
			using MemoryStream memoryStream = new MemoryStream();
			stream.CopyTo(memoryStream);
			UnloadBundle();
			bundle = AssetBundle.LoadFromMemory(memoryStream.ToArray());
		}

		public static void UnloadBundle()
		{
			AssetBundle obj = bundle;
			if (obj != null)
			{
				obj.Unload(false);
			}
		}
	}
}
namespace System.Runtime.CompilerServices
{
	[AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)]
	internal sealed class IgnoresAccessChecksToAttribute : Attribute
	{
		internal IgnoresAccessChecksToAttribute(string assemblyName)
		{
		}
	}
}