mirror of
https://github.com/nsnail/spectre.console.git
synced 2025-04-16 00:42:51 +08:00

* Renames Spectre.Cli to Spectre.Console.Cli. * Now uses Verify with Spectre.Console.Cli tests. * Removes some duplicate definitions. Closes #168
71 lines
2.7 KiB
C#
71 lines
2.7 KiB
C#
using System.Threading;
|
|
using Spectre.Console;
|
|
|
|
namespace ProgressExample
|
|
{
|
|
public static class Program
|
|
{
|
|
public static void Main()
|
|
{
|
|
AnsiConsole.Status()
|
|
.AutoRefresh(true)
|
|
.Spinner(Spinner.Known.Default)
|
|
.Start("[yellow]Initializing warp drive[/]", ctx =>
|
|
{
|
|
// Initialize
|
|
Thread.Sleep(3000);
|
|
WriteLogMessage("Starting gravimetric field displacement manifold");
|
|
Thread.Sleep(1000);
|
|
WriteLogMessage("Warming up deuterium chamber");
|
|
Thread.Sleep(2000);
|
|
WriteLogMessage("Generating antideuterium");
|
|
|
|
// Warp nacelles
|
|
Thread.Sleep(3000);
|
|
ctx.Spinner(Spinner.Known.BouncingBar);
|
|
ctx.Status("[bold blue]Unfolding warp nacelles[/]");
|
|
WriteLogMessage("Unfolding left warp nacelle");
|
|
Thread.Sleep(2000);
|
|
WriteLogMessage("Left warp nacelle [green]online[/]");
|
|
WriteLogMessage("Unfolding right warp nacelle");
|
|
Thread.Sleep(1000);
|
|
WriteLogMessage("Right warp nacelle [green]online[/]");
|
|
|
|
// Warp bubble
|
|
Thread.Sleep(3000);
|
|
ctx.Spinner(Spinner.Known.Star2);
|
|
ctx.Status("[bold blue]Generating warp bubble[/]");
|
|
Thread.Sleep(3000);
|
|
ctx.Spinner(Spinner.Known.Star);
|
|
ctx.Status("[bold blue]Stabilizing warp bubble[/]");
|
|
|
|
// Safety
|
|
ctx.Spinner(Spinner.Known.Monkey);
|
|
ctx.Status("[bold blue]Performing safety checks[/]");
|
|
WriteLogMessage("Enabling interior dampening");
|
|
Thread.Sleep(2000);
|
|
WriteLogMessage("Interior dampening [green]enabled[/]");
|
|
|
|
// Warp!
|
|
Thread.Sleep(3000);
|
|
ctx.Spinner(Spinner.Known.Moon);
|
|
WriteLogMessage("Preparing for warp");
|
|
Thread.Sleep(1000);
|
|
for (var warp = 1; warp < 10; warp++)
|
|
{
|
|
ctx.Status($"[bold blue]Warp {warp}[/]");
|
|
Thread.Sleep(500);
|
|
}
|
|
});
|
|
|
|
// Done
|
|
AnsiConsole.MarkupLine("[bold green]Crusing at Warp 9.8[/]");
|
|
}
|
|
|
|
private static void WriteLogMessage(string message)
|
|
{
|
|
AnsiConsole.MarkupLine($"[grey]LOG:[/] {message}[grey]...[/]");
|
|
}
|
|
}
|
|
}
|