dartterm/lib/world/level.dart

34 lines
663 B
Dart
Raw Permalink Normal View History

2023-09-20 02:19:26 +00:00
import 'package:dartterm/wfc/template.dart';
enum LevelTile {
exit,
door,
floor,
wall,
}
2023-09-18 01:05:40 +00:00
class Level {
Set<(int, int)> openCells = {};
}
2023-09-20 02:19:26 +00:00
Future<WfcTemplate<LevelTile>> loadLevelWfcAsync(String name) async {
2023-09-20 02:41:42 +00:00
return WfcTemplate.loadAsync(name, 3, (c) {
2023-09-20 02:19:26 +00:00
switch (c) {
// ABGR
case 0xFF000000:
case 0xFF707070:
return LevelTile.wall;
case 0xFFFFFFFF:
case 0xFF00FFFF:
case 0xFFFF00FF:
return LevelTile.floor;
case 0xFFFF8700:
return LevelTile.door;
case 0xFF0000FF:
return LevelTile.exit;
default:
throw Exception("unrecognized pixel: $c");
}
});
}