AI_PROJECT/Slot.py
Mateusz Czajka ae462e2920 New surfaces were made (mud, dirt, stone).
Renamed from bfs2 to bfs3.
Added koszt to Stan and it's set automatically.
Added some ideas about A*.
2024-04-24 22:16:34 +02:00

75 lines
2.6 KiB
Python

import pygame
import displayControler as dCon
import Colors
import random
import Image
import Roslina
BORDER_THICKNESS=1 #Has to be INT value
class Slot:
def __init__(self,x_axis,y_axis,color,screen,image_loader):
self.x_axis=x_axis
self.y_axis=y_axis
self.plant_image = None
self.plant=None
self.screen=screen
self.field=pygame.Rect(self.x_axis*dCon.CUBE_SIZE,self.y_axis*dCon.CUBE_SIZE,dCon.CUBE_SIZE,dCon.CUBE_SIZE)
self.image_loader=image_loader
self.garage_image=None
def draw(self):
pygame.draw.rect(self.screen,Colors.BROWN,self.field,0) #Draw field
pygame.draw.rect(self.screen,Colors.BLACK,self.field,BORDER_THICKNESS) #Draw border
pygame.display.update()
def redraw_image(self):
self.set_image()
def color_change(self,color):
self.plant=color
self.draw()
def set_random_plant(self):
(plant_name,self.plant_image)=self.random_plant()
self.plant=Roslina.Roslina(plant_name)
self.set_image()
def set_image(self):
if self.plant_image is None:
self.plant_image = self.image_loader.return_random_plant()
self.screen.blit(self.plant_image, (self.x_axis * dCon.CUBE_SIZE, self.y_axis * dCon.CUBE_SIZE))
pygame.draw.rect(self.screen, Colors.BLACK, self.field, BORDER_THICKNESS)
def set_garage_image(self):
self.plant_image=self.image_loader.return_garage()
self.screen.blit(self.plant_image, (self.x_axis * dCon.CUBE_SIZE, self.y_axis * dCon.CUBE_SIZE))
pygame.draw.rect(self.screen, Colors.BLACK, self.field, BORDER_THICKNESS)
def set_stone_image(self):
self.plant_image=self.image_loader.return_stone()
self.screen.blit(self.plant_image, (self.x_axis * dCon.CUBE_SIZE, self.y_axis * dCon.CUBE_SIZE))
pygame.draw.rect(self.screen, Colors.BLACK, self.field, BORDER_THICKNESS)
def random_plant(self): #Probably will not be used later only for demo purpouse
return self.image_loader.return_random_plant()
def return_plant(self):
return self.plant
def get_hydrate_stats(self):
return self.plant.get_hydrate_stats()
def print_status(self):
return f"wspolrzedne: (X:{self.x_axis} Y:{self.y_axis}) "+self.plant.report_status()
def irrigatePlant(self):
self.plant.stan.nawodnienie = 100
def setHydrate(self,index):
if(index==0):
self.plant.stan.nawodnienie=random.randint(0,60)
elif(index==1):
self.plant.stan.nawodnienie=random.randint(61,100)
elif(index==-1):
pass