import pygame import math from .colors import * from .fonts import * class LozengeButton: def __init__(self, gui, name, position, radius_x, radius_y, side): self.gui = gui self.screen = gui.screen self.name = name self.x = position[0] self.y = position[1] self.radius_x = radius_x self.radius_y = radius_y self.side = side self.focused = False def display(self): m1, m2, m3 = pygame.mouse.get_pressed(3) if m1: pos = pygame.mouse.get_pos() if math.sqrt(math.pow(pos[0] - self.x, 2) + math.pow(pos[1] - self.y, 2)) < self.radius_y: self.focused = True self.gui.set_fx_mode_by_name(self.side, self.name) self.gui.set_controller_fx_mode(self.side, self.name) if self.focused: w = 0 fx_mode_label = font_helvetica16.render(self.name, False, color_primary_light) self.screen.blit(fx_mode_label, (self.x + (20 if self.side == 0 else -20-fx_mode_label.get_width()), self.y - 8)) else: w = 2 fx_mode_label = font_helvetica16.render(str(self.name)[0:1], False, color_primary_light) self.screen.blit(fx_mode_label, (self.x - fx_mode_label.get_width()/2 + 1, self.y - fx_mode_label.get_height()/2 + 1)) pygame.draw.polygon(self.screen, color_primary_light, [(self.x - self.radius_x, self.y), (self.x, self.y - self.radius_y), (self.x + self.radius_x, self.y), (self.x, self.y + self.radius_y)], w)