More generic display update
This commit is contained in:
@ -5,7 +5,7 @@ import curses
|
||||
from random import randint
|
||||
from typing import List
|
||||
|
||||
from squirrelbattle.menus import Menu, MainMenu
|
||||
from squirrelbattle.menus import Menu, MainMenu, SettingsMenu
|
||||
from .display import Box, Display
|
||||
from ..enums import KeyValues, GameMode
|
||||
from ..game import Game
|
||||
@ -17,6 +17,7 @@ class MenuDisplay(Display):
|
||||
"""
|
||||
A class to display the menu objects
|
||||
"""
|
||||
menu: Menu
|
||||
position: int
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
@ -80,6 +81,11 @@ class SettingsMenuDisplay(MenuDisplay):
|
||||
"""
|
||||
A class to display specifically a settingsmenu object
|
||||
"""
|
||||
menu: SettingsMenu
|
||||
|
||||
def update(self, game: Game) -> None:
|
||||
self.update_menu(game.settings_menu)
|
||||
|
||||
@property
|
||||
def values(self) -> List[str]:
|
||||
return [_(a[1][1]) + (" : "
|
||||
@ -122,6 +128,9 @@ class MainMenuDisplay(Display):
|
||||
menuy, menux, min(self.menudisplay.preferred_height,
|
||||
self.height - menuy), menuwidth)
|
||||
|
||||
def update(self, game: Game) -> None:
|
||||
self.menudisplay.update_menu(game.main_menu)
|
||||
|
||||
def handle_click(self, y: int, x: int, game: Game) -> None:
|
||||
menuwidth = min(self.menudisplay.preferred_width, self.width)
|
||||
menuy, menux = len(self.title) + 8, self.width // 2 - menuwidth // 2 - 1
|
||||
@ -135,6 +144,9 @@ class MainMenuDisplay(Display):
|
||||
|
||||
|
||||
class PlayerInventoryDisplay(MenuDisplay):
|
||||
def update(self, game: Game) -> None:
|
||||
self.update_menu(game.inventory_menu)
|
||||
|
||||
def update_pad(self) -> None:
|
||||
self.menubox.update_title(_("INVENTORY"))
|
||||
for i, item in enumerate(self.menu.values):
|
||||
@ -166,6 +178,9 @@ class PlayerInventoryDisplay(MenuDisplay):
|
||||
|
||||
|
||||
class StoreInventoryDisplay(MenuDisplay):
|
||||
def update(self, game: Game) -> None:
|
||||
self.update_menu(game.store_menu)
|
||||
|
||||
def update_pad(self) -> None:
|
||||
self.menubox.update_title(_("STALL"))
|
||||
for i, item in enumerate(self.menu.values):
|
||||
|
Reference in New Issue
Block a user