1import pygame
2from .modules.options.fps import fps
3
4class options:
5
6 def __init__(self, game):
7 self.game = game
8
9 self.open = False
10
11 self.show_fps = False
12
13 self.fps_module = fps(game)
14
15 self.menu_id = 0
16
17 self.marker_target_y = 200 + (self.menu_id * 70)
18 self.marker_y = self.marker_target_y
19
20 self.marker_x = 90
21
22 self.show_fps_text_surface = self.game.font_handler.get_font("default").render(self.game.language_handler.translatable_text("typemania.options.show_fps") + ": " + str(self.show_fps), True, (self.game.color_handler.get_color_rgb("typemania.text")))
23 self.reset_save_text_surface = self.game.font_handler.get_font("default").render(self.game.language_handler.translatable_text("typemania.options.reset_save"), True, (self.game.color_handler.get_color_rgb("typemania.text")))
24
25 self.marker_target_width = self.show_fps_text_surface.get_width() + 20
26 self.marker_width = self.marker_target_width
27
28 self.bg_target_x = -1000
29 self.bg_x = self.bg_target_x
30
31 def update(self):
32 self.bg_x += (self.bg_target_x - self.bg_x) / 10
33 if self.open:
34 self.bg_target_x = 5
35 self.game.input.input_state = "options"
36 if self.game.input.is_pressed("esc"):
37 self.open = False
38
39 if self.game.input.is_just_pressed("DOWN"):
40 self.menu_id += 1
41 if self.game.input.is_just_pressed("UP"):
42 self.menu_id -= 1
43
44 self.show_fps_text_surface = self.game.font_handler.get_font("default").render(self.game.language_handler.translatable_text("typemania.options.show_fps") + ": " + str(self.show_fps), True, (self.game.color_handler.get_color_rgb("typemania.text")))
45
46 self.marker_target_y = 270 + (self.menu_id * 140) - 25
47 self.marker_y += (self.marker_target_y - self.marker_y) / 8
48 self.marker_width += (self.marker_target_width - self.marker_width) / 20
49
50 if self.menu_id < 0:
51 self.menu_id = 1
52 if self.menu_id > 1:
53 self.menu_id = 0
54
55 if self.menu_id == 0:
56 self.marker_target_width = self.show_fps_text_surface.get_width() + 20
57 if self.menu_id == 1:
58 self.marker_target_width = self.reset_save_text_surface.get_width() + 20
59
60 if self.game.input.is_just_pressed("SPACE") or self.game.input.is_just_pressed("RETURN"):
61 if self.menu_id == 0:
62 self.show_fps = not self.show_fps
63 if self.menu_id == 1:
64 self.game.typemania.save_file = {"all_plays": []}
65 self.game.notification_handler.send("Save File Reset", "Typemania save file has been reset from the options menu.")
66
67 else:
68 self.game.input.input_state = "game"
69 self.bg_target_x = -1000
70
71 if self.game.input.is_pressed("ctrl") and self.game.input.is_just_pressed("o"):
72 self.open = not self.open
73
74 def render(self):
75 pygame.draw.rect(self.game.main_surface, self.game.color_handler.get_color_rgb("options.background"), ((self.bg_x, 5), (500, self.game.display_height - 10)), False, 5)
76
77 if self.open:
78 pygame.draw.rect(self.game.main_surface, self.game.color_handler.get_color_rgb("typemania.marker"), ((self.marker_x, self.marker_y), (self.marker_width, 5)), False, 5)
79
80 self.game.main_surface.blit(self.show_fps_text_surface, (100, 200))
81 self.game.main_surface.blit(self.reset_save_text_surface, (100, 340))