From 47e035140378db7b2b7ca96a8239957bed333aa7 Mon Sep 17 00:00:00 2001 From: Evil Factory <36804725+evilfactory@users.noreply.github.com> Date: Wed, 29 Jun 2022 12:12:47 -0300 Subject: [PATCH] fix some of the formatting and remove usage of CsScriptFilter as it's pretty much useless --- .../SharedSource/LuaCs/Cs/CsScriptBase.cs | 5 ++++ .../SharedSource/LuaCs/Cs/CsScriptFilter.cs | 2 ++ .../SharedSource/LuaCs/Cs/CsScriptLoader.cs | 20 +++++-------- .../SharedSource/LuaCs/Cs/CsScriptRunner.cs | 30 ++++++++----------- .../LuaCs/Lua/LuaClasses/LuaUserData.cs | 4 ++- 5 files changed, 30 insertions(+), 31 deletions(-) diff --git a/Barotrauma/BarotraumaShared/SharedSource/LuaCs/Cs/CsScriptBase.cs b/Barotrauma/BarotraumaShared/SharedSource/LuaCs/Cs/CsScriptBase.cs index 4ddf8da24..d02604d75 100644 --- a/Barotrauma/BarotraumaShared/SharedSource/LuaCs/Cs/CsScriptBase.cs +++ b/Barotrauma/BarotraumaShared/SharedSource/LuaCs/Cs/CsScriptBase.cs @@ -20,6 +20,11 @@ namespace Barotrauma public const string NET_ONE_TIME_SCRIPT_ASSEMBLY = "NetOneTimeScriptAssembly"; public const string NET_SCRIPT_ASSEMBLY = "NetScriptAssembly"; + public static readonly string[] LoadedAssemblyName = { + CsScriptBase.NET_SCRIPT_ASSEMBLY, + CsScriptBase.NET_ONE_TIME_SCRIPT_ASSEMBLY + }; + public static Dictionary Revision = new Dictionary() { { NET_SCRIPT_ASSEMBLY, 0}, diff --git a/Barotrauma/BarotraumaShared/SharedSource/LuaCs/Cs/CsScriptFilter.cs b/Barotrauma/BarotraumaShared/SharedSource/LuaCs/Cs/CsScriptFilter.cs index e699bd9e0..58d7b3f52 100644 --- a/Barotrauma/BarotraumaShared/SharedSource/LuaCs/Cs/CsScriptFilter.cs +++ b/Barotrauma/BarotraumaShared/SharedSource/LuaCs/Cs/CsScriptFilter.cs @@ -1,3 +1,5 @@ +// unused + using Microsoft.CodeAnalysis; using Microsoft.CodeAnalysis.CSharp; using Microsoft.CodeAnalysis.CSharp.Syntax; diff --git a/Barotrauma/BarotraumaShared/SharedSource/LuaCs/Cs/CsScriptLoader.cs b/Barotrauma/BarotraumaShared/SharedSource/LuaCs/Cs/CsScriptLoader.cs index d63079eaa..96218a864 100644 --- a/Barotrauma/BarotraumaShared/SharedSource/LuaCs/Cs/CsScriptLoader.cs +++ b/Barotrauma/BarotraumaShared/SharedSource/LuaCs/Cs/CsScriptLoader.cs @@ -151,8 +151,6 @@ namespace Barotrauma foreach (var file in src) { var tree = SyntaxFactory.ParseSyntaxTree(File.ReadAllText(file), ParseOptions, file); - var error = CsScriptFilter.FilterSyntaxTree(tree as CSharpSyntaxTree); // Check file content for prohibited stuff - if (error != null) throw new Exception(error); syntaxTrees.Add(tree); } @@ -166,15 +164,15 @@ namespace Barotrauma return syntaxTrees; } - public List Compile() - { + public List Compile() + { IEnumerable syntaxTrees = ParseSources(); var options = new CSharpCompilationOptions(OutputKind.DynamicallyLinkedLibrary) .WithMetadataImportOptions(MetadataImportOptions.All) .WithOptimizationLevel(OptimizationLevel.Release) .WithAllowUnsafe(false); - var compilation = CSharpCompilation.Create(NET_SCRIPT_ASSEMBLY,syntaxTrees, defaultReferences, options); + var compilation = CSharpCompilation.Create(NET_SCRIPT_ASSEMBLY, syntaxTrees, defaultReferences, options); using (var mem = new MemoryStream()) { @@ -191,20 +189,18 @@ namespace Barotrauma else { mem.Seek(0, SeekOrigin.Begin); - var errStr = CsScriptFilter.FilterMetadata(new PEReader(mem).GetMetadataReader()); - if (errStr == null) - { - mem.Seek(0, SeekOrigin.Begin); - Assembly = LoadFromStream(mem); - } - else LuaCsSetup.PrintCsError(errStr); + Assembly = LoadFromStream(mem); } } if (Assembly != null) + { return Assembly.GetTypes().Where(t => t.IsSubclassOf(typeof(ACsMod))).ToList(); + } else + { throw new Exception("Unable to create net mods assembly."); + } } private static string[] DirSearch(string sDir) diff --git a/Barotrauma/BarotraumaShared/SharedSource/LuaCs/Cs/CsScriptRunner.cs b/Barotrauma/BarotraumaShared/SharedSource/LuaCs/Cs/CsScriptRunner.cs index 697c8d693..b607e969e 100644 --- a/Barotrauma/BarotraumaShared/SharedSource/LuaCs/Cs/CsScriptRunner.cs +++ b/Barotrauma/BarotraumaShared/SharedSource/LuaCs/Cs/CsScriptRunner.cs @@ -89,28 +89,22 @@ namespace Barotrauma else { mem.Seek(0, SeekOrigin.Begin); - var errStr = CsScriptFilter.FilterOneTimeMetadata(new PEReader(mem).GetMetadataReader()); - if (errStr == null) + assembly = LoadFromStream(mem); + var runner = assembly.CreateInstance("NetOneTimeScript.NetOneTimeScriptRunner"); + if (runner != null) { - mem.Seek(0, SeekOrigin.Begin); - assembly = LoadFromStream(mem); - var runner = assembly.CreateInstance("NetOneTimeScript.NetOneTimeScriptRunner"); - if (runner != null) - { - var method = runner.GetType().GetMethod("Run", BindingFlags.Public | BindingFlags.Instance); - if (method != null) - { - scriptResilt = method.Invoke(runner, null); - foreach (var type in assembly.GetTypes()) - { - UserData.UnregisterType(type, true); - } + var method = runner.GetType().GetMethod("Run", BindingFlags.Public | BindingFlags.Instance); + if (method != null) + { + scriptResilt = method.Invoke(runner, null); + foreach (var type in assembly.GetTypes()) + { + UserData.UnregisterType(type, true); } - else LuaCsSetup.PrintCsError("Script Error - no run method detected"); } - else LuaCsSetup.PrintCsError("Script Error - no runner class detected"); + else { LuaCsSetup.PrintCsError("Script Error - no run method detected"); } } - else LuaCsSetup.PrintCsError(errStr); + else { LuaCsSetup.PrintCsError("Script Error - no runner class detected"); } } } Unload(); diff --git a/Barotrauma/BarotraumaShared/SharedSource/LuaCs/Lua/LuaClasses/LuaUserData.cs b/Barotrauma/BarotraumaShared/SharedSource/LuaCs/Lua/LuaClasses/LuaUserData.cs index 43f858c91..6736d9723 100644 --- a/Barotrauma/BarotraumaShared/SharedSource/LuaCs/Lua/LuaClasses/LuaUserData.cs +++ b/Barotrauma/BarotraumaShared/SharedSource/LuaCs/Lua/LuaClasses/LuaUserData.cs @@ -15,7 +15,7 @@ namespace Barotrauma if (type != null) return type; foreach (var a in AppDomain.CurrentDomain.GetAssemblies()) { - if (CsScriptFilter.LoadedAssemblyName.Contains(a.GetName().Name)) + if (CsScriptBase.LoadedAssemblyName.Contains(a.GetName().Name)) { var attrs = a.GetCustomAttributes(); var revision = attrs.FirstOrDefault(attr => attr.Key == "Revision")?.Value; @@ -23,7 +23,9 @@ namespace Barotrauma } type = a.GetType(typeName); if (type != null) + { return type; + } } return null; }