5c12f8acdc
Improved logs *stats are displayed every 2 seconds, *debug logs are visible; Added interaction between GC, house and landfill; Collecting trash bug;
71 lines
3.3 KiB
Python
71 lines
3.3 KiB
Python
import pygame
|
|
import sys
|
|
import random
|
|
from enum import Enum
|
|
from sprites.cell import Cell
|
|
from enums.house_image import House_image
|
|
|
|
PLASTIC = 0 # blue
|
|
GLASS = 1 # green
|
|
METAL = 2 # yellow
|
|
|
|
|
|
class House(Cell):
|
|
def __init__(self, x, y, max_plastic, max_glass, max_metal):
|
|
Cell.__init__(self, x, y)
|
|
self.image = pygame.image.load(House_image.house.value)
|
|
self.rubbish = [random.randint(0, max_plastic), random.randint(
|
|
0, max_glass), random.randint(0, max_metal)] # plastic, glass, metal
|
|
|
|
self.max_plastic = max_plastic
|
|
self.max_glass = max_glass
|
|
self.max_metal = max_metal
|
|
|
|
def generate_rubbish(self):
|
|
if(random.randint(0, 25) == 1): # 1/25 szansa na wyrzucenie śmiecia w klatce
|
|
thrash_type = random.randint(0, 2)
|
|
if(thrash_type == 0 and self.rubbish[thrash_type] < self.max_plastic):
|
|
self.rubbish[thrash_type] = self.rubbish[thrash_type] + 1
|
|
if(thrash_type == 1 and self.rubbish[thrash_type] < self.max_glass):
|
|
self.rubbish[thrash_type] = self.rubbish[thrash_type] + 1
|
|
if(thrash_type == 2 and self.rubbish[thrash_type] < self.max_metal):
|
|
self.rubbish[thrash_type] = self.rubbish[thrash_type] + 1
|
|
|
|
#mozna ladniej?
|
|
if(self.rubbish[PLASTIC] == self.max_plastic):
|
|
if(self.rubbish[GLASS] == self.max_glass):
|
|
if(self.rubbish[METAL] == self.max_metal):
|
|
self.image = pygame.image.load(House_image.full.value) #plastik, szklo, metal
|
|
else:
|
|
self.image = pygame.image.load(House_image.plastic_glass.value) #plastik, szklo
|
|
elif(self.rubbish[METAL] == self.max_metal):
|
|
self.image = pygame.image.load(House_image.plastic_metal.value) #plastik, metal
|
|
else:
|
|
self.image = pygame.image.load(House_image.plastic.value) #plastik
|
|
elif(self.rubbish[GLASS] == self.max_glass):
|
|
if(self.rubbish[METAL] == self.max_metal):
|
|
self.image = pygame.image.load(House_image.glass_metal.value) #szklo, metal
|
|
else:
|
|
self.image = pygame.image.load(House_image.glass.value) #szklo
|
|
elif(self.rubbish[METAL] == self.max_metal):
|
|
self.image = pygame.image.load(House_image.metal.value) #metal
|
|
else:
|
|
self.image = pygame.image.load(House_image.house.value) #niezapelnione
|
|
|
|
def give_away_rubbish(self, plastic, glass, metal):
|
|
print("HOUSE>> Before giving away "+str(self.rubbish[PLASTIC])+" plastic, "+str(self.rubbish[GLASS])+" glass, "+str(self.rubbish[METAL])+" metal, ")
|
|
self.rubbish[PLASTIC] -= plastic
|
|
self.rubbish[GLASS] -= glass
|
|
self.rubbish[METAL] -= metal
|
|
print("HOUSE>> Gave away "+str(plastic)+" plastic, "+str(glass)+" glass, "+str(metal)+" metal, ")
|
|
print("HOUSE>> After giving away "+str(self.rubbish[PLASTIC])+" plastic, "+str(self.rubbish[GLASS])+" glass, "+str(self.rubbish[METAL])+" metal, ")
|
|
|
|
def check_rubbish_status(self):
|
|
print("plastic: " + str(self.rubbish[PLASTIC]) + " glass: " + str(
|
|
self.rubbish[GLASS]) + " metal: " + str(self.rubbish[METAL]))
|
|
|
|
def get_rubbish_data(self):
|
|
return self.rubbish
|
|
|
|
def get_coordinates(self):
|
|
return self.x, self.y |