import 'dart:developer'; import 'package:dartterm/assets.dart'; import 'package:dartterm/colors.dart'; import 'package:dartterm/terminal.dart'; import 'package:dartterm/wfc/template.dart'; import 'package:dartterm/world/level.dart'; void main() async { WfcTemplate template; while (true) { log("about to load template"); at(0, 0).clear(); at(0, 0).puts("Loading template!"); WfcTemplate? maybeTemplate = getWfcLevelTemplateIfAvailable("assets/images/wfc/bighouse2.png"); if (maybeTemplate != null) { log("wasn't null!"); template = maybeTemplate; break; } await zzz(0.1); } at(0, 0).clear(); at(0, 0).puts("Loaded! $template"); var W = 16; var H = 16; var wfc = Wfc(template, W, H); wfc.run(1, -1); var output = wfc.extractPartial(); for (var y = 0; y < W; y++) { for (var x = 0; x < H; x++) { var cursor = at(x * 2, y * 2).big(); switch (output[x + y * W]) { case LevelTile.floor: cursor.puts(" "); case LevelTile.door: cursor.puts("d"); case LevelTile.wall: cursor.puts("#"); case LevelTile.exit: cursor.puts("X"); case null: cursor.puts("?"); } } } } /* 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(); } } */