public static int ConvertToYarn(ConvertFormatOptions options) { foreach (var file in options.files) { if (YarnSpinnerLoader.GetFormatFromFileName(file) == NodeFormat.Text) { Debug.LogWarning(string.Format("Not converting file {0}, because its name implies it's already in Yarn format", file)); continue; } ConvertNodesInFile(options, file, "yarn.txt", ConvertNodesToYarnText); } return(0); }
public static int ConvertToJSON(ConvertFormatOptions options) { foreach (var file in options.files) { if (YarnSpinnerLoader.GetFormatFromFileName(file) == NodeFormat.JSON) { Debug.LogWarning(string.Format("Not converting file {0}, because its name implies it's already in JSON format", file)); continue; } ConvertNodesInFile(options, file, "json", (IEnumerable <YarnSpinnerLoader.NodeInfo> nodes) => JsonConvert.SerializeObject(nodes, Formatting.Indented)); } return(0); }
static internal int ConvertFormat(ConvertFormatOptions options) { YarnSpinnerConsole.CheckFileList(options.files, YarnSpinnerConsole.ALLOWED_EXTENSIONS); if (options.convertToYarn) { return(ConvertToYarn(options)); } var processName = System.IO.Path.GetFileName(Environment.GetCommandLineArgs()[0]); YarnSpinnerConsole.Error(string.Format(CultureInfo.CurrentCulture, "You must specify a destination format. Run '{0} help convert' to learn more.", processName)); return(1); }
static int ConvertToYarn(ConvertFormatOptions options) { foreach (var file in options.files) { if (Loader.GetFormatFromFileName(file) == NodeFormat.Text) { YarnSpinnerConsole.Warn(string.Format(CultureInfo.CurrentCulture, "Not converting file {0}, because its name implies it's already in Yarn format", file)); continue; } ConvertNodesInFile(options, file, "yarn.txt", ConvertNodesToYarnText); } return(0); }
public static int ConvertFormat(ConvertFormatOptions options) { CheckFileList(options.files, ALLOWED_EXTENSIONS); if (options.convertToJSON) { return(ConvertToJSON(options)); } if (options.convertToYarn) { return(ConvertToYarn(options)); } // var processName = System.IO.Path.GetFileName(Environment.GetCommandLineArgs()[0]); // YarnSpinnerConsole.Error(string.Format("You must specify a destination format. Run '{0} help convert' to learn more.", processName)); return(1); }
public static void ConvertNodesInFile(ConvertFormatOptions options, string file, string fileExtension, ConvertNodesToText convert) { // var d = new Dialogue(null); var text = File.ReadAllText(file); IEnumerable <YarnSpinnerLoader.NodeInfo> nodes; try { nodes = YarnSpinnerLoader.GetNodesFromText(text, YarnSpinnerLoader.GetFormatFromFileName(file)); } catch (FormatException e) { Debug.LogError(e.Message); return; } var serialisedText = convert(nodes); var destinationDirectory = options.outputDirectory; if (destinationDirectory == null) { destinationDirectory = Path.GetDirectoryName(file); } var fileName = Path.GetFileName(file); // ChangeExtension thinks that the file "Foo.yarn.txt" has the extension "txt", so // to simplify things, just lop that extension off right away if it's there fileName = fileName.Replace(".yarn.txt", ""); // change the filename's extension fileName = Path.ChangeExtension(fileName, fileExtension); // figure out where we're writing this file var destinationFilePath = Path.Combine(destinationDirectory, fileName); File.WriteAllText(destinationFilePath, serialisedText); if (options.verbose) { Debug.Log("Wrote " + destinationFilePath); } }