mirror of
https://github.com/originalnicodr/CinematicUnityExplorer.git
synced 2026-10-10 21:13:15 +08:00
cleanups
This commit is contained in:
@@ -44,7 +44,7 @@
|
||||
* <b>Reflection Inspector</b>: Inspect Properties and Fields. Can also set primitive values and evaluate primitive methods.
|
||||
* <b>Search</b>: Search for UnityEngine.Objects with various filters, or use the helpers for static Instances and Classes.
|
||||
* <b>C# Console</b>: Interactive console for evaluating C# methods on the fly, with some basic helpers.
|
||||
* <b>Inspect-under-mouse</b>: Hover over an object with a collider and inspect it by clicking on it.
|
||||
* <b>Inspect-under-mouse</b>: Hover over an object with a collider and inspect it by clicking on it. There's also a UI mode to inspect UI objects.
|
||||
|
||||
## How to install
|
||||
|
||||
@@ -68,9 +68,15 @@ Note: You must use version 0.3 of MelonLoader or greater. Version 0.3 is current
|
||||
### Standalone
|
||||
|
||||
0. Load the DLL from your mod or inject it. You must also make sure that the required libraries (Harmony, Unhollower for Il2Cpp, etc) are loaded.
|
||||
1. Create an instance of Unity Explorer with `new ExplorerCore();`
|
||||
2. You will need to call `ExplorerCore.Update()` (static method) from your Update method.
|
||||
3. Subscribe to the `ExplorerCore.OnLog__` methods for logging.
|
||||
1. Create an instance of Unity Explorer with `ExplorerStandalone.CreateInstance();`
|
||||
2. You will need to call `ExplorerStandalone.Update()` from your Update method.
|
||||
3. Subscribe to the `ExplorerStandalone.OnLog` event to handle logging if you wish.
|
||||
|
||||
## Logging
|
||||
|
||||
Explorer saves all logs to disk (only keeps the most recent 10 logs). They can be found in a "UnityExplorer" folder in the same place as where you put the DLL file.
|
||||
|
||||
These logs are also visible in the Debug Console part of the UI.
|
||||
|
||||
## Settings
|
||||
|
||||
|
||||
@@ -6,14 +6,14 @@ using IniParser.Parser;
|
||||
|
||||
namespace UnityExplorer.Config
|
||||
{
|
||||
public class ModConfig
|
||||
public class ExplorerConfig
|
||||
{
|
||||
public static ModConfig Instance;
|
||||
public static ExplorerConfig Instance;
|
||||
|
||||
internal static readonly IniDataParser _parser = new IniDataParser();
|
||||
internal static readonly string INI_PATH = Path.Combine(ExplorerCore.EXPLORER_FOLDER, "config.ini");
|
||||
internal static readonly string INI_PATH = Path.Combine(ExplorerCore.Loader.ConfigFolder, "config.ini");
|
||||
|
||||
static ModConfig()
|
||||
static ExplorerConfig()
|
||||
{
|
||||
_parser.Configuration.CommentString = "#";
|
||||
}
|
||||
@@ -22,7 +22,7 @@ namespace UnityExplorer.Config
|
||||
public KeyCode Main_Menu_Toggle = KeyCode.F7;
|
||||
public bool Force_Unlock_Mouse = true;
|
||||
public int Default_Page_Limit = 25;
|
||||
public string Default_Output_Path = ExplorerCore.EXPLORER_FOLDER + @"\Output";
|
||||
public string Default_Output_Path = ExplorerCore.ExplorerFolder + @"\Output";
|
||||
public bool Log_Unity_Debug = false;
|
||||
public bool Hide_On_Startup = false;
|
||||
//public bool Save_Logs_To_Disk = true;
|
||||
@@ -36,7 +36,7 @@ namespace UnityExplorer.Config
|
||||
|
||||
public static void OnLoad()
|
||||
{
|
||||
Instance = new ModConfig();
|
||||
Instance = new ExplorerConfig();
|
||||
|
||||
if (LoadSettings())
|
||||
return;
|
||||
@@ -99,6 +99,9 @@ namespace UnityExplorer.Config
|
||||
sec.AddKey(nameof(Hide_On_Startup), Instance.Hide_On_Startup.ToString());
|
||||
//sec.AddKey("Save_Logs_To_Disk", Instance.Save_Logs_To_Disk.ToString());
|
||||
|
||||
if (!Directory.Exists(ExplorerCore.Loader.ConfigFolder))
|
||||
Directory.CreateDirectory(ExplorerCore.Loader.ConfigFolder);
|
||||
|
||||
File.WriteAllText(INI_PATH, data.ToString());
|
||||
}
|
||||
}
|
||||
@@ -1,35 +0,0 @@
|
||||
#if BIE5
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Reflection;
|
||||
using BepInEx;
|
||||
using BepInEx.Logging;
|
||||
using HarmonyLib;
|
||||
|
||||
namespace UnityExplorer
|
||||
{
|
||||
[BepInPlugin(ExplorerCore.GUID, "UnityExplorer", ExplorerCore.VERSION)]
|
||||
public class ExplorerBepInPlugin : BaseUnityPlugin
|
||||
{
|
||||
public static ExplorerBepInPlugin Instance;
|
||||
|
||||
public static ManualLogSource Logging => Instance?.Logger;
|
||||
|
||||
public static readonly Harmony HarmonyInstance = new Harmony(ExplorerCore.GUID);
|
||||
|
||||
internal void Awake()
|
||||
{
|
||||
Instance = this;
|
||||
|
||||
new ExplorerCore();
|
||||
|
||||
// HarmonyInstance.PatchAll();
|
||||
}
|
||||
|
||||
internal void Update()
|
||||
{
|
||||
ExplorerCore.Update();
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
+24
-123
File diff suppressed because it is too large
Load Diff
@@ -1,29 +0,0 @@
|
||||
#if ML
|
||||
using System;
|
||||
using MelonLoader;
|
||||
|
||||
namespace UnityExplorer
|
||||
{
|
||||
public class ExplorerMelonMod : MelonMod
|
||||
{
|
||||
public static ExplorerMelonMod Instance;
|
||||
|
||||
public override void OnApplicationStart()
|
||||
{
|
||||
Instance = this;
|
||||
|
||||
new ExplorerCore();
|
||||
}
|
||||
|
||||
public override void OnUpdate()
|
||||
{
|
||||
ExplorerCore.Update();
|
||||
}
|
||||
|
||||
public override void OnSceneWasLoaded(int buildIndex, string sceneName)
|
||||
{
|
||||
ExplorerCore.Instance.OnSceneLoaded();
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
@@ -1,11 +0,0 @@
|
||||
#if STANDALONE
|
||||
using HarmonyLib;
|
||||
|
||||
namespace UnityExplorer
|
||||
{
|
||||
public class ExplorerStandalone
|
||||
{
|
||||
public static readonly Harmony HarmonyInstance = new Harmony(ExplorerCore.GUID);
|
||||
}
|
||||
}
|
||||
#endif
|
||||
@@ -251,7 +251,7 @@ namespace UnityExplorer.Inspectors.Reflection
|
||||
if (string.IsNullOrEmpty(name))
|
||||
name = "untitled";
|
||||
|
||||
var savePath = $@"{Config.ModConfig.Instance.Default_Output_Path}\{name}.png";
|
||||
var savePath = $@"{Config.ExplorerConfig.Instance.Default_Output_Path}\{name}.png";
|
||||
inputField.text = savePath;
|
||||
|
||||
saveBtn.onClick.AddListener(() =>
|
||||
|
||||
@@ -59,7 +59,7 @@ namespace UnityExplorer.Inspectors.Reflection
|
||||
= new List<KeyValuePair<CachePaired, CachePaired>>();
|
||||
|
||||
internal readonly KeyValuePair<CachePaired, CachePaired>[] m_displayedEntries
|
||||
= new KeyValuePair<CachePaired, CachePaired>[ModConfig.Instance.Default_Page_Limit];
|
||||
= new KeyValuePair<CachePaired, CachePaired>[ExplorerConfig.Instance.Default_Page_Limit];
|
||||
|
||||
internal bool m_recacheWanted = true;
|
||||
|
||||
|
||||
@@ -46,7 +46,7 @@ namespace UnityExplorer.Inspectors.Reflection
|
||||
internal readonly Type m_baseEntryType;
|
||||
|
||||
internal readonly List<CacheEnumerated> m_entries = new List<CacheEnumerated>();
|
||||
internal readonly CacheEnumerated[] m_displayedEntries = new CacheEnumerated[ModConfig.Instance.Default_Page_Limit];
|
||||
internal readonly CacheEnumerated[] m_displayedEntries = new CacheEnumerated[ExplorerConfig.Instance.Default_Page_Limit];
|
||||
internal bool m_recacheWanted = true;
|
||||
|
||||
public override void OnValueUpdated()
|
||||
|
||||
@@ -69,7 +69,7 @@ namespace UnityExplorer.Inspectors
|
||||
// filtered members based on current filters
|
||||
internal readonly List<CacheMember> m_membersFiltered = new List<CacheMember>();
|
||||
// actual shortlist of displayed members
|
||||
internal readonly CacheMember[] m_displayedMembers = new CacheMember[ModConfig.Instance.Default_Page_Limit];
|
||||
internal readonly CacheMember[] m_displayedMembers = new CacheMember[ExplorerConfig.Instance.Default_Page_Limit];
|
||||
|
||||
internal bool m_autoUpdate;
|
||||
|
||||
|
||||
@@ -0,0 +1,41 @@
|
||||
#if BIE5
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Reflection;
|
||||
using BepInEx;
|
||||
using BepInEx.Logging;
|
||||
using HarmonyLib;
|
||||
|
||||
namespace UnityExplorer
|
||||
{
|
||||
[BepInPlugin(ExplorerCore.GUID, "UnityExplorer", ExplorerCore.VERSION)]
|
||||
public class ExplorerBepInPlugin : BaseUnityPlugin, IExplorerLoader
|
||||
{
|
||||
public static ExplorerBepInPlugin Instance;
|
||||
|
||||
public static ManualLogSource Logging => Instance?.Logger;
|
||||
|
||||
public Harmony HarmonyInstance => s_harmony;
|
||||
private static readonly Harmony s_harmony = new Harmony(ExplorerCore.GUID);
|
||||
|
||||
public string ExplorerFolder => Path.Combine(Paths.PluginPath, ExplorerCore.NAME);
|
||||
public string ConfigFolder => Path.Combine(Paths.ConfigPath, ExplorerCore.NAME);
|
||||
|
||||
public Action<object> OnLogMessage => (object log) => { Logging?.LogMessage(log?.ToString() ?? ""); };
|
||||
public Action<object> OnLogWarning => (object log) => { Logging?.LogWarning(log?.ToString() ?? ""); };
|
||||
public Action<object> OnLogError => (object log) => { Logging?.LogError(log?.ToString() ?? ""); };
|
||||
|
||||
internal void Awake()
|
||||
{
|
||||
Instance = this;
|
||||
|
||||
new ExplorerCore();
|
||||
}
|
||||
|
||||
internal void Update()
|
||||
{
|
||||
ExplorerCore.Update();
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
@@ -18,13 +18,21 @@ namespace UnityExplorer
|
||||
{
|
||||
#if MONO
|
||||
[BepInPlugin(ExplorerCore.GUID, "UnityExplorer", ExplorerCore.VERSION)]
|
||||
public class ExplorerBepInPlugin : BaseUnityPlugin
|
||||
public class ExplorerBepInPlugin : BaseUnityPlugin, IExplorerLoader
|
||||
{
|
||||
public static ExplorerBepInPlugin Instance;
|
||||
|
||||
public static ManualLogSource Logging => Instance?.Logger;
|
||||
|
||||
public static readonly Harmony HarmonyInstance = new Harmony(ExplorerCore.GUID);
|
||||
public Harmony HarmonyInstance => s_harmony;
|
||||
private static readonly Harmony s_harmony = new Harmony(ExplorerCore.GUID);
|
||||
|
||||
public string ExplorerFolder => Path.Combine(Paths.PluginPath, ExplorerCore.NAME);
|
||||
public string ConfigFolder => Path.Combine(Paths.ConfigPath, ExplorerCore.NAME);
|
||||
|
||||
public Action<object> OnLogMessage => (object log) => { Logging?.LogMessage(log?.ToString() ?? ""); };
|
||||
public Action<object> OnLogWarning => (object log) => { Logging?.LogWarning(log?.ToString() ?? ""); };
|
||||
public Action<object> OnLogError => (object log) => { Logging?.LogError(log?.ToString() ?? ""); };
|
||||
|
||||
internal void Awake()
|
||||
{
|
||||
@@ -44,13 +52,21 @@ namespace UnityExplorer
|
||||
|
||||
#if CPP
|
||||
[BepInPlugin(ExplorerCore.GUID, "UnityExplorer", ExplorerCore.VERSION)]
|
||||
public class ExplorerBepInPlugin : BasePlugin
|
||||
public class ExplorerBepInPlugin : BasePlugin, IExplorerLoader
|
||||
{
|
||||
public static ExplorerBepInPlugin Instance;
|
||||
|
||||
public static ManualLogSource Logging => Instance?.Log;
|
||||
|
||||
public static readonly Harmony HarmonyInstance = new Harmony(ExplorerCore.GUID);
|
||||
public Harmony HarmonyInstance => s_harmony;
|
||||
private static readonly Harmony s_harmony = new Harmony(ExplorerCore.GUID);
|
||||
|
||||
public string ExplorerFolder => Path.Combine(Paths.PluginPath, ExplorerCore.NAME);
|
||||
public string ConfigFolder => Path.Combine(Paths.ConfigPath, ExplorerCore.NAME);
|
||||
|
||||
public Action<object> OnLogMessage => (object log) => { Logging?.LogMessage(log?.ToString() ?? ""); };
|
||||
public Action<object> OnLogWarning => (object log) => { Logging?.LogWarning(log?.ToString() ?? ""); };
|
||||
public Action<object> OnLogError => (object log) => { Logging?.LogError(log?.ToString() ?? ""); };
|
||||
|
||||
// Init
|
||||
public override void Load()
|
||||
@@ -0,0 +1,39 @@
|
||||
#if ML
|
||||
using System;
|
||||
using System.IO;
|
||||
using MelonLoader;
|
||||
|
||||
namespace UnityExplorer
|
||||
{
|
||||
public class ExplorerMelonMod : MelonMod, IExplorerLoader
|
||||
{
|
||||
public static ExplorerMelonMod Instance;
|
||||
|
||||
public string ExplorerFolder => Path.Combine("Mods", ExplorerCore.NAME);
|
||||
public string ConfigFolder => ExplorerFolder;
|
||||
|
||||
public Action<object> OnLogMessage => (object log) => { MelonLogger.Msg(log?.ToString() ?? ""); };
|
||||
public Action<object> OnLogWarning => (object log) => { MelonLogger.Warning(log?.ToString() ?? ""); };
|
||||
public Action<object> OnLogError => (object log) => { MelonLogger.Error(log?.ToString() ?? ""); };
|
||||
|
||||
public Harmony.HarmonyInstance HarmonyInstance => Instance.Harmony;
|
||||
|
||||
public override void OnApplicationStart()
|
||||
{
|
||||
Instance = this;
|
||||
|
||||
new ExplorerCore();
|
||||
}
|
||||
|
||||
public override void OnUpdate()
|
||||
{
|
||||
ExplorerCore.Update();
|
||||
}
|
||||
|
||||
public override void OnSceneWasLoaded(int buildIndex, string sceneName)
|
||||
{
|
||||
ExplorerCore.Instance.OnSceneLoaded();
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
@@ -0,0 +1,66 @@
|
||||
#if STANDALONE
|
||||
using HarmonyLib;
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Reflection;
|
||||
|
||||
namespace UnityExplorer
|
||||
{
|
||||
public class ExplorerStandalone : IExplorerLoader
|
||||
{
|
||||
public static ExplorerStandalone CreateInstance()
|
||||
{
|
||||
if (Instance != null)
|
||||
return Instance;
|
||||
|
||||
return new ExplorerStandalone();
|
||||
}
|
||||
|
||||
private ExplorerStandalone()
|
||||
{
|
||||
Instance = this;
|
||||
new ExplorerCore();
|
||||
}
|
||||
|
||||
public static ExplorerStandalone Instance { get; private set; }
|
||||
|
||||
/// <summary>
|
||||
/// Invoked whenever Explorer logs something. Subscribe to this to handle logging.
|
||||
/// </summary>
|
||||
public static event Action<string, UnityEngine.LogType> OnLog;
|
||||
|
||||
public Harmony HarmonyInstance => s_harmony;
|
||||
public static readonly Harmony s_harmony = new Harmony(ExplorerCore.GUID);
|
||||
|
||||
public string ExplorerFolder
|
||||
{
|
||||
get
|
||||
{
|
||||
if (s_explorerFolder == null)
|
||||
{
|
||||
s_explorerFolder = new Uri(Assembly.GetExecutingAssembly().CodeBase).AbsolutePath;
|
||||
s_explorerFolder = Uri.UnescapeDataString(s_explorerFolder);
|
||||
s_explorerFolder = Path.GetDirectoryName(s_explorerFolder);
|
||||
}
|
||||
|
||||
return s_explorerFolder;
|
||||
}
|
||||
}
|
||||
private static string s_explorerFolder;
|
||||
|
||||
public string ConfigFolder => ExplorerFolder;
|
||||
|
||||
Action<object> IExplorerLoader.OnLogMessage => (object log) => { OnLog?.Invoke(log?.ToString() ?? "", UnityEngine.LogType.Log); };
|
||||
Action<object> IExplorerLoader.OnLogWarning => (object log) => { OnLog?.Invoke(log?.ToString() ?? "", UnityEngine.LogType.Warning); };
|
||||
Action<object> IExplorerLoader.OnLogError => (object log) => { OnLog?.Invoke(log?.ToString() ?? "", UnityEngine.LogType.Error); };
|
||||
|
||||
/// <summary>
|
||||
/// Call this once per frame for Explorer to update.
|
||||
/// </summary>
|
||||
public static void Update()
|
||||
{
|
||||
ExplorerCore.Update();
|
||||
}
|
||||
}
|
||||
}
|
||||
#endif
|
||||
@@ -0,0 +1,24 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
|
||||
namespace UnityExplorer
|
||||
{
|
||||
public interface IExplorerLoader
|
||||
{
|
||||
string ExplorerFolder { get; }
|
||||
|
||||
string ConfigFolder { get; }
|
||||
|
||||
Action<object> OnLogMessage { get; }
|
||||
Action<object> OnLogWarning { get; }
|
||||
Action<object> OnLogError { get; }
|
||||
|
||||
#if ML
|
||||
Harmony.HarmonyInstance HarmonyInstance { get; }
|
||||
#else
|
||||
HarmonyLib.Harmony HarmonyInstance { get; }
|
||||
#endif
|
||||
}
|
||||
}
|
||||
@@ -28,7 +28,7 @@ namespace UnityExplorer.UI
|
||||
UpdateCursorControl();
|
||||
}
|
||||
|
||||
public static bool ShouldForceMouse => ExplorerCore.ShowMenu && Unlock;
|
||||
public static bool ShouldForceMouse => UIManager.ShowMenu && Unlock;
|
||||
|
||||
private static CursorLockMode m_lastLockMode;
|
||||
private static bool m_lastVisibleState;
|
||||
@@ -42,7 +42,7 @@ namespace UnityExplorer.UI
|
||||
|
||||
public static void Init()
|
||||
{
|
||||
ModConfig.OnConfigChanged += ModConfig_OnConfigChanged;
|
||||
ExplorerConfig.OnConfigChanged += ModConfig_OnConfigChanged;
|
||||
|
||||
SetupPatches();
|
||||
|
||||
@@ -51,7 +51,7 @@ namespace UnityExplorer.UI
|
||||
|
||||
internal static void ModConfig_OnConfigChanged()
|
||||
{
|
||||
Unlock = ModConfig.Instance.Force_Unlock_Mouse;
|
||||
Unlock = ExplorerConfig.Instance.Force_Unlock_Mouse;
|
||||
}
|
||||
|
||||
private static void SetupPatches()
|
||||
@@ -102,14 +102,7 @@ namespace UnityExplorer.UI
|
||||
{
|
||||
try
|
||||
{
|
||||
var harmony =
|
||||
#if ML
|
||||
ExplorerMelonMod.Instance.Harmony;
|
||||
#elif BIE
|
||||
ExplorerBepInPlugin.HarmonyInstance;
|
||||
#elif STANDALONE
|
||||
ExplorerStandalone.HarmonyInstance;
|
||||
#endif
|
||||
var harmony = ExplorerCore.Loader.HarmonyInstance;
|
||||
|
||||
System.Reflection.PropertyInfo prop = type.GetProperty(property);
|
||||
|
||||
@@ -208,7 +201,7 @@ namespace UnityExplorer.UI
|
||||
m_lastEventSystem = value;
|
||||
m_lastInputModule = value?.currentInputModule;
|
||||
|
||||
if (ExplorerCore.ShowMenu)
|
||||
if (UIManager.ShowMenu)
|
||||
{
|
||||
value = UIManager.EventSys;
|
||||
}
|
||||
|
||||
+4
-4
@@ -208,7 +208,7 @@ namespace UnityExplorer.UI
|
||||
GameObject hideBtnObj = UIFactory.CreateButton(titleBar);
|
||||
|
||||
Button hideBtn = hideBtnObj.GetComponent<Button>();
|
||||
hideBtn.onClick.AddListener(() => { ExplorerCore.ShowMenu = false; });
|
||||
hideBtn.onClick.AddListener(() => { UIManager.ShowMenu = false; });
|
||||
ColorBlock colorBlock = hideBtn.colors;
|
||||
colorBlock.normalColor = new Color(65f / 255f, 23f / 255f, 23f / 255f);
|
||||
colorBlock.pressedColor = new Color(35f / 255f, 10f / 255f, 10f / 255f);
|
||||
@@ -224,13 +224,13 @@ namespace UnityExplorer.UI
|
||||
hideText.resizeTextForBestFit = true;
|
||||
hideText.resizeTextMinSize = 8;
|
||||
hideText.resizeTextMaxSize = 14;
|
||||
hideText.text = $"Hide ({ModConfig.Instance.Main_Menu_Toggle})";
|
||||
hideText.text = $"Hide ({ExplorerConfig.Instance.Main_Menu_Toggle})";
|
||||
|
||||
ModConfig.OnConfigChanged += ModConfig_OnConfigChanged;
|
||||
ExplorerConfig.OnConfigChanged += ModConfig_OnConfigChanged;
|
||||
|
||||
void ModConfig_OnConfigChanged()
|
||||
{
|
||||
hideText.text = $"Hide ({ModConfig.Instance.Main_Menu_Toggle})";
|
||||
hideText.text = $"Hide ({ExplorerConfig.Instance.Main_Menu_Toggle})";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -15,7 +15,7 @@ namespace UnityExplorer.UI.Modules
|
||||
{
|
||||
public static DebugConsole Instance { get; private set; }
|
||||
|
||||
public static bool LogUnity { get; set; } = ModConfig.Instance.Log_Unity_Debug;
|
||||
public static bool LogUnity { get; set; } = ExplorerConfig.Instance.Log_Unity_Debug;
|
||||
//public static bool SaveToDisk { get; set; } = ModConfig.Instance.Save_Logs_To_Disk;
|
||||
|
||||
internal static StreamWriter s_streamWriter;
|
||||
@@ -52,7 +52,7 @@ namespace UnityExplorer.UI.Modules
|
||||
//if (!SaveToDisk)
|
||||
// return;
|
||||
|
||||
var path = ExplorerCore.EXPLORER_FOLDER + @"\Logs";
|
||||
var path = ExplorerCore.ExplorerFolder + @"\Logs";
|
||||
|
||||
if (!Directory.Exists(path))
|
||||
Directory.CreateDirectory(path);
|
||||
@@ -69,7 +69,7 @@ namespace UnityExplorer.UI.Modules
|
||||
}
|
||||
|
||||
var fileName = "UnityExplorer " + DateTime.Now.ToString("u") + ".txt";
|
||||
fileName = ExplorerCore.RemoveInvalidFilenameChars(fileName);
|
||||
fileName = RemoveInvalidFilenameChars(fileName);
|
||||
|
||||
var stream = File.Create(path + @"\" + fileName);
|
||||
s_streamWriter = new StreamWriter(stream)
|
||||
@@ -81,6 +81,16 @@ namespace UnityExplorer.UI.Modules
|
||||
s_streamWriter.WriteLine(msg);
|
||||
}
|
||||
|
||||
public static string RemoveInvalidFilenameChars(string s)
|
||||
{
|
||||
var invalid = Path.GetInvalidFileNameChars();
|
||||
foreach (var c in invalid)
|
||||
{
|
||||
s = s.Replace(c.ToString(), "");
|
||||
}
|
||||
return s;
|
||||
}
|
||||
|
||||
public static void Log(string message)
|
||||
{
|
||||
Log(message, null);
|
||||
@@ -256,8 +266,8 @@ namespace UnityExplorer.UI.Modules
|
||||
void ToggleLogUnity(bool val)
|
||||
{
|
||||
LogUnity = val;
|
||||
ModConfig.Instance.Log_Unity_Debug = val;
|
||||
ModConfig.SaveSettings();
|
||||
ExplorerConfig.Instance.Log_Unity_Debug = val;
|
||||
ExplorerConfig.SaveSettings();
|
||||
}
|
||||
|
||||
var unityToggleLayout = unityToggleObj.AddComponent<LayoutElement>();
|
||||
|
||||
@@ -32,19 +32,19 @@ namespace UnityExplorer.UI.Modules
|
||||
internal void OnApply()
|
||||
{
|
||||
if (!string.IsNullOrEmpty(m_keycodeInput.text) && Enum.Parse(typeof(KeyCode), m_keycodeInput.text) is KeyCode keyCode)
|
||||
ModConfig.Instance.Main_Menu_Toggle = keyCode;
|
||||
ExplorerConfig.Instance.Main_Menu_Toggle = keyCode;
|
||||
|
||||
ModConfig.Instance.Force_Unlock_Mouse = m_unlockMouseToggle.isOn;
|
||||
ExplorerConfig.Instance.Force_Unlock_Mouse = m_unlockMouseToggle.isOn;
|
||||
|
||||
if (!string.IsNullOrEmpty(m_pageLimitInput.text) && int.TryParse(m_pageLimitInput.text, out int lim))
|
||||
ModConfig.Instance.Default_Page_Limit = lim;
|
||||
ExplorerConfig.Instance.Default_Page_Limit = lim;
|
||||
|
||||
ModConfig.Instance.Default_Output_Path = m_defaultOutputInput.text;
|
||||
ExplorerConfig.Instance.Default_Output_Path = m_defaultOutputInput.text;
|
||||
|
||||
ModConfig.Instance.Hide_On_Startup = m_hideOnStartupToggle.isOn;
|
||||
ExplorerConfig.Instance.Hide_On_Startup = m_hideOnStartupToggle.isOn;
|
||||
|
||||
ModConfig.SaveSettings();
|
||||
ModConfig.InvokeConfigChanged();
|
||||
ExplorerConfig.SaveSettings();
|
||||
ExplorerConfig.InvokeConfigChanged();
|
||||
}
|
||||
|
||||
#region UI CONSTRUCTION
|
||||
@@ -131,7 +131,7 @@ namespace UnityExplorer.UI.Modules
|
||||
labelLayout.minHeight = 25;
|
||||
|
||||
UIFactory.CreateToggle(rowObj, out m_hideOnStartupToggle, out Text toggleText);
|
||||
m_hideOnStartupToggle.isOn = ModConfig.Instance.Hide_On_Startup;
|
||||
m_hideOnStartupToggle.isOn = ExplorerConfig.Instance.Hide_On_Startup;
|
||||
toggleText.text = "";
|
||||
}
|
||||
|
||||
@@ -159,7 +159,7 @@ namespace UnityExplorer.UI.Modules
|
||||
var keycodeInputObj = UIFactory.CreateInputField(rowObj);
|
||||
|
||||
m_keycodeInput = keycodeInputObj.GetComponent<InputField>();
|
||||
m_keycodeInput.text = ModConfig.Instance.Main_Menu_Toggle.ToString();
|
||||
m_keycodeInput.text = ExplorerConfig.Instance.Main_Menu_Toggle.ToString();
|
||||
|
||||
m_keycodeInput.placeholder.gameObject.GetComponent<Text>().text = "KeyCode, eg. F7";
|
||||
}
|
||||
@@ -186,7 +186,7 @@ namespace UnityExplorer.UI.Modules
|
||||
labelLayout.minHeight = 25;
|
||||
|
||||
UIFactory.CreateToggle(rowObj, out m_unlockMouseToggle, out Text toggleText);
|
||||
m_unlockMouseToggle.isOn = ModConfig.Instance.Force_Unlock_Mouse;
|
||||
m_unlockMouseToggle.isOn = ExplorerConfig.Instance.Force_Unlock_Mouse;
|
||||
toggleText.text = "";
|
||||
}
|
||||
|
||||
@@ -216,7 +216,7 @@ namespace UnityExplorer.UI.Modules
|
||||
var inputObj = UIFactory.CreateInputField(rowObj);
|
||||
|
||||
m_pageLimitInput = inputObj.GetComponent<InputField>();
|
||||
m_pageLimitInput.text = ModConfig.Instance.Default_Page_Limit.ToString();
|
||||
m_pageLimitInput.text = ExplorerConfig.Instance.Default_Page_Limit.ToString();
|
||||
|
||||
m_pageLimitInput.placeholder.gameObject.GetComponent<Text>().text = "Integer, eg. 20";
|
||||
}
|
||||
@@ -247,7 +247,7 @@ namespace UnityExplorer.UI.Modules
|
||||
var inputObj = UIFactory.CreateInputField(rowObj);
|
||||
|
||||
m_defaultOutputInput = inputObj.GetComponent<InputField>();
|
||||
m_defaultOutputInput.text = ModConfig.Instance.Default_Output_Path.ToString();
|
||||
m_defaultOutputInput.text = ExplorerConfig.Instance.Default_Output_Path.ToString();
|
||||
|
||||
m_defaultOutputInput.placeholder.gameObject.GetComponent<Text>().text = @"Directory, eg. Mods\UnityExplorer";
|
||||
}
|
||||
|
||||
@@ -21,7 +21,7 @@ namespace UnityExplorer.UI.Shared
|
||||
{
|
||||
public PageHandler(SliderScrollbar scroll)
|
||||
{
|
||||
ItemsPerPage = ModConfig.Instance?.Default_Page_Limit ?? 20;
|
||||
ItemsPerPage = ExplorerConfig.Instance?.Default_Page_Limit ?? 20;
|
||||
m_scrollbar = scroll;
|
||||
}
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user