import pygame

pygame.init()

class Image(pygame.sprite.Sprite):
    def __init__(self, path):
        super().__init__()
        self.image = pygame.image.load(path)

class Element():
    def __init__(self, type):
        self.selected = 0
        self.list = []

        for i in range(1, 4):
            name = f'{type}{i}.png'
            loaded_image = Image(name)
            self.list.append(loaded_image)

    def selectNext(self):
        self.selected += 1
        if(self.selected > 2):
            self.selected = 0

    def selectedImage(self):
        return self.list[self.selected].image
    
class Hats(Element):
    def __init__(self):
        super().__init__("head")

class Eyes(Element):
    def __init__(self):
        super().__init__("eye")

class Bodies(Element):
    def __init__(self):
        super().__init__("body")

class Weapons(Element):
    def __init__(self):
        super().__init__("weapon")


hats = Hats()
bodies = Bodies()
eyes = Eyes()
weapons = Weapons()

background_image = pygame.image.load("background.png")
player_base = pygame.image.load("base.png")

window = pygame.display.set_mode((800, 600))
clock = pygame.time.Clock()
game_running = True

while game_running:
    for event in pygame.event.get():
        if event.type == pygame.KEYDOWN:
            if event.key == pygame.K_ESCAPE:
                game_running = False
            if event.key == pygame.K_q:
                hats.selectNext()
            if event.key == pygame.K_w:
                eyes.selectNext()
            if event.key == pygame.K_e:
                bodies.selectNext()
            if event.key == pygame.K_r:
                weapons.selectNext()
    
    window.blit(background_image, (0,0))
    window.blit(player_base, (270,130))

    window.blit(eyes.selectedImage(), (270,130))
    window.blit(bodies.selectedImage(), (270,130))
    window.blit(weapons.selectedImage(), (270,130))
    window.blit(hats.selectedImage(), (270,130))


    pygame.display.flip()
    clock.tick(30)

pygame.quit()