private string CalendarPrinter(Calendar calendar) { var lines = calendar.Lines.Select(line => new[] { new CalendarToken { Text = " " } }.Concat(line)).ToList(); var r = new Random(); var years = new [] { $@"0x0000 | {calendar.Year}", $@"/*{calendar.Year}*/", $@"int y={calendar.Year};", $@"/^{calendar.Year}$/", $@"λy.{calendar.Year}", $@"{{:year {calendar.Year}}}", $@"sub y{{{calendar.Year}}}", $@"//{calendar.Year}", $@"{{'year':{calendar.Year}}}", $@"$year={calendar.Year}" }; var year = years[r.Next(years.Length)]; lines.Insert(0, new[] { new CalendarToken { ConsoleColor = 0x00cc00, Text = $@" | ▄█▄ ▄▄█ ▄ ▄ ▄▄▄ ▄▄ ▄█▄ ▄▄▄ ▄█ ▄▄ ▄▄▄ ▄▄█ ▄▄▄ | █▄█ █ █ █ █ █▄█ █ █ █ █ █ █▄ █ █ █ █ █ █▄█ | █ █ █▄█ ▀▄▀ █▄▄ █ █ █▄ █▄█ █ █▄ █▄█ █▄█ █▄▄ {year} |" .StripMargin() } }); var bw = new BufferWriter(); foreach (var line in lines) { foreach (var token in line) { bw.Write(token.ConsoleColor, token.Text, token.Bold); } bw.Write(-1, "\n", false); } return(bw.GetContent()); }
private string CalendarPrinter(Calendar calendar) { var lines = calendar.Lines.Select(line => new[] { new CalendarToken { Text = " " } }.Concat(line)).ToList(); var bw = new BufferWriter(); foreach (var line in lines) { foreach (var token in line) { bw.Write(token.ConsoleColor, token.Text, token.Bold); } bw.Write(-1, "\n", false); } return(bw.GetContent()); }
private string CalendarPrinter(Calendar calendar) { var theme = new Dictionary <string[], int>() { [new[] { "title" }] = 0xffff66, [new[] { "calendar-star" }] = 0xffff66, [new[] { "calendar-complete", "calendar-mark-complete" }] = 0xffff66, [new[] { "calendar-verycomplete", "calendar-mark-complete" }] = 0xfff66, [new[] { "calendar-verycomplete", "calendar-mark-verycomplete" }] = 0xffff66, [new[] { "calendar-edge" }] = 0xcccccc, [new[] { "calendar-print-edge" }] = 0x999999, [new[] { "calendar-print-text" }] = 0xcccccc, [new[] { "calendar-ornament0" }] = 0x0066ff, [new[] { "calendar-ornament1" }] = 0xff9900, [new[] { "calendar-ornament2" }] = 0xff0000, [new[] { "calendar-ornament3" }] = 0xffff66, [new[] { "calendar-tree-star" }] = 0xffff66, [new[] { "calendar-antenna-star" }] = 0xffff66, [new[] { "calendar-antenna-signal0" }] = 0xffff66, [new[] { "calendar-antenna-signal1" }] = 0xffff66, [new[] { "calendar-antenna-signal2" }] = 0xffff66, [new[] { "calendar-antenna-signal3" }] = 0xffff66, [new[] { "calendar-antenna-signal4" }] = 0xffff66, [new[] { "calendar-antenna-signal5" }] = 0xffff66, [new[] { "calendar-tree-ornament0" }] = 0x0066ff, [new[] { "calendar-tree-ornament1" }] = 0xff9900, [new[] { "calendar-tree-ornament2" }] = 0xff0000, [new[] { "calendar-tree-branches" }] = 0x009900, [new[] { "calendar-tree-trunk" }] = 0xaaaaaa, [new[] { "calendar-trunk" }] = 0xcccccc, [new[] { "calendar-streets" }] = 0x666666, [new[] { "calendar-window-dark" }] = 0x333333, [new[] { "calendar-window-red" }] = 0xff0000, [new[] { "calendar-window-green" }] = 0x009900, [new[] { "calendar-window-blue" }] = 0x0066ff, [new[] { "calendar-window-yellow" }] = 0xffff66, [new[] { "calendar-window-brown" }] = 0x553322, [new[] { "calendar-lightbeam" }] = 0xffff66, [new[] { "calendar-color-s" }] = 0x999999, [new[] { "calendar-color-b" }] = 0x0066ff, [new[] { "calendar-color-e" }] = 0xcccccc, [new[] { "calendar-color-r" }] = 0xff0000, [new[] { "calendar-color-d" }] = 0x880000, [new[] { "calendar-color-n" }] = 0x886655, [new[] { "calendar-color-k" }] = 0xcccccc, [new[] { "calendar-color-g" }] = 0x009900, [new[] { "calendar-color-w" }] = 0xcccccc, [new[] { "calendar-color-t" }] = 0xcccccc, [new[] { "calendar-color-i" }] = 0xff0000, [new[] { "calendar-color-y" }] = 0xffff66, }; var lines = calendar.Lines.Select(line => new[] { new CalendarToken { Text = " " } }.Concat(line)).ToList(); lines.Insert(0, new[] { new CalendarToken { Styles = new [] { "title" }, Text = $@" | __ ____ _ _ ____ __ _ ____ __ ____ ___ __ ____ ____ | / _\ ( \/ )( \( __)( ( \(_ _) / \( __) / __)/ \( \( __) |/ \ ) D (\ \/ / ) _) / / )( ( O )) _) ( (__( O )) D ( ) _) |\_/\_/(____/ \__/ (____)\_)__) (__) \__/(__) \___)\__/(____/(____) {calendar.Year} |" .StripMargin() } }); var bw = new BufferWriter(); foreach (var line in lines) { foreach (var token in line) { var consoleColor = 0x888888; foreach (var kvp in theme) { if (kvp.Key.All(s => token.Styles.Contains(s))) { consoleColor = kvp.Value; break; } } bw.Write(consoleColor, token.Text); } bw.Write(-1, "\n"); } return(bw.GetContent()); }