performance fixes for IDE/attached debugger stuttering.
This commit is contained in:
+24
-1
@@ -26,7 +26,7 @@ using System.Diagnostics;
|
|||||||
|
|
||||||
namespace Barotrauma.LuaCs;
|
namespace Barotrauma.LuaCs;
|
||||||
|
|
||||||
class LuaScriptManagementService : ILuaScriptManagementService, ILuaDataService
|
internal sealed class LuaScriptManagementService : ILuaScriptManagementService, ILuaDataService
|
||||||
{
|
{
|
||||||
public Script? InternalScript => _script;
|
public Script? InternalScript => _script;
|
||||||
|
|
||||||
@@ -335,6 +335,29 @@ class LuaScriptManagementService : ILuaScriptManagementService, ILuaDataService
|
|||||||
UserData.RegisterType(typeof(IResourceInfo));
|
UserData.RegisterType(typeof(IResourceInfo));
|
||||||
UserData.RegisterType(typeof(IUserDataDescriptor));
|
UserData.RegisterType(typeof(IUserDataDescriptor));
|
||||||
UserData.RegisterType(typeof(INetworkingService));
|
UserData.RegisterType(typeof(INetworkingService));
|
||||||
|
|
||||||
|
// Config/Settings
|
||||||
|
UserData.RegisterType(typeof(IConfigService));
|
||||||
|
UserData.RegisterType(typeof(ISettingBase));
|
||||||
|
UserData.RegisterType(typeof(ISettingBase<bool>));
|
||||||
|
UserData.RegisterType(typeof(ISettingBase<string>));
|
||||||
|
UserData.RegisterType(typeof(ISettingBase<byte>));
|
||||||
|
UserData.RegisterType(typeof(ISettingBase<sbyte>));
|
||||||
|
UserData.RegisterType(typeof(ISettingBase<ushort>));
|
||||||
|
UserData.RegisterType(typeof(ISettingBase<short>));
|
||||||
|
UserData.RegisterType(typeof(ISettingBase<char>));
|
||||||
|
UserData.RegisterType(typeof(ISettingBase<uint>));
|
||||||
|
UserData.RegisterType(typeof(ISettingBase<int>));
|
||||||
|
UserData.RegisterType(typeof(ISettingBase<ulong>));
|
||||||
|
UserData.RegisterType(typeof(ISettingBase<long>));
|
||||||
|
UserData.RegisterType(typeof(ISettingBase<float>));
|
||||||
|
UserData.RegisterType(typeof(ISettingBase<double>));
|
||||||
|
UserData.RegisterType(typeof(ISettingRangeBase<float>));
|
||||||
|
UserData.RegisterType(typeof(ISettingRangeBase<int>));
|
||||||
|
#if CLIENT
|
||||||
|
UserData.RegisterType(typeof(ISettingControl));
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
new LuaConverters(this).RegisterLuaConverters();
|
new LuaConverters(this).RegisterLuaConverters();
|
||||||
|
|
||||||
|
|||||||
+35
-3
@@ -6,6 +6,7 @@ using System.Linq;
|
|||||||
using System.Numerics;
|
using System.Numerics;
|
||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
using System.Runtime.CompilerServices;
|
using System.Runtime.CompilerServices;
|
||||||
|
using Barotrauma.LuaCs.Data;
|
||||||
|
|
||||||
namespace Barotrauma.LuaCs;
|
namespace Barotrauma.LuaCs;
|
||||||
|
|
||||||
@@ -41,17 +42,48 @@ public class DefaultLuaRegistrar : IDefaultLuaRegistrar
|
|||||||
_userDataService.RegisterType("Barotrauma.Range`1");
|
_userDataService.RegisterType("Barotrauma.Range`1");
|
||||||
_userDataService.RegisterType("Barotrauma.ItemPrefab");
|
_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))
|
if (type.IsEnum || type.Name.StartsWith("<") || type.IsDefined(typeof(CompilerGeneratedAttribute)) || !_safeUserDataService.IsAllowed(type.FullName))
|
||||||
{
|
{
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (type.FullName?.StartsWith("Barotrauma.LuaCs") ?? false)
|
||||||
|
{
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
_userDataService.RegisterType(type.FullName);
|
_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.LuaSByte");
|
||||||
_userDataService.RegisterType("Barotrauma.LuaByte");
|
_userDataService.RegisterType("Barotrauma.LuaByte");
|
||||||
|
|||||||
+1
-1
Submodule Libraries/moonsharp updated: e3c2270e82...7b78e0883c
Reference in New Issue
Block a user