import pygame
import copy  
from Direction import Direction
from Segment import Segment

class Snake(pygame.sprite.Sprite):
    def __init__(self):
        self.original_image = pygame.image.load("images/head.png")
        #obraz pomocniczy który zmienia się przy zmianie kierunku 
        self.image = pygame.transform.rotate(self.original_image,0)
        #Współrzędne głowy 
        self.rect = self.image.get_rect(center=(12*32+16, 9*32+16))
        #zmiennne odpowiedzialne za kierunek, oraz nowy wyznaczony kierunek
        self.direction = Direction.UP
        self.new_direction = Direction.UP
        #zapisna ostatni pozycja węża, uzyjemy jej do zmiany pozycji segmentów 
        self.last_position = self.rect
        self.add_segment = False 
        self.sgments = []

    def chanege_direction(self, direction):
        change_allowed = True 
        if direction == Direction.UP and self.direction == Direction.DOWN:
            change_allowed = False
        if direction == Direction.DOWN and self.direction == Direction.UP:
            change_allowed = False 
        if direction == Direction.RIGHT and self.direction == Direction.LEFT:
            change_allowed = False
        if direction == Direction.LEFT and self.direction == Direction.RIGHT:
            change_allowed = False      
        
        if change_allowed: 
            self.new_direction = direction

    def update(self):
        self.direction = self.new_direction
        self.image = pygame.transform.rotate(self.original_image, (self.direction.value*-90))

        if self.direction == Direction.UP:
            self.rect.move_ip(0,-32)
        if self.direction == Direction.DOWN:
            self.rect.move_ip(0,32)
        if self.direction == Direction.RIGHT:
            self.rect.move_ip(32,0)
        if self.direction == Direction.LEFT:
            self.rect.move_ip(-32,0)
