X-Git-Url: https://git.ctpug.org.za/?p=tabakrolletjie.git;a=blobdiff_plain;f=tabakrolletjie%2Fscenes%2Fload_level.py;h=015a5f69bb6b8b378d2c52db1e0c104521f2c5b6;hp=6c219a00338cf85c1c5f89b77220943c61c46afe;hb=107db4ceddddbffa91e8969c3956be10058e2efc;hpb=d8489f5c851a9be3083d28cc3717fa7dfa124fad diff --git a/tabakrolletjie/scenes/load_level.py b/tabakrolletjie/scenes/load_level.py index 6c219a0..015a5f6 100644 --- a/tabakrolletjie/scenes/load_level.py +++ b/tabakrolletjie/scenes/load_level.py @@ -5,8 +5,9 @@ import os import pygame.locals as pgl from .base import BaseScene +from ..constants import SCREEN_SIZE from ..events import SceneChangeEvent -from ..widgets import TextButton +from ..widgets import TextButton, ImageButton from ..loader import loader @@ -20,26 +21,38 @@ class LoadLevelScene(BaseScene): def enter(self, gamestate): """Construct list of stations""" - height = 50 - width = 30 + width = SCREEN_SIZE[0] / 2 + self._title = TextButton( + 'Select a planet:', (255, 255, 255), pos=(width, 75), + size=32, font='bold', centre=True) + height = 150 self._buttons = [] for station in self._list_stations(): title = station["config"]["name"] pos = (width, height) - button = TextButton(title, (255, 255, 255), None, pos) + button = TextButton(title, (255, 255, 255), pos=pos, centre=True) button.station = station - if width < 400: - width += 350 - else: - width = 30 - height += button.get_height() + 20 + height += button.get_height() + 20 self._buttons.append(button) + self._tools = self.create_tools(gamestate) + + def create_tools(self, gamestate): + tools = [] + tools.append(ImageButton( + '32', 'exit.png', name='exit', + pos=(SCREEN_SIZE[0] - 50, SCREEN_SIZE[1] - 40))) + return tools + def render(self, surface, gamestate): surface.fill((0, 128, 128)) + self._title.render(surface) for button in self._buttons: button.render(surface) + for tool in self._tools: + tool.render(surface) + def _get_pressed(self, ev): for button in self._buttons: if button.pressed(ev): @@ -61,3 +74,10 @@ class LoadLevelScene(BaseScene): pressed = self._get_pressed(ev) if pressed: self._do_load(pressed.station, gamestate) + else: + # Check tools + for tool in self._tools: + if tool.pressed(ev): + if tool.name == 'exit': + from .menu import MenuScene + SceneChangeEvent.post(scene=MenuScene())