private static Boolean ReadEmbadedText(Int32 fieldZoneId, out String[] text) { String path = EmbadedTextResources.GetCurrentPath("/Field/" + FF9TextToolInterceptor.GetFieldTextFileName(fieldZoneId) + ".mes"); String raw = EmbadedSentenseLoader.LoadText(path); if (raw != null) { raw = TextOpCodeModifier.Modify(raw); text = FF9TextToolInterceptor.ExtractSentense(raw); return(true); } text = null; return(false); }
public void Export() { try { String directory = ModTextResources.Export.FieldsDirectory; if (Directory.Exists(directory)) { Log.Warning($"[{nameof(FieldExporter)}] Some fields refer to each other. They should be exported together."); Log.Warning($"[{nameof(FieldExporter)}] Export was skipped bacause the directory already exists: [{directory}]."); return; } Log.Message($"[{nameof(FieldExporter)}] Exporting..."); FieldFormatter formatter = new FieldFormatter(); foreach (KeyValuePair <Int32, String> pair in FF9DBAll.EventDB) { Int32 fieldZoneId = pair.Key; String path = EmbadedTextResources.GetCurrentPath("/Field/" + GetFieldTextFileName(fieldZoneId) + ".mes"); String text = EmbadedSentenseLoader.LoadText(path); if (text == null) { continue; } String name = fieldZoneId.ToString("D4", CultureInfo.InvariantCulture) + '_' + pair.Value; text = TextOpCodeModifier.Modify(text); String[] lines = FF9TextToolInterceptor.ExtractSentense(text); TxtEntry[] commands = formatter.Build(name, lines); Directory.CreateDirectory(directory); String outputPath = Path.Combine(directory, name + ".strings"); TxtWriter.WriteStrings(outputPath, commands); } ExportTags(directory, formatter); Log.Message($"[{nameof(FieldExporter)}] Exporting completed successfully."); } catch (Exception ex) { Log.Error(ex, $"[{nameof(FieldExporter)}] Failed to export resource."); } }