Cleanups, remove redundancy

This commit is contained in:
Sinai 2022-03-29 22:36:17 +11:00
parent c71748d22a
commit 4bee55fb25
4 changed files with 45 additions and 69 deletions

View File

@ -14,7 +14,7 @@ namespace UnityExplorer.CacheObject
{ {
public static class CacheMemberFactory public static class CacheMemberFactory
{ {
public static List<CacheMember> GetCacheMembers(object inspectorTarget, Type type, ReflectionInspector inspector) public static List<CacheMember> GetCacheMembers(Type type, ReflectionInspector inspector)
{ {
//var list = new List<CacheMember>(); //var list = new List<CacheMember>();
HashSet<string> cachedSigs = new(); HashSet<string> cachedSigs = new();
@ -49,10 +49,6 @@ namespace UnityExplorer.CacheObject
foreach (var declaringType in types) foreach (var declaringType in types)
{ {
var target = inspectorTarget;
if (!inspector.StaticOnly)
target = target.TryCast(declaringType);
foreach (var prop in declaringType.GetProperties(flags)) foreach (var prop in declaringType.GetProperties(flags))
if (prop.DeclaringType == declaringType) if (prop.DeclaringType == declaringType)
TryCacheMember(prop, props, cachedSigs, declaringType, inspector); TryCacheMember(prop, props, cachedSigs, declaringType, inspector);
@ -79,13 +75,9 @@ namespace UnityExplorer.CacheObject
return sorted; return sorted;
} }
static void TryCacheMember( static void TryCacheMember<T>(MemberInfo member, List<T> list, HashSet<string> cachedSigs,
MemberInfo member, Type declaringType, ReflectionInspector inspector, bool ignorePropertyMethodInfos = true)
IList list, where T : CacheMember
HashSet<string> cachedSigs,
Type declaringType,
ReflectionInspector inspector,
bool ignorePropertyMethodInfos = true)
{ {
try try
{ {
@ -94,7 +86,9 @@ namespace UnityExplorer.CacheObject
string sig = member switch string sig = member switch
{ {
// method or constructor
MethodBase mb => mb.FullDescription(), MethodBase mb => mb.FullDescription(),
// property or field
PropertyInfo or FieldInfo => $"{member.DeclaringType.FullDescription()}.{member.Name}", PropertyInfo or FieldInfo => $"{member.DeclaringType.FullDescription()}.{member.Name}",
_ => throw new NotImplementedException(), _ => throw new NotImplementedException(),
}; };
@ -164,32 +158,13 @@ namespace UnityExplorer.CacheObject
cached.SetFallbackType(returnType); cached.SetFallbackType(returnType);
cached.SetInspectorOwner(inspector, member); cached.SetInspectorOwner(inspector, member);
list.Add(cached); list.Add((T)cached);
} }
catch (Exception e) catch (Exception e)
{ {
ExplorerCore.LogWarning($"Exception caching member {member.DeclaringType.FullName}.{member.Name}!"); ExplorerCore.LogWarning($"Exception caching member {member.DeclaringType.FullName}.{member.Name}!");
ExplorerCore.Log(e.ToString()); ExplorerCore.Log(e);
} }
} }
//internal static string GetSig(MemberInfo member) => $"{member.DeclaringType.Name}.{member.Name}";
//
//internal static string GetArgumentString(ParameterInfo[] args)
//{
// var sb = new StringBuilder();
// sb.Append(' ');
// sb.Append('(');
// foreach (var param in args)
// {
// sb.Append(param.ParameterType.Name);
// sb.Append(' ');
// sb.Append(param.Name);
// sb.Append(',');
// sb.Append(' ');
// }
// sb.Append(')');
// return sb.ToString();
//}
} }
} }

View File

@ -1,10 +1,12 @@
using System.IO; using System;
using System.IO;
using UnityEngine; using UnityEngine;
using UnityExplorer.Config; using UnityExplorer.Config;
using UnityExplorer.ObjectExplorer; using UnityExplorer.ObjectExplorer;
using UnityExplorer.Runtime; using UnityExplorer.Runtime;
using UnityExplorer.UI; using UnityExplorer.UI;
using UnityExplorer.UI.Panels; using UnityExplorer.UI.Panels;
using UniverseLib;
using UniverseLib.Input; using UniverseLib.Input;
namespace UnityExplorer namespace UnityExplorer
@ -26,23 +28,20 @@ namespace UnityExplorer
public static void Init(IExplorerLoader loader) public static void Init(IExplorerLoader loader)
{ {
if (Loader != null) if (Loader != null)
{ throw new Exception("UnityExplorer is already loaded.");
LogWarning("UnityExplorer is already loaded!");
return;
}
Loader = loader; Loader = loader;
Log($"{NAME} {VERSION} initializing..."); Log($"{NAME} {VERSION} initializing...");
if (!Directory.Exists(Loader.ExplorerFolder)) Directory.CreateDirectory(Loader.ExplorerFolder);
Directory.CreateDirectory(Loader.ExplorerFolder);
ConfigManager.Init(Loader.ConfigHandler); ConfigManager.Init(Loader.ConfigHandler);
UERuntimeHelper.Init(); UERuntimeHelper.Init();
ExplorerBehaviour.Setup(); ExplorerBehaviour.Setup();
UnityCrashPrevention.Init(); UnityCrashPrevention.Init();
UniverseLib.Universe.Init(ConfigManager.Startup_Delay_Time.Value, LateInit, Log, new() Universe.Init(ConfigManager.Startup_Delay_Time.Value, LateInit, Log, new()
{ {
Disable_EventSystem_Override = ConfigManager.Disable_EventSystem_Override.Value, Disable_EventSystem_Override = ConfigManager.Disable_EventSystem_Override.Value,
Force_Unlock_Mouse = ConfigManager.Force_Unlock_Mouse.Value, Force_Unlock_Mouse = ConfigManager.Force_Unlock_Mouse.Value,
@ -53,7 +52,7 @@ namespace UnityExplorer
// Do a delayed setup so that objects aren't destroyed instantly. // Do a delayed setup so that objects aren't destroyed instantly.
// This can happen for a multitude of reasons. // This can happen for a multitude of reasons.
// Default delay is 1 second which is usually enough. // Default delay is 1 second which is usually enough.
private static void LateInit() static void LateInit()
{ {
Log($"Setting up late core features..."); Log($"Setting up late core features...");
@ -63,21 +62,18 @@ namespace UnityExplorer
UIManager.InitUI(); UIManager.InitUI();
Log($"{NAME} {VERSION} initialized for {UniverseLib.Universe.Context}."); Log($"{NAME} {VERSION} ({Universe.Context}) initialized.");
//InspectorManager.Inspect(typeof(Tests.TestClass)); //InspectorManager.Inspect(typeof(Tests.TestClass));
} }
/// <summary> internal static void Update()
/// Should be called once per frame.
/// </summary>
public static void Update()
{ {
UIManager.Update();
// check master toggle // check master toggle
if (InputManager.GetKeyDown(ConfigManager.Master_Toggle.Value)) if (InputManager.GetKeyDown(ConfigManager.Master_Toggle.Value))
UIManager.ShowMenu = !UIManager.ShowMenu; UIManager.ShowMenu = !UIManager.ShowMenu;
UIManager.Update();
} }
#region LOGGING #region LOGGING

View File

@ -164,7 +164,7 @@ namespace UnityExplorer.Inspectors
// Get cache members // Get cache members
this.members = CacheMemberFactory.GetCacheMembers(Target, TargetType, this); this.members = CacheMemberFactory.GetCacheMembers(TargetType, this);
// reset filters // reset filters

View File

@ -24,6 +24,8 @@ namespace UnityExplorer.Tests
#endif #endif
} }
#region MONO
public static object LiterallyAnything = null; public static object LiterallyAnything = null;
// Test enumerables // Test enumerables
@ -145,6 +147,8 @@ namespace UnityExplorer.Tests
ExplorerCore.Log("Finished TestClass Init_Mono"); ExplorerCore.Log("Finished TestClass Init_Mono");
} }
#endregion
#if CPP #if CPP
public static Il2CppSystem.Collections.Generic.Dictionary<string, string> IL2CPP_Dict; public static Il2CppSystem.Collections.Generic.Dictionary<string, string> IL2CPP_Dict;
public static Il2CppSystem.Collections.Generic.HashSet<string> IL2CPP_HashSet; public static Il2CppSystem.Collections.Generic.HashSet<string> IL2CPP_HashSet;
@ -257,6 +261,7 @@ namespace UnityExplorer.Tests
ExplorerCore.Log($"Finished Init_Il2Cpp"); ExplorerCore.Log($"Finished Init_Il2Cpp");
} }
#endif #endif
} }
} }