summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDrachenkaetzchen <felicia@drachenkatze.org>2020-01-15 17:42:46 +0100
committerDrachenkaetzchen <felicia@drachenkatze.org>2020-01-15 17:42:46 +0100
commit1d58a525fa170a8e0de3de38477c501fb83f0b5a (patch)
tree56c18c9d3e58fb6cde7e99af48f0fde260e3fc2c
parent694cca4b21878850ba6131105a0c560fdfbc5f10 (diff)
downloadSMAPI-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.cs12
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())