From 53240d35690ec1330fe71c42d507f479c0473290 Mon Sep 17 00:00:00 2001 From: LadyAliceMargatroid Date: Fri, 17 Jan 2025 22:59:25 -0800 Subject: [PATCH] Forgot to separate lethal config from dungeon .dll --- .../DungeonBasement/DungeonBasement.csproj | 1 + DungeonBasement/DungeonBasement/Patch.cs | 37 ++++++++++++++++ DungeonBasement/DungeonBasement/Plugin.cs | 43 +++++++++--------- DungeonFoyer/DungeonFoyer/DungeonFoyer.csproj | 1 + DungeonFoyer/DungeonFoyer/Patch.cs | 37 ++++++++++++++++ DungeonFoyer/DungeonFoyer/Plugin.cs | 44 ++++++++++--------- .../ScarletMansionMimicsPatch/Plugin.cs | 2 +- 7 files changed, 124 insertions(+), 41 deletions(-) create mode 100644 DungeonBasement/DungeonBasement/Patch.cs create mode 100644 DungeonFoyer/DungeonFoyer/Patch.cs diff --git a/DungeonBasement/DungeonBasement/DungeonBasement.csproj b/DungeonBasement/DungeonBasement/DungeonBasement.csproj index cb23502..f733e5b 100644 --- a/DungeonBasement/DungeonBasement/DungeonBasement.csproj +++ b/DungeonBasement/DungeonBasement/DungeonBasement.csproj @@ -62,6 +62,7 @@ + diff --git a/DungeonBasement/DungeonBasement/Patch.cs b/DungeonBasement/DungeonBasement/Patch.cs new file mode 100644 index 0000000..f73442a --- /dev/null +++ b/DungeonBasement/DungeonBasement/Patch.cs @@ -0,0 +1,37 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; +using UnityEngine; + +namespace DungeonBasement +{ + public class Patch { + public static void Activate(){ + // the entire purpose this plugin is so I have a unique assembly for Lethal Config + var assemblyPath = Assembly.GetExecutingAssembly().Location; + var path = Path.Combine(Path.GetDirectoryName(assemblyPath), "basement.png"); + var texture2D = LoadTexture(path); + var icon = Sprite.Create(texture2D, new Rect(0, 0, texture2D.width, texture2D.height), Vector2.zero); + + LethalConfig.LethalConfigManager.SetModIcon(icon); + LethalConfig.LethalConfigManager.SetModDescription("This is the config for the Scarlet Devil Mansion's Basement dungeon variant."); + } + + static Texture2D LoadTexture(string FilePath) { + Texture2D Tex2D; + byte[] FileData; + + if (File.Exists(FilePath)){ + FileData = File.ReadAllBytes(FilePath); + Tex2D = new Texture2D(2, 2); + Tex2D.LoadImage(FileData); + return Tex2D; + } + return null; + } + } +} diff --git a/DungeonBasement/DungeonBasement/Plugin.cs b/DungeonBasement/DungeonBasement/Plugin.cs index 6f2c4bc..ab56ca5 100644 --- a/DungeonBasement/DungeonBasement/Plugin.cs +++ b/DungeonBasement/DungeonBasement/Plugin.cs @@ -10,16 +10,23 @@ using UnityEngine; using System.Reflection; using BepInEx.Logging; using HarmonyLib.Tools; +using BepInEx.Bootstrap; +using HarmonyLib; namespace DungeonBasement { - [BepInDependency("ainavt.lc.lethalconfig", "1.4.2")] + [BepInPlugin(modGUID, modName, modVersion)] + [BepInDependency(targetModGUID, BepInDependency.DependencyFlags.SoftDependency)] public class Plugin : BaseUnityPlugin { public const string modGUID = "dev.ladyalice.scarletmansion.basement"; private const string modName = "Scarlet Basement"; private const string modVersion = "1.0.0"; + public const string targetModGUID = "ainavt.lc.lethalconfig"; + public const string targetModVersion = "1.4.2"; + + public readonly Harmony harmony = new Harmony(modGUID); public static ManualLogSource logger { get; internal set; } void Awake(){ @@ -27,27 +34,23 @@ namespace DungeonBasement { logger = BepInEx.Logging.Logger.CreateLogSource(modGUID); logger.LogInfo($"Plugin {modName} has been added!"); - // the entire purpose this plugin is so I have a unique assembly for Lethal Config - var assemblyPath = Assembly.GetExecutingAssembly().Location; - var path = Path.Combine(Path.GetDirectoryName(assemblyPath), "basement.png"); - var texture2D = LoadTexture(path); - var icon = Sprite.Create(texture2D, new Rect(0, 0, texture2D.width, texture2D.height), Vector2.zero); - - LethalConfig.LethalConfigManager.SetModIcon(icon); - LethalConfig.LethalConfigManager.SetModDescription("This is the config for the Scarlet Devil Mansion's Basement dungeon variant."); - } + var modLoaded = Chainloader.PluginInfos.ContainsKey(targetModGUID); + if (!modLoaded) return; - Texture2D LoadTexture(string FilePath) { - Texture2D Tex2D; - byte[] FileData; + bool validVersion; + var pluginInfo = Chainloader.PluginInfos[targetModGUID]; + var loadedVersion = pluginInfo.Metadata.Version; + if (string.IsNullOrWhiteSpace(targetModVersion)){ + validVersion = true; + } else { + var requiredVersion = new Version(targetModVersion); + validVersion = loadedVersion >= requiredVersion; + } - if (File.Exists(FilePath)){ - FileData = File.ReadAllBytes(FilePath); - Tex2D = new Texture2D(2, 2); - Tex2D.LoadImage(FileData); - return Tex2D; - } - return null; + if (validVersion){ + logger.LogInfo($"Lethal config compability patch added!"); + Patch.Activate(); + } } } diff --git a/DungeonFoyer/DungeonFoyer/DungeonFoyer.csproj b/DungeonFoyer/DungeonFoyer/DungeonFoyer.csproj index 90a92b7..d743e8c 100644 --- a/DungeonFoyer/DungeonFoyer/DungeonFoyer.csproj +++ b/DungeonFoyer/DungeonFoyer/DungeonFoyer.csproj @@ -63,6 +63,7 @@ + diff --git a/DungeonFoyer/DungeonFoyer/Patch.cs b/DungeonFoyer/DungeonFoyer/Patch.cs new file mode 100644 index 0000000..14c4e4c --- /dev/null +++ b/DungeonFoyer/DungeonFoyer/Patch.cs @@ -0,0 +1,37 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Reflection; +using System.Text; +using System.Threading.Tasks; +using UnityEngine; + +namespace DungeonFoyer +{ + public class Patch { + public static void Activate(){ + // the entire purpose this plugin is so I have a unique assembly for Lethal Config + var assemblyPath = Assembly.GetExecutingAssembly().Location; + var path = Path.Combine(Path.GetDirectoryName(assemblyPath), "foyer.png"); + var texture2D = LoadTexture(path); + var icon = Sprite.Create(texture2D, new Rect(0, 0, texture2D.width, texture2D.height), Vector2.zero); + + LethalConfig.LethalConfigManager.SetModIcon(icon); + LethalConfig.LethalConfigManager.SetModDescription("This is the config for the Scarlet Devil Mansion's Foyer dungeon variant."); + } + + static Texture2D LoadTexture(string FilePath) { + Texture2D Tex2D; + byte[] FileData; + + if (File.Exists(FilePath)){ + FileData = File.ReadAllBytes(FilePath); + Tex2D = new Texture2D(2, 2); + Tex2D.LoadImage(FileData); + return Tex2D; + } + return null; + } + } +} diff --git a/DungeonFoyer/DungeonFoyer/Plugin.cs b/DungeonFoyer/DungeonFoyer/Plugin.cs index 654dcd8..fbff9bd 100644 --- a/DungeonFoyer/DungeonFoyer/Plugin.cs +++ b/DungeonFoyer/DungeonFoyer/Plugin.cs @@ -10,17 +10,23 @@ using UnityEngine; using System.Reflection; using BepInEx.Logging; using HarmonyLib.Tools; +using HarmonyLib; +using BepInEx.Bootstrap; namespace DungeonFoyer { - [BepInDependency("ainavt.lc.lethalconfig", "1.4.2")] [BepInPlugin(modGUID, modName, modVersion)] + [BepInDependency(targetModGUID, BepInDependency.DependencyFlags.SoftDependency)] public class Plugin : BaseUnityPlugin { public const string modGUID = "dev.ladyalice.scarletmansion.foyer"; private const string modName = "Scarlet Foyer"; private const string modVersion = "1.0.0"; + public const string targetModGUID = "ainavt.lc.lethalconfig"; + public const string targetModVersion = "1.4.2"; + + public readonly Harmony harmony = new Harmony(modGUID); public static ManualLogSource logger { get; internal set; } void Awake(){ @@ -28,28 +34,26 @@ namespace DungeonFoyer { logger = BepInEx.Logging.Logger.CreateLogSource(modGUID); logger.LogInfo($"Plugin {modName} has been added!"); - // the entire purpose this plugin is so I have a unique assembly for Lethal Config - var assemblyPath = Assembly.GetExecutingAssembly().Location; - var path = Path.Combine(Path.GetDirectoryName(assemblyPath), "foyer.png"); - var texture2D = LoadTexture(path); - var icon = Sprite.Create(texture2D, new Rect(0, 0, texture2D.width, texture2D.height), Vector2.zero); - - LethalConfig.LethalConfigManager.SetModIcon(icon); - LethalConfig.LethalConfigManager.SetModDescription("This is the config for the Scarlet Devil Mansion's Foyer dungeon variant."); + var modLoaded = Chainloader.PluginInfos.ContainsKey(targetModGUID); + if (!modLoaded) return; + + bool validVersion; + var pluginInfo = Chainloader.PluginInfos[targetModGUID]; + var loadedVersion = pluginInfo.Metadata.Version; + if (string.IsNullOrWhiteSpace(targetModVersion)){ + validVersion = true; + } else { + var requiredVersion = new Version(targetModVersion); + validVersion = loadedVersion >= requiredVersion; + } + + if (validVersion){ + logger.LogInfo($"Lethal config compability patch added!"); + Patch.Activate(); + } } - Texture2D LoadTexture(string FilePath) { - Texture2D Tex2D; - byte[] FileData; - if (File.Exists(FilePath)){ - FileData = File.ReadAllBytes(FilePath); - Tex2D = new Texture2D(2, 2); - Tex2D.LoadImage(FileData); - return Tex2D; - } - return null; - } } } diff --git a/MimicsPatch/ScarletMansionMimicsPatch/Plugin.cs b/MimicsPatch/ScarletMansionMimicsPatch/Plugin.cs index 5478907..85e5ea5 100644 --- a/MimicsPatch/ScarletMansionMimicsPatch/Plugin.cs +++ b/MimicsPatch/ScarletMansionMimicsPatch/Plugin.cs @@ -40,7 +40,7 @@ namespace ScarletMansionMimicsPatch { logger = BepInEx.Logging.Logger.CreateLogSource(modGUID); - var modLoaded = Chainloader.PluginInfos.ContainsKey(targetModGUID); + var modLoaded = Chainloader.PluginInfos.ContainsKey(targetModGUID); if (!modLoaded) return; bool validVersion;