42 lines
1.4 KiB
Python
42 lines
1.4 KiB
Python
import glob2
|
|
import pygame
|
|
import random
|
|
from Field import Field
|
|
from Global_variables import Global_variables as G_var
|
|
from Types_colors import Types_colors
|
|
from Package_types import Package_types
|
|
import math
|
|
|
|
|
|
class Package(Field):
|
|
def __init__(self, window, x, y, type=random.choice(list(Package_types))
|
|
):
|
|
Field.__init__(self, window, x, y)
|
|
self.mark_image = self.get_marking_photo()
|
|
self.type = type
|
|
self.is_placed = False
|
|
|
|
def get_marking_photo(self):
|
|
file_path_type = ["resources/package_markings/*.jpg"]
|
|
images = glob2.glob(random.choice(file_path_type))
|
|
random_image = random.choice(images)
|
|
print(random_image)
|
|
return random_image
|
|
|
|
def draw(self):
|
|
self.color = Types_colors.get_package_color(self.type)
|
|
block = pygame.Rect(self.x * G_var().RECT_SIZE, self.y *
|
|
G_var().RECT_SIZE, G_var().RECT_SIZE, G_var().RECT_SIZE)
|
|
pygame.draw.rect(self.window, self.color, block)
|
|
|
|
def choose_the_closest_shelf(self, shelves):
|
|
array = []
|
|
for shelf in shelves:
|
|
if shelf.type == self.type:
|
|
segment = math.sqrt((shelf.x - self.x) **
|
|
2 + (shelf.y - self.y)**2)
|
|
array.append((segment, shelf))
|
|
array.sort(key=lambda y: y[0])
|
|
print(array)
|
|
return array[0]
|