summaryrefslogtreecommitdiffstats
path: root/label.py
blob: 45a8264b01ae585b5bc7e08968579a89c72477fd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
from setup import *


class Label:
    inset = 10

    def __init__(self, position, text, colour, background_colour, font_size):
        self.position = pygame.Vector2(position)
        self.raw_text = text
        self.colour = colour
        self.background_colour = background_colour
        self.font = pygame.font.SysFont("arial", font_size)
        self.text = self.font.render(self.raw_text, True, self.colour)
        self.length, self.height = self.text.get_size()

    def update(self, delta, raw_text=None, position=None):
        if raw_text is not None:
            self.raw_text = raw_text
            self.text = self.font.render(self.raw_text, True, self.colour)
            self.length, self.height = self.text.get_size()
        if position is not None:
            self.position = pygame.Vector2(position)

    def get_rect(self, centered=True):
        return pygame.Rect(self.position.x - self.inset - centered * self.length / 2,
                           self.position.y - self.inset - centered * self.height / 2,
                           self.length + 2 * self.inset, self.height + 2 * self.inset)

    def draw(self, surf, centered=True):
        if self.background_colour is not None:
            pygame.draw.rect(surf, self.background_colour, self.get_rect(centered), border_radius=5)
            pygame.draw.rect(surf, BLACK, self.get_rect(centered), width=3, border_radius=5)
        surf.blit(self.text, self.text.get_rect(center=self.get_rect(centered).center))