X-Git-Url: https://git.ctpug.org.za/?a=blobdiff_plain;f=tabakrolletjie%2Fscenes%2Fload_level.py;fp=tabakrolletjie%2Fscenes%2Fload_level.py;h=4cf267b0f2ba264cc5d8fa454bf45516b0a1e096;hb=772506e91d10df538f2dbbcb5cb0e27599672c61;hp=7b3478918209e3042a3eeb8fb3ed5b4cdd7cca7f;hpb=821807f117dff841dd4f2249714dd8ae41e6a651;p=tabakrolletjie.git diff --git a/tabakrolletjie/scenes/load_level.py b/tabakrolletjie/scenes/load_level.py index 7b34789..4cf267b 100644 --- a/tabakrolletjie/scenes/load_level.py +++ b/tabakrolletjie/scenes/load_level.py @@ -14,23 +14,20 @@ class LoadLevelScene(BaseScene): def _list_stations(self): station_path = loader.full_path("stations") - files = os.listdir(station_path) - result = [] - for f in files: - name, ext = os.path.splitext(f) - if ext == '.json': - result.append((name, f)) - result.sort() - return result + files = [f for f in os.listdir(station_path) if f.endswith(".json")] + files.sort() + return [loader.load_station(f) for f in files] def enter(self, gamestate): """Construct list of stations""" height = 50 - self._buttons = [] width = 30 - for station, filename in self._list_stations(): + self._buttons = [] + for station in self._list_stations(): + title = station["config"]["name"] pos = (width, height) - button = TextButton(station, (255, 255, 255), filename, pos) + button = TextButton(title, (255, 255, 255), None, pos) + button.station = station if width < 400: width += 350 else: @@ -46,13 +43,13 @@ class LoadLevelScene(BaseScene): def _get_pressed(self, ev): for button in self._buttons: if button.pressed(ev): - return button.name + return button return None - def _do_load(self, name, gamestate): + def _do_load(self, station, gamestate): from .day import DayScene - print "Loading station", name - gamestate.load_station(name) + print "Loading station", station["config"]["name"] + gamestate.set_station(station) SceneChangeEvent.post(scene=DayScene()) def event(self, ev, gamestate): @@ -62,4 +59,4 @@ class LoadLevelScene(BaseScene): elif ev.type == pgl.MOUSEBUTTONDOWN: pressed = self._get_pressed(ev) if pressed: - self._do_load(pressed, gamestate) + self._do_load(pressed.station, gamestate)