import pygame class FunctionSelector: def __init__(self, resources_dir, game_res, functions): self.font = pygame.font.Font(resources_dir + '/fonts/5Pts5.ttf', 10) self.functions = functions self.max_lines = 6 # Max number of lines to be shown on screen at a time. self.offset = 0 self.game_res = game_res self.selected = 0 self.max_index = len(self.functions) - 1 self.selector = pygame.image.load(resources_dir + '/images/dev_menu/selector.png').convert_alpha() def draw(self, surface): for i in range(self.max_index + 1): text = self.font.render(self.functions[i], False, (0, 0, 0)) surface.blit(text, (8, (-3 + (i * 6)))) surface.blit(self.selector, (0, (self.selected * 6))) def scroll_down(self): self.selected += 1 if self.selected > self.max_index: self.selected = self.max_index def scroll_up(self): self.selected -= 1 if self.selected < 0: self.selected = 0 def get_function(self): return self.functions[self.selected]