static Byte[] UpdateMonsterFile(FileReader reader, String jsonpath) { Assert.IsNotNull(reader, nameof(reader)); Assert.IsValidString(jsonpath, nameof(jsonpath)); var monsterfile = new MonsterDefinitionFile(reader); var json = JsonTextItemFileIO.ReadFromFile(jsonpath); var strings = json.Select(x => x.GetBestText()).ToList(); monsterfile.SetStrings(strings); return(monsterfile.Write(reader.Encoding)); }
public static void Run(IO.IFileSystem filesystem, Encoding encoding, String datapath) { Assert.IsNotNull(filesystem, nameof(filesystem)); Assert.IsNotNull(encoding, nameof(encoding)); Assert.IsValidString(datapath, nameof(datapath)); var data_text = Text.TextFileDescription.GetTextFileData(); var totalscenastringtable = new SortedSet <String>(); Directory.CreateDirectory(datapath); Directory.CreateDirectory(Path.Combine(datapath, "text")); Directory.CreateDirectory(Path.Combine(datapath, "scena")); Directory.CreateDirectory(Path.Combine(datapath, "monster")); foreach (var item in data_text) { Console.WriteLine(item.FileName); var textfilepath = Path.Combine(@"data\text", item.FileName); var jsonfilepath = Path.ChangeExtension(Path.Combine(datapath, "text", item.FileName), ".json"); using (var reader = filesystem.OpenFile(textfilepath, encoding)) { var strings = Text.TextFileIO.Read(reader, item.FilePointerDelegate); JsonTextItemFileIO.WriteToFile(strings.Select(x => new TextItem(x)).ToList(), jsonfilepath); } } foreach (var filepath in filesystem.GetChildren(@"data\scena", "*.bin")) { var filename = Path.GetFileName(filepath); Console.WriteLine(filename); var jsonfilepath = Path.ChangeExtension(Path.Combine(datapath, "scena", filename), ".json"); using (var reader = filesystem.OpenFile(filepath, encoding)) { var strings = ReadScenarioFile(reader); JsonTextItemFileIO.WriteToFile(strings.Item1.Select(x => new TextItem(x)).ToList(), jsonfilepath); strings.Item2.Where(x => String.IsNullOrWhiteSpace(x) == false).ForEach(x => totalscenastringtable.Add(x)); } } JsonTextItemFileIO.WriteToFile(totalscenastringtable.Select(x => new TextItem(x)).ToList(), Path.Combine(datapath, "stringtable.json")); foreach (var filepath in filesystem.GetChildren(@"data\battle\dat", "ms*.dat")) { var filename = Path.GetFileName(filepath); var jsonfilepath = Path.ChangeExtension(Path.Combine(datapath, "monster", filename), ".json"); Console.WriteLine(filename); using (var reader = filesystem.OpenFile(filepath, encoding)) { var monsterfile = new MonsterDefinitionFile(reader); var strings = monsterfile.GetStrings(); JsonTextItemFileIO.WriteToFile(strings.Select(x => new TextItem(x)).ToList(), jsonfilepath); } } Console.WriteLine(); Console.WriteLine("Done."); }