dartterm/lib/game.dart

86 lines
2.0 KiB
Dart
Raw Normal View History

2023-09-11 02:00:06 +00:00
import 'dart:developer';
2023-09-20 02:19:26 +00:00
import 'package:dartterm/assets.dart';
2023-09-10 01:40:56 +00:00
import 'package:dartterm/colors.dart';
import 'package:dartterm/terminal.dart';
2023-09-20 02:19:26 +00:00
import 'package:dartterm/wfc/template.dart';
import 'package:dartterm/world/level.dart';
2023-09-10 01:40:56 +00:00
2023-09-20 02:19:26 +00:00
void main() async {
WfcTemplate<LevelTile> template;
while (true) {
log("about to load template");
at(0, 0).clear();
at(0, 0).puts("Loading template!");
WfcTemplate<LevelTile>? 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(0, -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("?");
}
}
}
}
/*
2023-09-10 01:40:56 +00:00
void main() async {
2023-09-11 02:00:06 +00:00
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");
2023-09-10 22:29:51 +00:00
2023-09-11 02:00:06 +00:00
at(4, 8).normal().puts("A $descriptor bat!");
2023-09-10 22:29:51 +00:00
2023-09-11 02:00:06 +00:00
// await zzz(1.0);
await waitMenu();
}
2023-09-10 01:40:56 +00:00
}
2023-09-20 02:19:26 +00:00
*/