aboutsummaryrefslogtreecommitdiff
path: root/BatchGrfToJson
diff options
context:
space:
mode:
Diffstat (limited to 'BatchGrfToJson')
-rw-r--r--BatchGrfToJson/BatchGrfToJson.csproj10
-rw-r--r--BatchGrfToJson/Program.cs19
2 files changed, 29 insertions, 0 deletions
diff --git a/BatchGrfToJson/BatchGrfToJson.csproj b/BatchGrfToJson/BatchGrfToJson.csproj
new file mode 100644
index 0000000..2f4fc77
--- /dev/null
+++ b/BatchGrfToJson/BatchGrfToJson.csproj
@@ -0,0 +1,10 @@
+<Project Sdk="Microsoft.NET.Sdk">
+
+ <PropertyGroup>
+ <OutputType>Exe</OutputType>
+ <TargetFramework>net8.0</TargetFramework>
+ <ImplicitUsings>enable</ImplicitUsings>
+ <Nullable>enable</Nullable>
+ </PropertyGroup>
+
+</Project>
diff --git a/BatchGrfToJson/Program.cs b/BatchGrfToJson/Program.cs
new file mode 100644
index 0000000..4c8793f
--- /dev/null
+++ b/BatchGrfToJson/Program.cs
@@ -0,0 +1,19 @@
+// See https://aka.ms/new-console-template for more information
+using System.Text.Json;
+using OMI.Formats.GameRule;
+using OMI.Workers.GameRule;
+
+string dir = args[0];
+string[] files = Directory.GetFiles(dir, "*.grf", SearchOption.TopDirectoryOnly);
+
+foreach(string filename in files) {
+ GameRuleFileReader reader = new GameRuleFileReader(0);
+ GameRuleFile grf = reader.FromFile(filename);
+
+ var options = new JsonSerializerOptions();
+ options.WriteIndented = true;
+ var json = JsonSerializer.Serialize(grf.Root.ChildRules, options);
+
+ File.WriteAllText(filename+".json", json);
+ Console.WriteLine("Processed "+filename);
+} \ No newline at end of file