43 lines
2.0 KiB
Python
43 lines
2.0 KiB
Python
import pygame
|
|
from widgets.button import Button
|
|
from widgets.switch import Switch
|
|
|
|
class SettingsMenuRenderer:
|
|
def __init__(self, screen, options, styling):
|
|
self.screen = screen
|
|
self.options = options
|
|
self.styling = styling
|
|
self.font = self.styling["font"]
|
|
self.text_start_x = 100
|
|
self.widget_start_x = 500
|
|
|
|
# Text
|
|
self.show_yaw_text = self.font.render("Show Yaw: ", True, self.styling["text_colour"])
|
|
self.show_health_text = self.font.render("Show Health: ", True, (self.styling["text_colour"]))
|
|
self.show_names_text = self.font.render("Show Names: ", True, self.styling["text_colour"])
|
|
|
|
# Buttons
|
|
self.back_button = Button(10, 10, 50, 50, None)
|
|
self.back_button.set_colour(self.styling["button_colour"])
|
|
self.back_button.set_pressed_colour(self.styling["pressed_button_colour"])
|
|
self.back_button.set_image("assets/arrow.png")
|
|
|
|
# Switches
|
|
self.show_yaw_button = Switch(self.widget_start_x, 100, 100, self.show_yaw_text.get_rect().height, self.options["show_yaw"])
|
|
self.show_health_button = Switch(self.widget_start_x, 150, 100, self.show_health_text.get_rect().height, self.options["show_health"])
|
|
self.show_names_button = Switch(self.widget_start_x, 200, 100, self.show_names_text.get_rect().height, self.options["show_names"])
|
|
|
|
def render(self):
|
|
"""Renders the settings menu."""
|
|
self.screen.fill(self.styling["background_colour"]) # Clear screen
|
|
self.screen.blit(self.show_yaw_text, (self.text_start_x, self.show_yaw_button.y))
|
|
self.show_yaw_button.draw(self.screen)
|
|
|
|
self.screen.blit(self.show_health_text, (self.text_start_x, self.show_health_button.y))
|
|
self.show_health_button.draw(self.screen)
|
|
|
|
self.screen.blit(self.show_names_text, (self.text_start_x, self.show_names_button.y))
|
|
self.show_names_button.draw(self.screen)
|
|
|
|
self.back_button.draw(self.screen)
|