Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.IO;
- using System.Collections.Generic;
- namespace JSONtoACEConverter
- {
- class Program
- {
- static void EnsureDirectoryExists(string filePath)
- {
- FileInfo fi = new FileInfo(filePath);
- if (!fi.Directory.Exists)
- Directory.CreateDirectory(fi.DirectoryName);
- }
- static void Main(string[] args)
- {
- if (args != null && args.Length > 0)
- {
- if (!args[0].Contains(".json"))
- {
- FileInfo fileInfo = new FileInfo(args[0]);
- if (fileInfo.Directory.Exists)
- {
- if (ACE.Adapter.Lifestoned.LifestonedLoader.TryLoadWeenies(args[0], out List<Lifestoned.DataModel.Gdle.Weenie> gdleResults))
- {
- foreach (var gdleResult in gdleResults)
- {
- if (ACE.Adapter.Lifestoned.LifestonedConverter.TryConvert(gdleResult, out ACE.Database.Models.World.Weenie aceResult))
- {
- var weenieSQLWriter = new ACE.Database.SQLFormatters.World.WeenieSQLWriter();
- string folderName = weenieSQLWriter.GetDefaultSubfolder(aceResult);
- string fileName = weenieSQLWriter.GetDefaultFileName(aceResult);
- var substring = fileName.Substring(6);
- string name = substring;
- int charLocation = substring.IndexOf(".", StringComparison.Ordinal);
- if (charLocation > 0)
- name = substring.Substring(0, charLocation);
- var classID = aceResult.ClassId.ToString("00000");
- EnsureDirectoryExists(folderName);
- using (StreamWriter outputFile = new StreamWriter(Path.Combine(folderName, fileName)))
- {
- // Create the file header
- outputFile.WriteLine("--");
- outputFile.WriteLine("--Current Database: `ace_world`");
- outputFile.WriteLine("--");
- outputFile.WriteLine();
- outputFile.WriteLine("USE `ace_world`;");
- outputFile.WriteLine();
- outputFile.WriteLine($"/* Weenie - {name} ({classID}) */");
- weenieSQLWriter.CreateSQLDELETEStatement(aceResult, outputFile);
- outputFile.WriteLine();
- weenieSQLWriter.CreateSQLINSERTStatement(aceResult, outputFile);
- outputFile.WriteLine();
- }
- }
- else
- Console.WriteLine($"JSON data conversion failed for {gdleResult.Name}.");
- }
- }
- else
- Console.WriteLine("JSON files loading failed.");
- }
- else
- Console.WriteLine("Invalid Path.");
- }
- else
- {
- if (File.Exists(args[0]))
- {
- string result;
- switch(args[0])
- {
- case "worldspawn.json":
- result = GDLEWorldSpawnDataConverter(args[0]);
- if (result != null)
- Console.WriteLine(result);
- break;
- case "events.json":
- break;
- case "quests.json":
- break;
- case "spells.json":
- break;
- case "recipes.json":
- break;
- default:
- result = WeenieDataConverter(args[0]);
- if (result != null)
- Console.WriteLine(result);
- break;
- }
- }
- else
- Console.WriteLine("Supplied file failed to open.");
- }
- }
- else
- Console.WriteLine("No input provided.");
- }
- static string WeenieDataConverter(string file)
- {
- if (ACE.Adapter.Lifestoned.LifestonedLoader.TryLoadWeenie(file, out Lifestoned.DataModel.Gdle.Weenie gdleResult))
- {
- if (ACE.Adapter.Lifestoned.LifestonedConverter.TryConvert(gdleResult, out ACE.Database.Models.World.Weenie aceResult))
- {
- var weenieSQLWriter = new ACE.Database.SQLFormatters.World.WeenieSQLWriter();
- string folderName = weenieSQLWriter.GetDefaultSubfolder(aceResult);
- string fileName = weenieSQLWriter.GetDefaultFileName(aceResult);
- var substring = fileName.Substring(6);
- string name = substring;
- int charLocation = substring.IndexOf(".", StringComparison.Ordinal);
- if (charLocation > 0)
- name = substring.Substring(0, charLocation);
- var classID = aceResult.ClassId.ToString("00000");
- EnsureDirectoryExists(folderName);
- using (StreamWriter outputFile = new StreamWriter(Path.Combine(folderName, fileName)))
- {
- // Create the file header
- outputFile.WriteLine("--");
- outputFile.WriteLine("--Current Database: `ace_world`");
- outputFile.WriteLine("--");
- outputFile.WriteLine();
- outputFile.WriteLine("USE `ace_world`;");
- outputFile.WriteLine();
- outputFile.WriteLine($"/* Weenie - {name} ({classID}) */");
- weenieSQLWriter.CreateSQLDELETEStatement(aceResult, outputFile);
- outputFile.WriteLine();
- weenieSQLWriter.CreateSQLINSERTStatement(aceResult, outputFile);
- outputFile.WriteLine();
- }
- }
- else
- return "JSON data conversion failed.";
- }
- else
- return "JSON file load failed.";
- return null;
- }
- static string GDLEWorldSpawnDataConverter(string file)
- {
- if (ACE.Adapter.GDLE.GDLELoader.TryLoadWorldSpawnsConverted(file, out List<ACE.Database.Models.World.LandblockInstance> results, out List<ACE.Database.Models.World.LandblockInstanceLink> links))
- {
- var worldSpawnSQLWriter = new ACE.Database.SQLFormatters.World.LandblockInstanceWriter();
- }
- else
- return "JSON file load and conversion failed.";
- return null;
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment