import pygame.locals as pgl
from .base import BaseScene
+from ..constants import SCREEN_SIZE
from ..events import SceneChangeEvent
from ..widgets import TextButton
from ..loader import loader
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)
def render(self, surface, gamestate):
surface.fill((0, 128, 128))
+ self._title.render(surface)
for button in self._buttons:
button.render(surface)
class TextButton(Button):
- def __init__(self, text, colour, name=None, pos=None, padding=10):
- font = loader.load_font(FONTS['sans'], size=24)
+ def __init__(
+ self, text, colour, name=None, pos=None, padding=10, size=24,
+ font='sans', centre=False):
+ font = loader.load_font(FONTS[font], size=size)
self._text = font.render(text, True, colour)
+ if centre:
+ w, h = self._text.get_size()
+ pos = pos[0] - (w / 2), pos[1] - (h / 2)
self._disabled_text = self._text.copy()
Multiply(colour=(80, 80, 80)).apply(self._disabled_text)
super(TextButton, self).__init__(self._text.get_size(), name,