import 'dart:developer'; import 'dart:math' as math; import 'package:dartterm/assets.dart'; import 'package:dartterm/gen/generator.dart'; import 'package:dartterm/input.dart'; import 'package:dartterm/skreek.dart'; import 'package:dartterm/terminal.dart'; void main() async { Vaults vaults; while (true) { skreek("about to load template"); at(0, 0).clear(); at(0, 0).puts("Loading template!"); Vaults? maybeVaults = getVaultsIfAvailable("assets/images/vaults/house1.png"); if (maybeVaults != null) { skreek("wasn't null!"); vaults = maybeVaults; break; } await zzz(0.1); } at(0, 0).clear(); at(0, 0).puts("Loaded! $vaults"); int seed = 0; while (true) { Vault output = Generator(math.Random(seed), vaults).generate(Requirement( 32, 24, DirectionSet( {Direction.up, Direction.left, Direction.right, Direction.down}))); var w = output.vx; var h = output.vy; for (var y = 0; y < h; y++) { for (var x = 0; x < w; x++) { var cursor = at(x * 2, y * 2).big(); switch (output.tiles[x + y * w]) { case VaultTile.bspfloor: cursor.puts(" "); case VaultTile.floor: cursor.puts("."); case VaultTile.door: cursor.puts("d"); case VaultTile.wall: cursor.puts("#"); case VaultTile.exit: cursor.puts("X"); } } } inpLoop: await for (var inp in rawInput()) { print(inp); switch (inp) { case Keystroke(text: "a"): seed -= 1; break inpLoop; case Keystroke(text: "d"): seed += 1; break inpLoop; default: } } } } /* void main() async { var descriptor = "generic"; while (true) { at(0, 0).clear(); at(0, 0).puts("Hello, bats!"); at(0, 2).fg(Palette.subtitle).small().puts("Beware of the bat!"); at(4, 4) .bg(Palette.subtitle) .fg(Palette.defaultBg) .big() .highlight() .act(Act( isDefault: true, label: "Strong!", callback: () async { log("strong!"); descriptor = "strong"; })) .act(Act( label: "Nocturnal!", callback: () async { log("nocturnal!"); descriptor = "nocturnal"; })) .puts("ALTER BAT"); at(4, 8).normal().puts("A $descriptor bat!"); // await zzz(1.0); await waitMenu(); } } */