mirror of
https://github.com/MCCTeam/Minecraft-Console-Client
synced 2026-08-15 13:04:36 +00:00
Cosmetic changes, UX/UI improvements in TUI mode, added colored text support in dialogs
This commit is contained in:
parent
2aa85cbb17
commit
c0d983272b
9 changed files with 321 additions and 105 deletions
|
|
@ -11,17 +11,21 @@ public static class DialogFormatter
|
|||
if (!string.IsNullOrWhiteSpace(definition.ExternalTitle))
|
||||
return definition.ExternalTitle!;
|
||||
|
||||
return string.IsNullOrWhiteSpace(definition.Title) ? definition.Type : definition.Title;
|
||||
return string.IsNullOrWhiteSpace(definition.Title) ? DisplayType(definition.Type) : definition.Title;
|
||||
}
|
||||
|
||||
private const int BoxWidth = 50;
|
||||
|
||||
public static string Render(DialogInstance instance)
|
||||
{
|
||||
StringBuilder builder = new();
|
||||
builder.AppendLine(string.Format(Translations.dialog_render_header, instance.Revision, instance.Phase, instance.Definition.DisplayTitle()));
|
||||
builder.AppendLine(string.Format(Translations.dialog_render_type, DisplayType(instance.Definition.Type)));
|
||||
string border = new('-', BoxWidth);
|
||||
builder.AppendLine(border);
|
||||
builder.AppendLine(" " + string.Format(Translations.dialog_render_header, instance.Revision, instance.Phase, instance.Definition.DisplayTitle()));
|
||||
builder.AppendLine(border);
|
||||
|
||||
foreach (var body in instance.Definition.Body.Where(static body => !string.IsNullOrWhiteSpace(body.Text)))
|
||||
builder.AppendLine(string.Format(Translations.dialog_render_body, body.Text));
|
||||
builder.AppendLine(body.Text);
|
||||
|
||||
if (instance.Definition.Inputs.Count > 0)
|
||||
{
|
||||
|
|
@ -30,7 +34,7 @@ public static class DialogFormatter
|
|||
{
|
||||
instance.Values.TryGetValue(input.Key, out var value);
|
||||
value ??= input.InitialValue;
|
||||
builder.AppendLine(string.Format(Translations.dialog_render_input, input.Key, input.Kind, input.Label, value, DescribeInput(input)));
|
||||
builder.AppendLine(string.Format(Translations.dialog_render_input, input.Key, DescribeKind(input.Kind), input.Label, value, DescribeInput(input)));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -41,9 +45,7 @@ public static class DialogFormatter
|
|||
builder.AppendLine(string.Format(Translations.dialog_render_action, action.Index, action.Label, DescribeAction(action.Action)));
|
||||
}
|
||||
|
||||
if (instance.Definition.CancelAction is not null || instance.Definition.CanCloseWithEscape)
|
||||
builder.AppendLine(Translations.dialog_render_cancel_hint);
|
||||
|
||||
builder.Append(border);
|
||||
return builder.ToString();
|
||||
}
|
||||
|
||||
|
|
@ -60,6 +62,18 @@ public static class DialogFormatter
|
|||
};
|
||||
}
|
||||
|
||||
private static string DescribeKind(DialogInputKind kind)
|
||||
{
|
||||
return kind switch
|
||||
{
|
||||
DialogInputKind.Text => Translations.dialog_input_kind_text,
|
||||
DialogInputKind.Boolean => Translations.dialog_input_kind_boolean,
|
||||
DialogInputKind.SingleOption => Translations.dialog_input_kind_options,
|
||||
DialogInputKind.NumberRange => Translations.dialog_input_kind_number,
|
||||
_ => Translations.dialog_input_kind_unknown
|
||||
};
|
||||
}
|
||||
|
||||
private static string DescribeInput(DialogInput input)
|
||||
{
|
||||
return input.Kind switch
|
||||
|
|
|
|||
|
|
@ -72,7 +72,7 @@ public sealed class DialogManager
|
|||
_current = instance;
|
||||
}
|
||||
|
||||
_client.Log.Info(string.Format(Translations.dialog_received, instance.Definition.DisplayTitle()));
|
||||
_client.Log.Info("§e" + string.Format(Translations.dialog_received, instance.Definition.DisplayTitle()));
|
||||
DialogShown?.Invoke(instance);
|
||||
return instance;
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue