diff options
author | Drachenkaetzchen <felicia@drachenkatze.org> | 2020-01-15 17:42:46 +0100 |
---|---|---|
committer | Drachenkaetzchen <felicia@drachenkatze.org> | 2020-01-15 17:42:46 +0100 |
commit | 1d58a525fa170a8e0de3de38477c501fb83f0b5a (patch) | |
tree | 56c18c9d3e58fb6cde7e99af48f0fde260e3fc2c | |
parent | 694cca4b21878850ba6131105a0c560fdfbc5f10 (diff) | |
download | SMAPI-1d58a525fa170a8e0de3de38477c501fb83f0b5a.tar.gz SMAPI-1d58a525fa170a8e0de3de38477c501fb83f0b5a.tar.bz2 SMAPI-1d58a525fa170a8e0de3de38477c501fb83f0b5a.zip |
Added optional right-align for the table output
-rw-r--r-- | src/SMAPI.Mods.ConsoleCommands/Framework/Commands/TrainerCommand.cs | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/src/SMAPI.Mods.ConsoleCommands/Framework/Commands/TrainerCommand.cs b/src/SMAPI.Mods.ConsoleCommands/Framework/Commands/TrainerCommand.cs index 466b8f6e..8f0d89ba 100644 --- a/src/SMAPI.Mods.ConsoleCommands/Framework/Commands/TrainerCommand.cs +++ b/src/SMAPI.Mods.ConsoleCommands/Framework/Commands/TrainerCommand.cs @@ -66,7 +66,8 @@ namespace StardewModdingAPI.Mods.ConsoleCommands.Framework.Commands /// <param name="data">The data to display.</param> /// <param name="header">The table header.</param> /// <param name="getRow">Returns a set of fields for a data value.</param> - protected string GetTableString<T>(IEnumerable<T> data, string[] header, Func<T, string[]> getRow) + /// <param name="rightAlign">True to right-align the data, false for left-align. Default false.</param> + protected string GetTableString<T>(IEnumerable<T> data, string[] header, Func<T, string[]> getRow, bool rightAlign = false) { // get table data int[] widths = header.Select(p => p.Length).ToArray(); @@ -92,6 +93,15 @@ namespace StardewModdingAPI.Mods.ConsoleCommands.Framework.Commands }; lines.AddRange(rows); + if (rightAlign) + { + return string.Join( + Environment.NewLine, + lines.Select(line => string.Join(" | ", line.Select((field, i) => field.PadLeft(widths[i], ' ')).ToArray()) + ) + ); + } + return string.Join( Environment.NewLine, lines.Select(line => string.Join(" | ", line.Select((field, i) => field.PadRight(widths[i], ' ')).ToArray()) |