├── Directory.Build.props ├── RMMVCookTool.CLI ├── Brick-02-WF.ico ├── Program.cs ├── RMMVCookTool.CLI.csproj ├── SetupMenu.cs ├── Properties │ ├── Resources.resx │ └── Resources.el.resx └── CompilerEngine.cs ├── RMMVCookTool.GUI ├── Brick-02-WF.ico ├── Docs │ ├── Manual.pdf │ └── Manual.el.pdf ├── Views │ ├── MainView.xaml.cs │ ├── AboutView.xaml.cs │ ├── MetadataEditorView.xaml.cs │ ├── ProjectSettingsView.xaml.cs │ ├── AboutView.xaml │ ├── ProjectSettingsView.xaml │ ├── MainView.xaml │ └── MetadataEditorView.xaml ├── App.xaml ├── AssemblyInfo.cs ├── MainWindow.xaml.cs ├── App.xaml.cs ├── ViewModels │ ├── AboutViewModel.cs │ ├── ProjectSettingsViewModel.cs │ └── MetadataEditorViewModel.cs ├── RMMVCookTool.GUI.csproj ├── MessageDialog.cs ├── MainWindow.xaml ├── app.manifest └── Properties │ ├── Resources.resx │ └── Resources.el.resx ├── .github ├── dependabot.yml ├── ISSUE_TEMPLATE │ ├── feature_request.md │ └── bug_report.md └── FUNDING.yml ├── RMMVCookTool.Core ├── Compiler │ ├── CompilerErrorReport.cs │ ├── CompilerProjectBase.cs │ └── CompilerProject.cs ├── CompilerSettings │ ├── SettingsMetadata.cs │ ├── SettingsMetadataSerializer.cs │ └── CompilerSettingsManager.cs ├── ProjectTemplate │ ├── ProjectMetadataSerializer.cs │ └── ProjectMetadata.cs ├── ProjectSettings.cs ├── RMMVCookTool.Core.csproj └── Utilities │ └── CompilerUtilities.cs ├── .config └── dotnet-tools.json ├── crowdin.yml ├── azure-pipelines.yml ├── LICENSE ├── README.md ├── RMMVCookTool.sln ├── .gitignore └── .editorconfig /Directory.Build.props: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FirehawkV21/RMMVCookTool/HEAD/Directory.Build.props -------------------------------------------------------------------------------- /RMMVCookTool.CLI/Brick-02-WF.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FirehawkV21/RMMVCookTool/HEAD/RMMVCookTool.CLI/Brick-02-WF.ico -------------------------------------------------------------------------------- /RMMVCookTool.GUI/Brick-02-WF.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FirehawkV21/RMMVCookTool/HEAD/RMMVCookTool.GUI/Brick-02-WF.ico -------------------------------------------------------------------------------- /RMMVCookTool.GUI/Docs/Manual.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FirehawkV21/RMMVCookTool/HEAD/RMMVCookTool.GUI/Docs/Manual.pdf -------------------------------------------------------------------------------- /RMMVCookTool.GUI/Docs/Manual.el.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/FirehawkV21/RMMVCookTool/HEAD/RMMVCookTool.GUI/Docs/Manual.el.pdf -------------------------------------------------------------------------------- /.github/dependabot.yml: -------------------------------------------------------------------------------- 1 | version: 2 2 | updates: 3 | - package-ecosystem: nuget 4 | directory: "/" 5 | schedule: 6 | interval: daily 7 | time: "03:00" 8 | open-pull-requests-limit: 10 9 | -------------------------------------------------------------------------------- /RMMVCookTool.Core/Compiler/CompilerErrorReport.cs: -------------------------------------------------------------------------------- 1 | namespace RMMVCookTool.Core.Compiler; 2 | public record CompilerErrorReport 3 | { 4 | public int ErrorCode { get; set; } 5 | public string ErrorMessage { get; set; } 6 | } 7 | -------------------------------------------------------------------------------- /.config/dotnet-tools.json: -------------------------------------------------------------------------------- 1 | { 2 | "version": 1, 3 | "isRoot": true, 4 | "tools": { 5 | "cake.tool": { 6 | "version": "5.0.0", 7 | "commands": [ 8 | "dotnet-cake" 9 | ] 10 | } 11 | } 12 | } -------------------------------------------------------------------------------- /RMMVCookTool.Core/CompilerSettings/SettingsMetadata.cs: -------------------------------------------------------------------------------- 1 | namespace RMMVCookTool.Core.CompilerSettings; 2 | 3 | public sealed record SettingsMetadata 4 | { 5 | public string NwjsLocation { get; set; } = ""; 6 | public ProjectSettings DefaultProjectSettings { get; set; } = new(); 7 | } 8 | -------------------------------------------------------------------------------- /RMMVCookTool.GUI/Views/MainView.xaml.cs: -------------------------------------------------------------------------------- 1 | using System.Windows.Controls; 2 | 3 | namespace RMMVCookTool.GUI.Views; 4 | /// 5 | /// Interaction logic for MainView.xaml 6 | /// 7 | public sealed partial class MainView : UserControl 8 | { 9 | public MainView() => InitializeComponent(); 10 | } 11 | -------------------------------------------------------------------------------- /RMMVCookTool.GUI/Views/AboutView.xaml.cs: -------------------------------------------------------------------------------- 1 | using System.Windows.Controls; 2 | 3 | namespace RMMVCookTool.GUI.Views; 4 | /// 5 | /// Interaction logic for AboutView.xaml 6 | /// 7 | public sealed partial class AboutView : UserControl 8 | { 9 | public AboutView() => InitializeComponent(); 10 | } 11 | -------------------------------------------------------------------------------- /RMMVCookTool.GUI/Views/MetadataEditorView.xaml.cs: -------------------------------------------------------------------------------- 1 | using System.Windows.Controls; 2 | 3 | namespace RMMVCookTool.GUI.Views; 4 | /// 5 | /// Interaction logic for MetadataEditorView.xaml 6 | /// 7 | public sealed partial class MetadataEditorView : UserControl 8 | { 9 | public MetadataEditorView() => InitializeComponent(); 10 | } 11 | -------------------------------------------------------------------------------- /RMMVCookTool.GUI/Views/ProjectSettingsView.xaml.cs: -------------------------------------------------------------------------------- 1 | using System.Windows.Controls; 2 | 3 | namespace RMMVCookTool.GUI.Views; 4 | /// 5 | /// Interaction logic for ProjectSettingsView.xaml 6 | /// 7 | public sealed partial class ProjectSettingsView : UserControl 8 | { 9 | public ProjectSettingsView() => InitializeComponent(); 10 | } 11 | -------------------------------------------------------------------------------- /RMMVCookTool.Core/CompilerSettings/SettingsMetadataSerializer.cs: -------------------------------------------------------------------------------- 1 | using System.Text.Json.Serialization; 2 | 3 | namespace RMMVCookTool.Core.CompilerSettings; 4 | 5 | [JsonSourceGenerationOptions(GenerationMode = JsonSourceGenerationMode.Default)] 6 | [JsonSerializable(typeof(SettingsMetadata))] 7 | public sealed partial class SettingsMetadataSerializer : JsonSerializerContext 8 | { 9 | } 10 | -------------------------------------------------------------------------------- /RMMVCookTool.Core/ProjectTemplate/ProjectMetadataSerializer.cs: -------------------------------------------------------------------------------- 1 | using System.Text.Json.Serialization; 2 | 3 | namespace RMMVCookTool.Core.ProjectTemplate; 4 | 5 | [JsonSourceGenerationOptions(GenerationMode = JsonSourceGenerationMode.Default)] 6 | [JsonSerializable(typeof(ProjectMetadata))] 7 | public sealed partial class ProjectMetadataSerializer : JsonSerializerContext 8 | { 9 | 10 | } 11 | -------------------------------------------------------------------------------- /RMMVCookTool.Core/ProjectSettings.cs: -------------------------------------------------------------------------------- 1 | namespace RMMVCookTool.Core; 2 | public sealed record ProjectSettings 3 | { 4 | public string FileExtension { get; set; } = "bin"; 5 | public int CompressionLevel { get; set; } = 0; 6 | public bool RemoveSourceFiles { get; set; } = false; 7 | public bool CompressProjectFiles { get; set; } = false; 8 | public bool RemoveFilesAfterCompression { get; set; } = false; 9 | } 10 | -------------------------------------------------------------------------------- /RMMVCookTool.GUI/App.xaml: -------------------------------------------------------------------------------- 1 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /crowdin.yml: -------------------------------------------------------------------------------- 1 | files: 2 | - source: /RMMVCookTool.CLI/Properties/ 3 | ignore: 4 | - /RMMVCookTool.CLI/Properties/Resources.*.resx 5 | - /RMMVCookTool.CLI/Properties/Resources.*.cs 6 | translation: /RMMVCookTool.CLI/Properties/Resources.%locale%.resx 7 | - source: /RMMVCookTool.GUI/Properties/ 8 | ignore: 9 | - /RMMVCookTool.GUI/Properties/Resources.*.resx 10 | - /RMMVCookTool.GUI/Properties/Resources.*.cs 11 | translation: /RMMVCookTool.GUI/Properties/Resources.%locale%.resx 12 | -------------------------------------------------------------------------------- /RMMVCookTool.Core/Compiler/CompilerProjectBase.cs: -------------------------------------------------------------------------------- 1 | global using System; 2 | global using System.Diagnostics; 3 | global using System.Runtime.InteropServices; 4 | global using System.Collections.Generic; 5 | global using System.Linq; 6 | global using System.IO; 7 | 8 | namespace RMMVCookTool.Core.Compiler; 9 | 10 | public class CompilerProjectBase 11 | { 12 | public Lazy CompilerInfo { get; } = new Lazy(() => new ProcessStartInfo(), true); 13 | protected static readonly string ArchiveName = RuntimeInformation.IsOSPlatform(OSPlatform.OSX) ? "app.nw" : "package.nw"; 14 | } 15 | -------------------------------------------------------------------------------- /RMMVCookTool.GUI/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | 2 | [assembly: ThemeInfo( 3 | ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located 4 | //(used if a resource is not found in the page, 5 | // or application resource dictionaries) 6 | ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located 7 | //(used if a resource is not found in the page, 8 | // app, or any theme specific resource dictionaries) 9 | )] 10 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | 5 | --- 6 | 7 | **Is your feature request related to a problem? Please describe.** 8 | A clear and concise description of what the problem is. Ex. I'm always frustrated when \[...] 9 | 10 | **Describe the solution you'd like** 11 | A clear and concise description of what you want to happen. 12 | 13 | **Describe alternatives you've considered** 14 | A clear and concise description of any alternative solutions or features you've considered. 15 | 16 | **Additional context** 17 | Add any other context or screenshots about the feature request here. 18 | -------------------------------------------------------------------------------- /RMMVCookTool.Core/RMMVCookTool.Core.csproj: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 2.0.11.23283 5 | 2.0.11.23283 6 | 2.0.11-20230706 7 | RPG Maker MV Cook Tool Core 8 | The core library of the RPG Maker MV Cook Tool. 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | github: # Replace with up to 4 GitHub Sponsors-enabled usernames e.g., [user1, user2] 4 | patreon: aceofaces # Replace with a single Patreon username 5 | open_collective: # Replace with a single Open Collective username 6 | ko_fi: AceOfAces 7 | tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel 8 | community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry 9 | liberapay: # Replace with a single Liberapay username 10 | issuehunt: # Replace with a single IssueHunt username 11 | otechie: # Replace with a single Otechie username 12 | custom: # Replace with up to 4 custom sponsorship URLs e.g., ['link1', 'link2'] 13 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | 5 | --- 6 | 7 | **Describe the bug** 8 | A clear and concise description of what the bug is. 9 | 10 | **To Reproduce** 11 | Steps to reproduce the behavior: 12 | 1. Go to '...' 13 | 2. Click on '....' 14 | 3. Scroll down to '....' 15 | 4. See error 16 | 17 | **Expected behavior** 18 | A clear and concise description of what you expected to happen. 19 | 20 | **Screenshots** 21 | If applicable, add screenshots to help explain your problem. 22 | 23 | **Desktop (please complete the following information):** 24 | - OS: \[e.g. Windows] 25 | - Release/Distro \[e.g. Windows 10, Ubuntu] 26 | - Version \[e.g. 1709, 18.04] 27 | - System Architecture \[e.g. 64-bit, arm32] 28 | - .NET Runtime \[e.g. .NET Framework 4.7.2] 29 | 30 | **Additional context** 31 | Add any other context about the problem here. 32 | -------------------------------------------------------------------------------- /azure-pipelines.yml: -------------------------------------------------------------------------------- 1 | # .NET Desktop 2 | 3 | # Build and run tests for .NET Desktop or Windows classic desktop solutions. 4 | # Add steps that publish symbols, save build artifacts, and more: 5 | # https://docs.microsoft.com/azure/devops/pipelines/apps/windows/dot-net 6 | 7 | trigger: 8 | - master 9 | 10 | pool: 11 | vmImage: 'windows-2022' 12 | 13 | variables: 14 | solution: '**/*.sln' 15 | buildPlatform: 'Any CPU' 16 | buildConfiguration: 'Release' 17 | 18 | steps: 19 | - task: UseDotNet@2 20 | inputs: 21 | packageType: 'sdk' 22 | version: '7.0.202' 23 | 24 | - task: DotNetCoreCLI@2 25 | inputs: 26 | command: 'build' 27 | projects: 'RMMVCookTool.CLI\RMMVCookTool.CLI.csproj' 28 | 29 | 30 | 31 | - task: DotNetCoreCLI@2 32 | inputs: 33 | command: 'build' 34 | projects: 'RMMVCookTool.GUI\RMMVCookTool.GUI.csproj' 35 | 36 | - task: VSTest@2 37 | inputs: 38 | platform: '$(buildPlatform)' 39 | configuration: '$(buildConfiguration)' -------------------------------------------------------------------------------- /RMMVCookTool.GUI/MainWindow.xaml.cs: -------------------------------------------------------------------------------- 1 | using System.ComponentModel; 2 | using System.Reflection; 3 | using Prism; 4 | using Prism.Navigation.Regions; 5 | using RMMVCookTool.Core.Utilities; 6 | 7 | namespace RMMVCookTool.GUI; 8 | 9 | /// 10 | /// Interaction logic for MainWindow.xaml 11 | /// 12 | public sealed partial class MainWindow : Window 13 | { 14 | public MainWindow(IRegionManager regionManager) 15 | { 16 | InitializeComponent(); 17 | regionManager.RegisterViewWithRegion("MainShell", typeof(Views.MainView)); 18 | regionManager.RegisterViewWithRegion("SecondaryShell", typeof(Views.AboutView)); 19 | } 20 | 21 | private void Window_Loaded(object sender, RoutedEventArgs e) 22 | { 23 | CompilerUtilities.StartEngineLogger("CompilerGUI", true); 24 | CompilerUtilities.RecordToLog($"Cook Tool GUI, version {Assembly.GetExecutingAssembly().GetName().Version} started.", 0); 25 | } 26 | 27 | private void Window_Closing(object sender, CancelEventArgs e) => CompilerUtilities.CloseLog(); 28 | } 29 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 Studio ACE 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /RMMVCookTool.CLI/Program.cs: -------------------------------------------------------------------------------- 1 | using RMMVCookTool.CLI.Properties; 2 | using RMMVCookTool.Core.Utilities; 3 | using System; 4 | using System.Reflection; 5 | 6 | namespace RMMVCookTool.CLI; 7 | 8 | internal sealed class Program 9 | { 10 | private static readonly CompilerEngine engine = new(); 11 | 12 | private static void Main(string[] args) 13 | { 14 | #region Print App Info 15 | CompilerUtilities.StartEngineLogger("CompilerCLI", false); 16 | Console.WriteLine(Resources.SpilterText); 17 | Console.WriteLine(Resources.ProgramNameText); 18 | Console.WriteLine(Resources.ProgramVersionString, Assembly.GetExecutingAssembly().GetCustomAttribute()?.InformationalVersion); 19 | Console.WriteLine(Resources.ProgramAuthorText); 20 | Console.WriteLine(Resources.ProgramLicenseText); 21 | Console.WriteLine(Resources.SpilterText); 22 | CompilerUtilities.RecordToLog($"Cook Tool CLI, version {Assembly.GetExecutingAssembly().GetName().Version} started.", 0); 23 | #endregion 24 | if (args.Length >= 1) engine.ProcessCommandLineArguments(args); 25 | else engine.StartSetup(); 26 | engine.StartWorker(); 27 | 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /RMMVCookTool.GUI/App.xaml.cs: -------------------------------------------------------------------------------- 1 | global using System; 2 | global using System.Windows; 3 | global using RMMVCookTool.GUI.Properties; 4 | global using Ookii.Dialogs.Wpf; 5 | global using System.IO; 6 | using Prism.DryIoc; 7 | using Prism.Ioc; 8 | using System.Runtime; 9 | 10 | namespace RMMVCookTool.GUI; 11 | 12 | /// 13 | /// Interaction logic for App.xaml 14 | /// 15 | public sealed partial class App : PrismApplication 16 | { 17 | public App() 18 | { 19 | string ProfilePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "RMMVCookTool", "JITProfile"); 20 | if (!Directory.Exists(ProfilePath)) Directory.CreateDirectory(ProfilePath); 21 | ProfileOptimization.SetProfileRoot(ProfilePath); 22 | ProfileOptimization.StartProfile("MVCookToolUI.Profile"); 23 | } 24 | protected override void RegisterTypes(IContainerRegistry containerRegistry) 25 | { 26 | containerRegistry.RegisterDialog("ProjectSettings"); 27 | containerRegistry.RegisterDialog("MetadataEditor"); 28 | // register other needed services here 29 | } 30 | 31 | protected override Window CreateShell() 32 | { 33 | MainWindow w = Container.Resolve(); 34 | return w; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /RMMVCookTool.GUI/Views/AboutView.xaml: -------------------------------------------------------------------------------- 1 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 |