IntelligentTractor/src/map.py

84 lines
3.0 KiB
Python

from cmath import sqrt
import pygame
from settings import screen_height, screen_width, SIZE, SPECIES, block_size, tile, road_coords, fields_amount, field_size, field_height, field_width
from src.Plant import Plant
import random
from src.Field import Field
def get_type_by_position(fields, x, y):
for field in fields:
if field.x == x and field.y == y:
return field.plant_type
return None
def get_cost_by_type(plant_type):
#plant_type == None, when field is empty.
if plant_type == None:
return 200
elif plant_type == 'carrot':
return 300
elif plant_type == 'potato':
return 500
elif plant_type == 'beetroot':
return 500
elif plant_type == 'wheat':
return 1000
#else, means that field is type of road.
else:
return 100
fields = pygame.sprite.Group()
def drawRoads(screen):
#drawing roads:
road = pygame.image.load("assets/road.jpeg")
road = pygame.transform.scale(road, tile)
for x in road_coords:
for block in range(26):
screen.blit(road, (x*block_size, block * 36))
fields.add(Field('road', x*block_size, block * 36, None, get_cost_by_type('road'), None, None, None, None, 'road', None, None))
for y in road_coords:
for block in range(26):
screen.blit(road, (block * 36, y*block_size))
fields.add(Field('road', block * 36, y*block_size, None, get_cost_by_type('road'), None, None, None, None, 'road', None, None))
barn_img = pygame.image.load('assets/barn.png')
barn = pygame.transform.scale(barn_img, tile)
screen.blit(barn, (0, 900))
return screen
def seedForFirstTime():
plant_group = pygame.sprite.Group()
for field in range(fields_amount):
plant = random.choice(SPECIES)
blocks_seeded_in_field = 0
while (blocks_seeded_in_field < field_size):
x = (((field%5)*((block_size*(field_width+1)))) + ((blocks_seeded_in_field % field_width)*block_size) + ((3/2)*block_size))
y = ((int(field/5)*((block_size*(field_width+1)))) + ((int(blocks_seeded_in_field/field_height))*block_size) + ((3/2)*block_size))
new_plant = Plant(plant,0, x, y)
blocks_seeded_in_field = blocks_seeded_in_field + 1
plant_group.add(new_plant)
fields.add(Field('field', x-18, y-18, None, get_cost_by_type(plant), None, None, None, None, plant, None, None))
return plant_group
def return_fields_list():
return fields
# to-be-done with minecraft farmland graphic xD
# maybe this function should be in drawRoads (ofc with changed name), not separated
#def drawFields(background):
#field = pygame.image.load()
#field = pygame.transform.scale(field, tile)
#for x in range(25):
#if block not in road_coords_x:
#screen.blit(field, (x*block_size, block * 36))
#for y in range(25):
#if block not in road_coords_y:
#screen.blit(field, (block*36, y*block_size))
#return screen