Vault/BSP based level generator, part 1
This commit is contained in:
@ -1,5 +1,3 @@
|
||||
import 'package:dartterm/wfc/template.dart';
|
||||
|
||||
enum LevelTile {
|
||||
exit,
|
||||
door,
|
||||
@ -11,23 +9,21 @@ class Level {
|
||||
Set<(int, int)> openCells = {};
|
||||
}
|
||||
|
||||
Future<WfcTemplate<LevelTile>> 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");
|
||||
}
|
||||
});
|
||||
LevelTile colorToTile(int 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");
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user