2023-03-29 10:45:48 +02:00
|
|
|
from abc import abstractmethod
|
|
|
|
|
2023-03-29 13:50:48 +02:00
|
|
|
from level.Level import Level
|
|
|
|
from level.elements.LoadedLevel import LoadedLevel
|
2023-03-29 10:45:48 +02:00
|
|
|
from level.selection.ScreenManager import ScreenManager
|
|
|
|
from physics.SpriteManager import SpriteManager
|
2023-03-29 13:50:48 +02:00
|
|
|
from physics.TickData import TickData
|
2023-03-29 10:45:48 +02:00
|
|
|
from sprite.SpritesheetManager import SpritesheetManager
|
2023-03-29 13:50:48 +02:00
|
|
|
from ui_elements.KeyManager import KeyManager
|
2023-03-29 10:45:48 +02:00
|
|
|
|
|
|
|
|
|
|
|
class LevelScreenManager(ScreenManager):
|
2023-03-29 13:50:48 +02:00
|
|
|
def __init__(self, sprite_manager: SpriteManager, spritesheet_manager: SpritesheetManager, main_loop,
|
|
|
|
level: Level):
|
2023-03-29 10:45:48 +02:00
|
|
|
super().__init__(sprite_manager, spritesheet_manager, main_loop)
|
|
|
|
|
2023-03-29 13:50:48 +02:00
|
|
|
self.level = level
|
|
|
|
self.loaded_level = LoadedLevel(sprite_manager, spritesheet_manager)
|
2023-03-29 15:40:15 +02:00
|
|
|
self.loaded_level.level_screen_manager = self
|
2023-03-29 13:50:48 +02:00
|
|
|
self.loaded_level.load_level(self.level)
|
|
|
|
|
2023-03-29 10:45:48 +02:00
|
|
|
def initialize(self):
|
|
|
|
pass
|
|
|
|
|
|
|
|
def destroy(self):
|
|
|
|
super().destroy()
|
2023-03-29 13:50:48 +02:00
|
|
|
self.loaded_level.destroy_level()
|
|
|
|
|
|
|
|
def tick(self, tick_data: TickData):
|
|
|
|
if tick_data.key_manager.is_keymap_down(KeyManager.KEY_ESCAPE):
|
2023-03-29 14:29:36 +02:00
|
|
|
self.main_loop.select_level_selection(self.level.theme)
|
2023-03-29 15:40:15 +02:00
|
|
|
|
|
|
|
def player_death(self):
|
|
|
|
self.main_loop.player_death(self.level)
|