using Newtonsoft.Json; using SpaceEngineersBlueprintEditor.SpaceEngineersCore; using System.Diagnostics; using VRage.Game; using System.Runtime.CompilerServices; using RuntimeGameAssemblyLoader = SpaceEngineersBlueprintEditor.GameAssemblyLoader.GameAssemblyLoader; namespace SpaceEngineersBlueprintEditor.Test; internal class Program { [SMTest] public static void TestMethod() { var gameRoot = RuntimeGameAssemblyLoader.EnsureInitialized(); RunTest(gameRoot); } [MethodImpl(MethodImplOptions.NoInlining)] private static void RunTest(string gameRoot) { Initializer.Initialize( Path.Combine(gameRoot, "Content"), Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData), "SpaceEngineers")); var blueprint = SpaceEngineerDefinitions.Load(@"C:\Users\XFEstudio\AppData\Roaming\SpaceEngineers\Blueprints\local\寰宇号(大型武装殖民飞船)[Infinity Edition] V6_8_6\bp.sbc"); var process = new Process(); process.StartInfo.FileName = @"C:\Users\XFEstudio\Desktop\work\C#\GitHub\XFEstudio\SpaceEngineersBlueprintEditor\SpaceEngineersBlueprintEditor.BlueprintConverter\bin\Debug\net48\SpaceEngineersBlueprintEditor.BlueprintConverter.exe"; var jsonString = JsonConvert.SerializeObject(blueprint, new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.Auto }); File.WriteAllText("TestJson", jsonString); process.StartInfo.RedirectStandardInput = true; process.StartInfo.RedirectStandardOutput = true; process.StartInfo.RedirectStandardError = true; process.StartInfo.ArgumentList.Add("TestJson"); process.StartInfo.UseShellExecute = false; process.StartInfo.CreateNoWindow = false; process.Start(); do { try { Console.Write((char)process.StandardOutput.Read()); } catch (Exception ex) { Console.WriteLine(ex.ToString()); } } while (!process.HasExited); } }