42 lines
1.4 KiB
Python
42 lines
1.4 KiB
Python
from states.game_state import GameState
|
|
from controllers.settings_controller import SettingsController
|
|
from render.settings_menu_renderer import SettingsMenuRenderer
|
|
|
|
class SettingsMenu(GameState):
|
|
def __init__(self, switch_state_callback, context):
|
|
super().__init__(switch_state_callback, context)
|
|
|
|
self.settings_renderer = SettingsMenuRenderer(self.screen, self.context["options"], self.styling)
|
|
self.settings_controller = SettingsController(self.settings_renderer, self.switch_state, context)
|
|
|
|
def handle_events(self, events):
|
|
"""Handles user inputs."""
|
|
for event in events:
|
|
self.settings_controller.update(event)
|
|
|
|
def update(self):
|
|
"""Updates settings based on user input."""
|
|
if self.settings_renderer.show_yaw_button.get_is_toggled():
|
|
self.options["show_yaw"] = True
|
|
else:
|
|
self.options["show_yaw"] = False
|
|
|
|
if self.settings_renderer.show_health_button.get_is_toggled():
|
|
self.options["show_health"] = True
|
|
else:
|
|
self.options["show_health"] = False
|
|
|
|
if self.settings_renderer.show_names_button.get_is_toggled():
|
|
self.options["show_names"] = True
|
|
else:
|
|
self.options["show_names"] = False
|
|
|
|
# Save settings to context
|
|
self.context["options"] = self.options
|
|
|
|
def draw(self):
|
|
"""Renders the settings menu."""
|
|
self.settings_renderer.render()
|
|
|
|
|