using Il2CppInspector.Model; using Il2CppInspector.Outputs; namespace Il2CppInspector.Redux.GUI.Outputs; public class VsSolutionOutput : IOutputFormatProvider { public static string Id => "vssolution"; private class Settings(Dictionary settings) { public readonly string UnityPath = settings.GetValueOrDefault("unitypath", ""); public readonly string UnityAssembliesPath = settings.GetValueOrDefault("assembliespath", ""); } public async Task Export(AppModel model, UiClient client, string outputPath, Dictionary settingsDict) { var settings = new Settings(settingsDict); var writer = new CSharpCodeStubs(model.TypeModel) { MustCompile = true, SuppressMetadata = true }; await client.ShowLogMessage("Writing Visual Studio solution"); writer.WriteSolution(outputPath, settings.UnityPath, settings.UnityAssembliesPath); } }