using System;
using System.Collections;
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 UnityEngine;
[assembly: CompilationRelaxations(8)]
[assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)]
[assembly: Debuggable(DebuggableAttribute.DebuggingModes.Default | DebuggableAttribute.DebuggingModes.DisableOptimizations | DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints | DebuggableAttribute.DebuggingModes.EnableEditAndContinue)]
[assembly: AssemblyTitle("Poshanka")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("Poshanka")]
[assembly: AssemblyCopyright("Copyright © 2025")]
[assembly: AssemblyTrademark("")]
[assembly: ComVisible(false)]
[assembly: Guid("4075ce25-ebdc-4b55-b192-5b3311c6018f")]
[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")]
[BepInPlugin("com.burningphoenix.poshanka", "Poshanka", "1.2.0")]
public class Poshanka : BaseUnityPlugin
{
private static ManualLogSource Log;
private static AudioClip OverrideClip;
private void Awake()
{
Log = ((BaseUnityPlugin)this).Logger;
Log.LogInfo((object)"Poshanka initialized. Loading override sound...");
Harmony.CreateAndPatchAll(typeof(Poshanka), (string)null);
string path = Path.Combine(Paths.PluginPath, "Poshanka", "Poshanka.ogg");
((MonoBehaviour)this).StartCoroutine(LoadClip(path));
}
private IEnumerator LoadClip(string path)
{
string uri = "file://" + path.Replace("\\", "/");
WWW www = new WWW(uri);
yield return www;
OverrideClip = www.GetAudioClip(false, false);
if ((Object)(object)OverrideClip != (Object)null)
{
Log.LogInfo((object)("Override clip loaded successfully: " + ((Object)OverrideClip).name));
}
else
{
Log.LogWarning((object)"Failed to load override clip.");
}
}
[HarmonyPatch(typeof(AudioSource), "PlayOneShot", new Type[] { typeof(AudioClip) })]
[HarmonyPrefix]
private static void Patch_PlayOneShot1(ref AudioClip clip)
{
if ((Object)(object)OverrideClip != (Object)null)
{
clip = OverrideClip;
}
}
[HarmonyPatch(typeof(AudioSource), "PlayOneShot", new Type[]
{
typeof(AudioClip),
typeof(float)
})]
[HarmonyPrefix]
private static void Patch_PlayOneShot2(ref AudioClip clip)
{
if ((Object)(object)OverrideClip != (Object)null)
{
clip = OverrideClip;
}
}
[HarmonyPatch(typeof(AudioSource))]
[HarmonyPatch("Play", new Type[] { })]
[HarmonyPrefix]
private static void Patch_Play(AudioSource __instance)
{
if ((Object)(object)OverrideClip != (Object)null)
{
__instance.clip = OverrideClip;
}
}
}