performance fixes for IDE/attached debugger stuttering.
This commit is contained in:
+35
-3
@@ -6,6 +6,7 @@ using System.Linq;
|
||||
using System.Numerics;
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using Barotrauma.LuaCs.Data;
|
||||
|
||||
namespace Barotrauma.LuaCs;
|
||||
|
||||
@@ -41,17 +42,48 @@ public class DefaultLuaRegistrar : IDefaultLuaRegistrar
|
||||
_userDataService.RegisterType("Barotrauma.Range`1");
|
||||
_userDataService.RegisterType("Barotrauma.ItemPrefab");
|
||||
|
||||
List<Assembly> assembliesToScan = [typeof(DefaultLuaRegistrar).Assembly, typeof(Identifier).Assembly, typeof(Microsoft.Xna.Framework.Vector2).Assembly];
|
||||
List<Assembly> assembliesToScan = [
|
||||
typeof(DefaultLuaRegistrar).Assembly,
|
||||
typeof(Identifier).Assembly,
|
||||
//causes tons of lag (high lookup time)
|
||||
//typeof(Microsoft.Xna.Framework.Vector2).Assembly
|
||||
];
|
||||
|
||||
foreach (var type in assembliesToScan.SelectMany(a => a.GetTypes()))
|
||||
foreach (var type in assembliesToScan.SelectMany(a => a.GetSafeTypes()))
|
||||
{
|
||||
if (type.IsEnum || type.Name.StartsWith("<") || type.IsDefined(typeof(CompilerGeneratedAttribute)) || !_safeUserDataService.IsAllowed(type.FullName))
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
if (type.FullName?.StartsWith("Barotrauma.LuaCs") ?? false)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
_userDataService.RegisterType(type.FullName);
|
||||
}
|
||||
|
||||
_userDataService.RegisterType(typeof(IConfigService).FullName);
|
||||
_userDataService.RegisterType(typeof(ISettingBase).FullName);
|
||||
_userDataService.RegisterType(typeof(ISettingBase<bool>).FullName);
|
||||
_userDataService.RegisterType(typeof(ISettingBase<string>).FullName);
|
||||
_userDataService.RegisterType(typeof(ISettingBase<byte>).FullName);
|
||||
_userDataService.RegisterType(typeof(ISettingBase<sbyte>).FullName);
|
||||
_userDataService.RegisterType(typeof(ISettingBase<ushort>).FullName);
|
||||
_userDataService.RegisterType(typeof(ISettingBase<short>).FullName);
|
||||
_userDataService.RegisterType(typeof(ISettingBase<char>).FullName);
|
||||
_userDataService.RegisterType(typeof(ISettingBase<uint>).FullName);
|
||||
_userDataService.RegisterType(typeof(ISettingBase<int>).FullName);
|
||||
_userDataService.RegisterType(typeof(ISettingBase<ulong>).FullName);
|
||||
_userDataService.RegisterType(typeof(ISettingBase<long>).FullName);
|
||||
_userDataService.RegisterType(typeof(ISettingBase<float>).FullName);
|
||||
_userDataService.RegisterType(typeof(ISettingBase<double>).FullName);
|
||||
_userDataService.RegisterType(typeof(ISettingRangeBase<float>).FullName);
|
||||
_userDataService.RegisterType(typeof(ISettingRangeBase<int>).FullName);
|
||||
#if CLIENT
|
||||
_userDataService.RegisterType(typeof(ISettingControl).FullName);
|
||||
#endif
|
||||
|
||||
_userDataService.RegisterType("Barotrauma.LuaSByte");
|
||||
_userDataService.RegisterType("Barotrauma.LuaByte");
|
||||
|
||||
Reference in New Issue
Block a user