import 'package:flutter/services.dart'; import 'package:wolf_dart/features/map/wolf_level.dart'; import 'package:wolf_dart/features/map/wolf_map_parser.dart'; class WolfMap { /// The fully parsed and decompressed levels from the game files. final List levels; // A private constructor so we can only instantiate this from the async loader WolfMap._(this.levels); /// Asynchronously loads the map files and parses them into a new WolfMap instance. static Future load() async { // 1. Load the binary data final mapHead = await rootBundle.load("assets/MAPHEAD.WL1"); final gameMaps = await rootBundle.load("assets/GAMEMAPS.WL1"); // 2. Parse the data using the parser we just built final parsedLevels = WolfMapParser.parseMaps(mapHead, gameMaps); // 3. Return the populated instance! return WolfMap._(parsedLevels); } }