diff --git a/Barotrauma/BarotraumaShared/SharedSource/LuaCs/Cs/CsScriptBase.cs b/Barotrauma/BarotraumaShared/SharedSource/LuaCs/Cs/CsScriptBase.cs index d02604d75..285d41a82 100644 --- a/Barotrauma/BarotraumaShared/SharedSource/LuaCs/Cs/CsScriptBase.cs +++ b/Barotrauma/BarotraumaShared/SharedSource/LuaCs/Cs/CsScriptBase.cs @@ -17,18 +17,18 @@ namespace Barotrauma class CsScriptBase : AssemblyLoadContext { - public const string NET_ONE_TIME_SCRIPT_ASSEMBLY = "NetOneTimeScriptAssembly"; - public const string NET_SCRIPT_ASSEMBLY = "NetScriptAssembly"; + public const string CsOneTimeScriptAssembly = "NetOneTimeScriptAssembly"; + public const string CsScriptAssembly = "NetScriptAssembly"; public static readonly string[] LoadedAssemblyName = { - CsScriptBase.NET_SCRIPT_ASSEMBLY, - CsScriptBase.NET_ONE_TIME_SCRIPT_ASSEMBLY + CsScriptBase.CsScriptAssembly, + CsScriptBase.CsOneTimeScriptAssembly }; public static Dictionary Revision = new Dictionary() { - { NET_SCRIPT_ASSEMBLY, 0}, - { NET_ONE_TIME_SCRIPT_ASSEMBLY, 0} + { CsScriptAssembly, 0}, + { CsOneTimeScriptAssembly, 0} }; public CSharpParseOptions ParseOptions { get; protected set; } diff --git a/Barotrauma/BarotraumaShared/SharedSource/LuaCs/Cs/CsScriptFilter.cs b/Barotrauma/BarotraumaShared/SharedSource/LuaCs/Cs/CsScriptFilter.cs index 58d7b3f52..670795639 100644 --- a/Barotrauma/BarotraumaShared/SharedSource/LuaCs/Cs/CsScriptFilter.cs +++ b/Barotrauma/BarotraumaShared/SharedSource/LuaCs/Cs/CsScriptFilter.cs @@ -12,8 +12,8 @@ namespace Barotrauma { class CsScriptFilter { public static readonly string[] LoadedAssemblyName = { - CsScriptBase.NET_SCRIPT_ASSEMBLY, - CsScriptBase.NET_ONE_TIME_SCRIPT_ASSEMBLY + CsScriptBase.CsScriptAssembly, + CsScriptBase.CsOneTimeScriptAssembly }; private static readonly string[] typesPermitted = { diff --git a/Barotrauma/BarotraumaShared/SharedSource/LuaCs/Cs/CsScriptLoader.cs b/Barotrauma/BarotraumaShared/SharedSource/LuaCs/Cs/CsScriptLoader.cs index 9b6a55097..5584c6b0d 100644 --- a/Barotrauma/BarotraumaShared/SharedSource/LuaCs/Cs/CsScriptLoader.cs +++ b/Barotrauma/BarotraumaShared/SharedSource/LuaCs/Cs/CsScriptLoader.cs @@ -143,7 +143,7 @@ namespace Barotrauma var syntaxTrees = new List(); if (sources.Count <= 0) throw new Exception("No Cs sources detected"); - syntaxTrees.Add(AssemblyInfoSyntaxTree(NET_SCRIPT_ASSEMBLY)); + syntaxTrees.Add(AssemblyInfoSyntaxTree(CsScriptAssembly)); foreach ((var folder, var src) in sources) { try @@ -172,7 +172,7 @@ namespace Barotrauma .WithMetadataImportOptions(MetadataImportOptions.All) .WithOptimizationLevel(OptimizationLevel.Release) .WithAllowUnsafe(false); - var compilation = CSharpCompilation.Create(NET_SCRIPT_ASSEMBLY, syntaxTrees, defaultReferences, options); + var compilation = CSharpCompilation.Create(CsScriptAssembly, syntaxTrees, defaultReferences, options); using (var mem = new MemoryStream()) { @@ -181,7 +181,7 @@ namespace Barotrauma { IEnumerable failures = result.Diagnostics.Where(d => d.IsWarningAsError || d.Severity == DiagnosticSeverity.Error); - string errStr = "NET MODS NOT LOADED | Mod compilation errors:"; + string errStr = "CS MODS NOT LOADED | Compilation errors:"; foreach (Diagnostic diagnostic in failures) errStr += $"\n{diagnostic}"; LuaCsSetup.PrintCsError(errStr); @@ -199,7 +199,7 @@ namespace Barotrauma } else { - throw new Exception("Unable to create net mods assembly."); + throw new Exception("Unable to create cs mods assembly."); } } diff --git a/Barotrauma/BarotraumaShared/SharedSource/LuaCs/Cs/CsScriptRunner.cs b/Barotrauma/BarotraumaShared/SharedSource/LuaCs/Cs/CsScriptRunner.cs index b607e969e..b8d6a8e02 100644 --- a/Barotrauma/BarotraumaShared/SharedSource/LuaCs/Cs/CsScriptRunner.cs +++ b/Barotrauma/BarotraumaShared/SharedSource/LuaCs/Cs/CsScriptRunner.cs @@ -56,7 +56,7 @@ namespace Barotrauma { code = ToOneTimeScript(code); var syntaxTree = SyntaxFactory.ParseSyntaxTree(code, ParseOptions); - var compilation = CSharpCompilation.Create(NET_ONE_TIME_SCRIPT_ASSEMBLY, new[] { AssemblyInfoSyntaxTree(NET_ONE_TIME_SCRIPT_ASSEMBLY), syntaxTree }, defaultReferences, compileOptions); + var compilation = CSharpCompilation.Create(CsOneTimeScriptAssembly, new[] { AssemblyInfoSyntaxTree(CsOneTimeScriptAssembly), syntaxTree }, defaultReferences, compileOptions); Assembly assembly = null; using (var mem = new MemoryStream()) diff --git a/Barotrauma/BarotraumaShared/SharedSource/LuaCs/LuaCsSetup.cs b/Barotrauma/BarotraumaShared/SharedSource/LuaCs/LuaCsSetup.cs index 26064b400..42b9865e3 100644 --- a/Barotrauma/BarotraumaShared/SharedSource/LuaCs/LuaCsSetup.cs +++ b/Barotrauma/BarotraumaShared/SharedSource/LuaCs/LuaCsSetup.cs @@ -13,8 +13,8 @@ using System.Linq; using System.Reflection; using System.Threading; -[assembly: InternalsVisibleTo(Barotrauma.CsScriptBase.NET_SCRIPT_ASSEMBLY, AllInternalsVisible = true)] -[assembly: InternalsVisibleTo(Barotrauma.CsScriptBase.NET_ONE_TIME_SCRIPT_ASSEMBLY, AllInternalsVisible = true)] +[assembly: InternalsVisibleTo(Barotrauma.CsScriptBase.CsScriptAssembly, AllInternalsVisible = true)] +[assembly: InternalsVisibleTo(Barotrauma.CsScriptBase.CsOneTimeScriptAssembly, AllInternalsVisible = true)] namespace Barotrauma { class LuaCsSetupConfig @@ -314,7 +314,7 @@ namespace Barotrauma public void Stop() { - foreach (var type in AppDomain.CurrentDomain.GetAssemblies().Where(a => a.GetName().Name == CsScriptBase.NET_SCRIPT_ASSEMBLY).SelectMany(assembly => assembly.GetTypes())) + foreach (var type in AppDomain.CurrentDomain.GetAssemblies().Where(a => a.GetName().Name == CsScriptBase.CsScriptAssembly).SelectMany(assembly => assembly.GetTypes())) { UserData.UnregisterType(type, true); } @@ -457,7 +457,14 @@ namespace Barotrauma var modTypes = CsScriptLoader.Compile(); modTypes.ForEach(t => { - t.GetConstructor(new Type[] { })?.Invoke(null); + try + { + t.GetConstructor(new Type[] { })?.Invoke(null); + } + catch (Exception ex) + { + HandleException(ex, exceptionType: ExceptionType.CSharp); + } }); } catch (Exception ex)