import 'package:dartterm/wfc/template.dart'; enum LevelTile { exit, door, floor, wall, } class Level { Set<(int, int)> openCells = {}; } Future> loadLevelWfcAsync(String name) async { return WfcTemplate.loadAsync(name, 3, (c) { 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"); } }); }