import pygame

# Event type constants.
MOUSEBUTTONDOWN = pygame.MOUSEBUTTONDOWN
MOUSEBUTTONUP   = pygame.MOUSEBUTTONUP
MOUSEMOTION     = pygame.MOUSEMOTION

class Render:
    """
    Provides basic drawing functions via Pygame.
    """
    def __init__(self, surface):
        self.surface = surface
        self.font = pygame.font.SysFont("Arial", 16)

    def draw_rect(self, color, rect, border=0):
        pygame.draw.rect(self.surface, color, rect, border)

    def draw_text(self, text, pos, color=(255, 255, 255)):
        text_surface = self.font.render(text, True, color)
        self.surface.blit(text_surface, pos)

    def draw_line(self, color, start_pos, end_pos, width=1):
        pygame.draw.line(self.surface, color, start_pos, end_pos, width)

    def draw_circle(self, color, center, radius, border=0):
        pygame.draw.circle(self.surface, color, center, radius, border)

class Rect:
    """
    A simple rectangle wrapper.
    """
    def __init__(self, x, y, width, height):
        self.rect = pygame.Rect(x, y, width, height)

    @property
    def x(self):
        return self.rect.x

    @property
    def y(self):
        return self.rect.y

    @property
    def width(self):
        return self.rect.width

    @property
    def height(self):
        return self.rect.height

    def collidepoint(self, pos):
        return self.rect.collidepoint(pos)

def get_mouse_pos():
    return pygame.mouse.get_pos()

def get_mouse_pressed():
    return pygame.mouse.get_pressed()
