From dc3f55cff3cca2d57952e555d33878aac496d4b1 Mon Sep 17 00:00:00 2001 From: Yohann D'ANELLO Date: Sun, 8 Nov 2020 23:03:59 +0100 Subject: [PATCH] MapDisplay extends Display --- dungeonbattle/display/display.py | 3 --- dungeonbattle/display/mapdisplay.py | 21 +++++++++++++-------- dungeonbattle/game.py | 6 +++--- 3 files changed, 16 insertions(+), 14 deletions(-) diff --git a/dungeonbattle/display/display.py b/dungeonbattle/display/display.py index 983099a..45d2160 100644 --- a/dungeonbattle/display/display.py +++ b/dungeonbattle/display/display.py @@ -10,6 +10,3 @@ class Display: def refresh(self) -> None: raise NotImplementedError - - def display(self, y: int, x: int) -> None: - raise NotImplementedError diff --git a/dungeonbattle/display/mapdisplay.py b/dungeonbattle/display/mapdisplay.py index 3a03290..56bc370 100644 --- a/dungeonbattle/display/mapdisplay.py +++ b/dungeonbattle/display/mapdisplay.py @@ -1,20 +1,22 @@ #!/usr/bin/env python import curses +from typing import Any +from dungeonbattle.display.display import Display from dungeonbattle.display.texturepack import TexturePack +from dungeonbattle.entities.player import Player from dungeonbattle.interfaces import Map -class MapDisplay: - - def __init__(self, m: Map, pack: TexturePack, height: int, width: int, - init_pad: bool = True): - self.width = width - self.height = height +class MapDisplay(Display): + def __init__(self, screen: Any, m: Map, player: Player, pack: TexturePack): + super().__init__(screen) + self.height = self.rows + self.width = self.cols self.pack = pack self.map = m - if init_pad: - self.pad = curses.newpad(m.height, m.width + 1) + self.player = player + self.pad = curses.newpad(m.height, m.width + 1) def update_pad(self) -> None: self.pad.addstr(0, 0, self.map.draw_string(self.pack)) @@ -35,3 +37,6 @@ class MapDisplay: self.pad.clear() self.update_pad() self.pad.refresh(pminrow, pmincol, sminrow, smincol, smaxrow, smaxcol) + + def refresh(self) -> None: + return self.display(self.player.y, self.player.x) diff --git a/dungeonbattle/game.py b/dungeonbattle/game.py index e334617..aa91a7e 100644 --- a/dungeonbattle/game.py +++ b/dungeonbattle/game.py @@ -39,7 +39,7 @@ class Game: self.player = Player() self.player.move(1, 6) self.m.add_entity(self.player) - self.d = MenuDisplay(self, self.main_menu, 0, 0) + self.current_display = MenuDisplay(self, self.main_menu, 0, 0) @staticmethod def load_game(filename: str) -> None: @@ -51,7 +51,7 @@ class Game: screen.clear() screen.refresh() # self.d.display(self.player.y, self.player.x) - self.d.refresh() + self.current_display.refresh() key = screen.getkey() self.handle_key_pressed(self.translate_key(key)) @@ -94,4 +94,4 @@ class Game: self.state = GameMode.SETTINGS elif option == menus.MainMenuValues.EXIT: sys.exit(0) - self.d.refresh() + self.current_display.refresh()