From 460637bf079b273e50f18ecbb5dc0bd3bd1c66ab Mon Sep 17 00:00:00 2001 From: Andreas Pardeike Date: Tue, 13 Jul 2021 10:47:13 +0200 Subject: [PATCH] v1.0.3 adds settings --- About/Manifest.xml | 2 +- Current/Assemblies/VisualExceptions.dll | Bin 67584 -> 67072 bytes Source/Assets.cs | 1 - Source/Columns.cs | 3 +- Source/ExceptionInfo.cs | 3 +- Source/ExceptionInspector.cs | 16 ++----- Source/ExceptionState.cs | 2 +- Source/Main.cs | 43 +++++++++++++---- Source/Models.cs | 2 + Source/Mods.cs | 11 +++-- Source/PatchPersistence.cs | 61 ------------------------ Source/Patcher.cs | 22 ++------- Source/Tab.cs | 13 ++--- Source/Tools.cs | 37 +------------- Source/VisualExceptions.csproj | 2 +- Textures/Debug0.png | Bin 2688 -> 0 bytes Textures/Debug1.png | Bin 2614 -> 0 bytes 17 files changed, 63 insertions(+), 155 deletions(-) delete mode 100644 Source/PatchPersistence.cs delete mode 100644 Textures/Debug0.png delete mode 100644 Textures/Debug1.png diff --git a/About/Manifest.xml b/About/Manifest.xml index e5eef2d..bcf9e9d 100644 --- a/About/Manifest.xml +++ b/About/Manifest.xml @@ -1,7 +1,7 @@  net.pardeike.rimworld.mod.visualexceptions - 1.0.2.0 + 1.0.3.0
  • 1.2.0
  • 1.3.0
  • diff --git a/Current/Assemblies/VisualExceptions.dll b/Current/Assemblies/VisualExceptions.dll index b3b08b0efa6b28eae6ecebcd625f1754475adfe0..11fb213a9ea8cc143e301b8c6576bc1f94c4fd83 100644 GIT binary patch literal 67072 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 X2VZnpsf^T=?C{n1Do1ty&;R}pKrMs( literal 67584 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

    ;lx#pe^8r^oQ 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 G|NUPyzu>$8 diff --git a/Source/Assets.cs b/Source/Assets.cs index d5e54b5..d37ab7a 100644 --- a/Source/Assets.cs +++ b/Source/Assets.cs @@ -11,7 +11,6 @@ static class Assets internal static readonly Texture2D cancel = ContentFinder.Get("UI/Designators/Cancel", true); internal static readonly Texture2D harmonyTab = LoadTexture("HarmonyTab"); - internal static readonly Texture2D[] debugToggle = LoadTextures("Debug0", "Debug1"); internal static readonly Texture2D restart = LoadTexture("Restart"); internal static readonly Texture2D exception = LoadTexture("Exception"); internal static readonly Texture2D location = LoadTexture("Location"); diff --git a/Source/Columns.cs b/Source/Columns.cs index 1580afb..f1806b3 100644 --- a/Source/Columns.cs +++ b/Source/Columns.cs @@ -158,7 +158,8 @@ internal static ColumnDrawer ExceptionColumn(this ExceptionInfo info, Func { GUIUtility.systemCopyBuffer = exception().ToString(); - SoundDefOf.Tick_Low.PlayOneShotOnCamera(null); + if (ExceptionState.configuration.UseSound) + SoundDefOf.Tick_Low.PlayOneShotOnCamera(null); }); } }; diff --git a/Source/ExceptionInfo.cs b/Source/ExceptionInfo.cs index da9339f..ac70d8b 100644 --- a/Source/ExceptionInfo.cs +++ b/Source/ExceptionInfo.cs @@ -87,7 +87,8 @@ internal string GetStacktrace() internal void Remove() { ExceptionState.Remove(this); - SoundDefOf.TabOpen.PlayOneShotOnCamera(null); + if (ExceptionState.configuration.UseSound) + SoundDefOf.TabOpen.PlayOneShotOnCamera(null); } internal void Ban() diff --git a/Source/ExceptionInspector.cs b/Source/ExceptionInspector.cs index 282074b..ae4c853 100644 --- a/Source/ExceptionInspector.cs +++ b/Source/ExceptionInspector.cs @@ -8,7 +8,6 @@ namespace VisualExceptions { public class ExceptionInspector : MainTabWindow { - internal Vector2 customPosition = Vector2.zero; internal float scrollViewHeight = 0; internal Vector2 scrollPosition = Vector2.zero; @@ -114,18 +113,9 @@ public override void SetInitialSizeAndPosition() doCloseX = true; draggable = true; resizeable = true; - if (customPosition != Vector2.zero) - { - if (customPosition.x > 0) - windowRect.x = customPosition.x; - else - windowRect.x = UI.screenWidth - windowRect.width + customPosition.x; - - if (customPosition.y > 0) - windowRect.y = customPosition.y; - else - windowRect.y = UI.screenHeight - windowRect.height + customPosition.y; - } + if (ExceptionState.configuration.TabToTheRight) + windowRect.x = UI.screenWidth - windowRect.width; + Log.Warning($"{windowRect}"); } public override void Close(bool doCloseSound = true) diff --git a/Source/ExceptionState.cs b/Source/ExceptionState.cs index 7f18488..4f27998 100644 --- a/Source/ExceptionState.cs +++ b/Source/ExceptionState.cs @@ -39,7 +39,7 @@ internal static void Load() configuration = (Configuration)serializer.ReadObject(stream); } else - configuration = new Configuration { Debugging = true }; + configuration = new Configuration { Debugging = true, TabToTheRight = false, UseSound = true }; } catch { diff --git a/Source/Main.cs b/Source/Main.cs index 2370752..c999433 100644 --- a/Source/Main.cs +++ b/Source/Main.cs @@ -1,4 +1,4 @@ -using HarmonyLib; +using UnityEngine; using Verse; namespace VisualExceptions @@ -6,19 +6,44 @@ namespace VisualExceptions [StaticConstructorOnStartup] class HarmonyMain : Mod { - internal static string harmony_id = "net.pardeike.rimworld.lib.harmony"; - - static HarmonyMain() + static HarmonyMain() // loads earliest { - var harmony = new Harmony(harmony_id); - _ = new PatchClassProcessor(harmony, typeof(ShowHarmonyVersionOnMainScreen)).Patch(); - - ExceptionState.Load(); if (ExceptionState.configuration.Debugging) - Patcher.Apply(harmony); + Patcher.Apply(); } public HarmonyMain(ModContentPack content) : base(content) { } + + public override void DoSettingsWindowContents(Rect inRect) + { + var list = new Listing_Standard { ColumnWidth = inRect.width / 2f }; + list.Begin(inRect); + list.Gap(12f); + + var conf = ExceptionState.configuration; + var debugging = conf.Debugging; + var tabToTheRight = conf.TabToTheRight; + var useSound = conf.UseSound; + + list.CheckboxLabeled("Enabled", ref debugging); + list.CheckboxLabeled("Show exceptions to the right", ref tabToTheRight); + list.CheckboxLabeled("Use sound", ref useSound); + + if (debugging != conf.Debugging || tabToTheRight != conf.TabToTheRight || useSound != conf.UseSound) + { + conf.Debugging = debugging; + conf.TabToTheRight = tabToTheRight; + conf.UseSound = useSound; + ExceptionState.Save(); + } + + list.End(); + } + + public override string SettingsCategory() + { + return "Visual Exceptions"; + } } } diff --git a/Source/Models.cs b/Source/Models.cs index af2aaba..476ba59 100644 --- a/Source/Models.cs +++ b/Source/Models.cs @@ -12,6 +12,8 @@ namespace VisualExceptions internal class Configuration { [DataMember] internal bool Debugging { get; set; } + [DataMember] internal bool TabToTheRight { get; set; } + [DataMember] internal bool UseSound { get; set; } } [DataContract] diff --git a/Source/Mods.cs b/Source/Mods.cs index a3e393d..79a063b 100644 --- a/Source/Mods.cs +++ b/Source/Mods.cs @@ -72,7 +72,8 @@ internal static void Unpatch(this ExceptionDetails.Mod mod) .Do(id => { new Harmony(id).UnpatchAll(id); - SoundDefOf.TabOpen.PlayOneShotOnCamera(null); + if (ExceptionState.configuration.UseSound) + SoundDefOf.TabOpen.PlayOneShotOnCamera(null); }); _ = UnpatchedMods.Add(mod.meta.PackageId); } @@ -80,25 +81,25 @@ internal static void Unpatch(this ExceptionDetails.Mod mod) internal static IEnumerable GetPrefixes(Patches info) { if (info == null) return new List().AsEnumerable(); - return AddMetadata(info.Prefixes.Where(t => t.owner != HarmonyMain.harmony_id).OrderBy(t => t.priority).Select(t => t.PatchMethod)); + return AddMetadata(info.Prefixes.Where(t => t.owner != Patcher.harmony_id).OrderBy(t => t.priority).Select(t => t.PatchMethod)); } internal static IEnumerable GetPostfixes(Patches info) { if (info == null) return new List().AsEnumerable(); - return AddMetadata(info.Postfixes.Where(t => t.owner != HarmonyMain.harmony_id).OrderBy(t => t.priority).Select(t => t.PatchMethod)); + return AddMetadata(info.Postfixes.Where(t => t.owner != Patcher.harmony_id).OrderBy(t => t.priority).Select(t => t.PatchMethod)); } internal static IEnumerable GetTranspilers(Patches info) { if (info == null) return new List().AsEnumerable(); - return AddMetadata(info.Transpilers.Where(t => t.owner != HarmonyMain.harmony_id).OrderBy(t => t.priority).Select(t => t.PatchMethod)); + return AddMetadata(info.Transpilers.Where(t => t.owner != Patcher.harmony_id).OrderBy(t => t.priority).Select(t => t.PatchMethod)); } internal static IEnumerable GetFinalizers(Patches info) { if (info == null) return new List().AsEnumerable(); - return AddMetadata(info.Finalizers.Where(t => t.owner != HarmonyMain.harmony_id).OrderBy(t => t.priority).Select(t => t.PatchMethod)); + return AddMetadata(info.Finalizers.Where(t => t.owner != Patcher.harmony_id).OrderBy(t => t.priority).Select(t => t.PatchMethod)); } static IEnumerable AddMetadata(IEnumerable methods) diff --git a/Source/PatchPersistence.cs b/Source/PatchPersistence.cs deleted file mode 100644 index 15d2c43..0000000 --- a/Source/PatchPersistence.cs +++ /dev/null @@ -1,61 +0,0 @@ -using System.Collections.Generic; -using System.IO; -using System.Reflection; -using Verse; - -namespace VisualExceptions -{ - static class PatchPersistence - { - static readonly string configurationPath = Path.Combine(GenFilePaths.ConfigFolderPath, "HarmonyModPatches.json"); - - internal static IEnumerable Methods - { - // caching is disabled for now - // - get - { - return new List(); - /* - if (File.Exists(configurationPath) == false) - return new List(); - try - { - var serializer = new DataContractJsonSerializer(typeof(JSONMethods)); - using (var stream = new FileStream(configurationPath, FileMode.Open)) - { - var container = (JSONMethods)serializer.ReadObject(stream); - var methods = container.ToMethods(); - _ = methods.ToList(); - return methods; - } - } - catch - { - return new List(); - } - */ - } - set - { - /* - try - { - var serializer = new DataContractJsonSerializer(typeof(JSONMethods)); - using (var stream = new FileStream(configurationPath, FileMode.OpenOrCreate)) - serializer.WriteObject(stream, JSONMethods.Serialize(value)); - } - finally - { - } - */ - } - } - - internal static void ClearMethods() - { - if (File.Exists(configurationPath)) - File.Delete(configurationPath); - } - } -} diff --git a/Source/Patcher.cs b/Source/Patcher.cs index 45dea0b..fdc7700 100644 --- a/Source/Patcher.cs +++ b/Source/Patcher.cs @@ -13,9 +13,11 @@ namespace VisualExceptions static class Patcher { internal static bool patchesApplied = false; + internal static string harmony_id = "net.pardeike.rimworld.lib.harmony"; - internal static void Apply(Harmony harmony) + internal static void Apply() { + var harmony = new Harmony(harmony_id); _ = new PatchClassProcessor(harmony, typeof(RunloopExceptionHandler)).Patch(); _ = new PatchClassProcessor(harmony, typeof(ShowLoadingExceptions)).Patch(); _ = new PatchClassProcessor(harmony, typeof(AddHarmonyTabWhenNecessary)).Patch(); @@ -24,19 +26,6 @@ internal static void Apply(Harmony harmony) } } - // draw the harmony lib version at the start screen - // Note: always patched from HarmonyMain() - // - [HarmonyPatch(typeof(VersionControl))] - [HarmonyPatch(nameof(VersionControl.DrawInfoInCorner))] - static class ShowHarmonyVersionOnMainScreen - { - internal static void Postfix() - { - Tools.DrawInfoSection(); - } - } - // adds exception handlers // [HarmonyPatch] @@ -79,13 +68,10 @@ internal static IEnumerable Transpiler(IEnumerable TargetMethods() { - var methods = PatchPersistence.Methods; - if (methods.Any()) return methods; - methods = typeof(Pawn).Assembly.GetTypes() + var methods = typeof(Pawn).Assembly.GetTypes() .Where(t => t.IsGenericType == false && (t.FullName.StartsWith("Verse.") || t.FullName.StartsWith("RimWorld.") || t.FullName.StartsWith("RuntimeAudioClipLoader."))) .SelectMany(t => AccessTools.GetDeclaredMethods(t)) .Where(m => m.IsGenericMethod == false && HasCatch(m)); - PatchPersistence.Methods = methods; return methods; } diff --git a/Source/Tab.cs b/Source/Tab.cs index a51b288..0bc93ff 100644 --- a/Source/Tab.cs +++ b/Source/Tab.cs @@ -1,5 +1,4 @@ using RimWorld; -using UnityEngine; using Verse; namespace VisualExceptions @@ -13,7 +12,6 @@ public Tab() : base() tabWindowClass = typeof(ExceptionInspector); defName = "harmony"; description = "Harmony"; - order = -99999; validWithoutMap = true; minimized = true; } @@ -42,7 +40,10 @@ internal static void AddExceptions_Play(UIRoot_Play rootPlay) if (allTabs.Contains(instance) == false) { instance.icon = Assets.harmonyTab; - allTabs.Insert(0, instance); + if (ExceptionState.configuration.TabToTheRight) + allTabs.Add(instance); + else + allTabs.Insert(0, instance); Tools.PlayErrorSound(); } } @@ -52,11 +53,7 @@ internal static void AddExceptions_Entry() if (Find.WindowStack.IsOpen() == false) { instance.icon = Assets.harmonyTab; - Find.WindowStack.Add(new ExceptionInspector - { - def = instance, - customPosition = new Vector2(10, 10) - }); + Find.WindowStack.Add(new ExceptionInspector { def = instance }); Tools.PlayErrorSound(); } } diff --git a/Source/Tools.cs b/Source/Tools.cs index 4c0b95e..7f18175 100644 --- a/Source/Tools.cs +++ b/Source/Tools.cs @@ -17,9 +17,6 @@ struct ColumnInfo { internal Action draw; internal float dim; } static class Tools { - static readonly Rect debugLabelRect = new Rect(28f, 16f, 212f, 20f); - static readonly Rect debugImageRect = new Rect(0f, 20f, 23f, 12f); - static readonly Rect debugButtonRect = new Rect(0f, 16f, 240f, 36f); internal static readonly Assembly HarmonyModAssembly = typeof(Tools).Assembly; internal static readonly string RimworldAssemblyName = typeof(Pawn).Assembly.GetName().Name; internal static AudioSource audioSource = null; @@ -46,7 +43,8 @@ internal static AudioSource GetAudioSource() internal static void PlayErrorSound() { - GetAudioSource().PlayOneShot(Assets.error); + if (ExceptionState.configuration.UseSound) + GetAudioSource().PlayOneShot(Assets.error); } internal static void Iterate(this IEnumerable collection, Action action) @@ -168,36 +166,5 @@ internal static void Button(Texture2D texture, Rect rect, string tipKey, bool hi TooltipHandler.TipRegionByKey(rect, tipKey); if (Widgets.ButtonInvisible(rect)) action(); } - - internal static void DrawInfoSection() - { - var oldFont = Text.Font; - var oldColor = GUI.color; - Text.Font = GameFont.Small; - - GUI.BeginGroup(new Rect(10f, 74f, 240f, 40f)); - GUI.color = new Color(1f, 1f, 1f, 0.5f); - var devText = "Visual Exceptions Enabled"; - var devTextLen = devText.Size().x; - Widgets.Label(debugLabelRect, devText); - GUI.color = Color.white; - GUI.DrawTexture(debugImageRect, Assets.debugToggle[ExceptionState.configuration.Debugging ? 1 : 0]); - if (Patcher.patchesApplied != ExceptionState.configuration.Debugging && DateTime.Now.Second % 2 == 0) - { - var rect = new Rect(debugImageRect.xMax + devTextLen + 10, debugImageRect.y - 2, debugImageRect.height + 4, debugImageRect.height + 4); - GUI.DrawTexture(rect, Assets.restart); - } - if (Widgets.ButtonInvisible(debugButtonRect, false)) - { - ExceptionState.configuration.Debugging = !ExceptionState.configuration.Debugging; - if (ExceptionState.configuration.Debugging) - PatchPersistence.ClearMethods(); - ExceptionState.Save(); - } - GUI.EndGroup(); - - GUI.color = oldColor; - Text.Font = oldFont; - } } } diff --git a/Source/VisualExceptions.csproj b/Source/VisualExceptions.csproj index 0fe52df..f15ab4f 100644 --- a/Source/VisualExceptions.csproj +++ b/Source/VisualExceptions.csproj @@ -10,7 +10,7 @@ ..\Current\Assemblies\ true false - 1.0.2.0 + 1.0.3.0 Copyright Andreas Pardeike diff --git a/Textures/Debug0.png b/Textures/Debug0.png deleted file mode 100644 index abcad82c5cb4623bcc7cbb488d7a43690fd964be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2688 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