5 import pygame.locals as pgl
7 from .base import BaseScene
8 from ..events import SceneChangeEvent
9 from ..widgets import TextButton
10 from ..loader import loader
13 class LoadLevelScene(BaseScene):
15 def _list_stations(self):
16 station_path = loader.full_path("stations")
17 files = os.listdir(station_path)
20 name, ext = os.path.splitext(f)
22 result.append((name, f))
26 def enter(self, gamestate):
27 """Construct list of stations"""
31 for station, filename in self._list_stations():
33 button = TextButton(station, (255, 255, 255), filename, pos)
38 height += button.get_height() + 20
39 self._buttons.append(button)
41 def render(self, surface, gamestate):
42 surface.fill((0, 128, 128))
43 for button in self._buttons:
44 button.render(surface)
46 def _get_pressed(self, ev):
47 for button in self._buttons:
48 if button.pressed(ev):
52 def _do_load(self, name, gamestate):
53 from .day import DayScene
54 print "Loading station", name
55 gamestate.load_station(name)
56 SceneChangeEvent.post(scene=DayScene())
58 def event(self, ev, gamestate):
59 if ev.type == pgl.KEYDOWN:
61 self._do_load("station_alpha.json", gamestate)
62 elif ev.type == pgl.MOUSEBUTTONDOWN:
63 pressed = self._get_pressed(ev)
65 self._do_load(pressed, gamestate)