Please disclose if any significant portion of your mod was created using AI tools by adding the 'AI Generated' category. Failing to do so may result in the mod being removed from Thunderstore.
Decompiled source of DragonBallTV v1.1.0
DragonBallTV.dll
Decompiled 2 years agousing System.Collections.Generic; 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.Configuration; using BepInEx.Logging; using DragonBallTV.Core; using HarmonyLib; using UnityEngine; using UnityEngine.Video; [assembly: CompilationRelaxations(8)] [assembly: RuntimeCompatibility(WrapNonExceptionThrows = true)] [assembly: Debuggable(DebuggableAttribute.DebuggingModes.IgnoreSymbolStoreSequencePoints)] [assembly: AssemblyTitle("DragonBallTV")] [assembly: AssemblyDescription("")] [assembly: AssemblyConfiguration("")] [assembly: AssemblyCompany("")] [assembly: AssemblyProduct("DragonBallTV")] [assembly: AssemblyCopyright("Copyright © 2023")] [assembly: AssemblyTrademark("")] [assembly: ComVisible(false)] [assembly: Guid("84d804f7-defd-4a6c-86f9-a52e4d1b9d01")] [assembly: AssemblyFileVersion("1.0.0.0")] [assembly: TargetFramework(".NETFramework,Version=v4.8", FrameworkDisplayName = ".NET Framework 4.8")] [assembly: AssemblyVersion("1.0.0.0")] namespace DragonBallTV.Patches { [HarmonyPatch] public static class TVPatches { [HarmonyPatch(typeof(TVScript), "__initializeVariables")] [HarmonyPostfix] public static void ReplaceVideos(TVScript __instance) { List<VideoClip> list = new List<VideoClip>(); List<AudioClip> list2 = new List<AudioClip>(); list.Add(Assets.GetAsset<VideoClip>("MakafushigiAdventureVideo")); list2.Add(Assets.GetAsset<AudioClip>("MakafushigiAdventureAudio")); list.Add(Assets.GetAsset<VideoClip>("ChaLaHeadChaLaVideo")); list2.Add(Assets.GetAsset<AudioClip>("ChaLaHeadChaLaAudio")); list.Add(Assets.GetAsset<VideoClip>("SuperSaiyanVideo")); list2.Add(Assets.GetAsset<AudioClip>("SuperSaiyanAudio")); list.Add(Assets.GetAsset<VideoClip>("DragonSoulVideo")); list2.Add(Assets.GetAsset<AudioClip>("DragonSoulAudio")); list.Add(Assets.GetAsset<VideoClip>("BattleOfGodsVideo")); list2.Add(Assets.GetAsset<AudioClip>("BattleOfGodsAudio")); list.Add(Assets.GetAsset<VideoClip>("DanDanVideo")); list2.Add(Assets.GetAsset<AudioClip>("DanDanAudio")); __instance.tvClips = list.ToArray(); __instance.tvAudioClips = list2.ToArray(); __instance.tvSFX.volume = DragonBallTVBase.Instance.Volume.Value; } } } namespace DragonBallTV.Core { public static class Assets { public static AssetBundle AssetBundle { get; private set; } private static Dictionary<string, Object> AssetList { get; set; } private static string AssemblyName => Assembly.GetExecutingAssembly().FullName.Split(new char[1] { ',' })[0]; public static void PopulateAssets() { if ((Object)(object)AssetBundle != (Object)null) { Logging.LogWarning("Attempted to load the asset bundle but the bundle was not null!"); return; } string name = AssemblyName + ".dbtv"; using (Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream(name)) { AssetBundle = AssetBundle.LoadFromStream(stream); } AssetList = new Dictionary<string, Object>(); Object[] array = AssetBundle.LoadAllAssets(); foreach (Object val in array) { AssetList.Add(val.name, val); } } public static T GetAsset<T>(string name) where T : Object { if (!AssetList.TryGetValue(name, out var value)) { Logging.LogError("Attempted to load asset of name " + name + " but no asset of that name exists!"); return default(T); } T val = (T)(object)((value is T) ? value : null); if ((Object)(object)val == (Object)null) { Logging.LogError("Attempted to load an asset of type " + typeof(T).Name + " but asset of name " + name + " does not match this type!"); return default(T); } return val; } } public static class Logging { public static void LogInfo(object message) { DragonBallTVBase.Instance.PluginLogger.LogMessage(message); } public static void LogDebug(object message) { DragonBallTVBase.Instance.PluginLogger.LogDebug(message); } public static void LogWarning(object message) { DragonBallTVBase.Instance.PluginLogger.LogWarning(message); } public static void LogError(object message) { DragonBallTVBase.Instance.PluginLogger.LogError(message); } } [BepInPlugin("Vulf.DragonBallTV", "Dragon Ball TV", "1.1.0")] public class DragonBallTVBase : BaseUnityPlugin { private static DragonBallTVBase _instance; public static DragonBallTVBase Instance { get { return _instance; } private set { if ((Object)(object)Instance != (Object)null && (Object)(object)value != (Object)(object)Instance) { ((BaseUnityPlugin)Instance).Logger.LogWarning((object)"An instance of class of type DragonBallTVBase was created but one already exists! Destroying duplicate!"); Object.Destroy((Object)(object)value); } else { _instance = value; } } } private Harmony Harmony { get; set; } public ManualLogSource PluginLogger => ((BaseUnityPlugin)this).Logger; public ConfigEntry<float> Volume { get; private set; } public void Awake() { //IL_000c: Unknown result type (might be due to invalid IL or missing references) //IL_0016: Expected O, but got Unknown Instance = this; Harmony = new Harmony("Vulf.DragonBallTV"); ((BaseUnityPlugin)this).Logger.LogInfo((object)"Loading mod..."); ((BaseUnityPlugin)this).Logger.LogInfo((object)"Populating assets..."); Assets.PopulateAssets(); Volume = ((BaseUnityPlugin)this).Config.Bind<float>("Sound", "TV Volume", 0.75f, "How loud the TV is on a scale of 0 to 1 (clientside). Set this to 0 to mute the audio completely."); ((BaseUnityPlugin)this).Logger.LogInfo((object)"Patching..."); Harmony.PatchAll(); ((BaseUnityPlugin)this).Logger.LogInfo((object)"Mod loaded successfully!"); } } public class PluginInfo { public const string GUID = "Vulf.DragonBallTV"; public const string NAME = "Dragon Ball TV"; public const string VERSION = "1.1.0"; public const string ASSET_BUNDLE_NAME = "dbtv"; } }