2021-03-29 20:51:47 +02:00
|
|
|
from TractorLoad import TillageUnit
|
|
|
|
from constants import *
|
|
|
|
from images import *
|
2021-03-29 02:19:55 +02:00
|
|
|
import pygame
|
|
|
|
|
|
|
|
|
2021-03-29 14:33:16 +02:00
|
|
|
def drawUI(board, display, tractor, direction, tillageUnit, field):
|
2021-03-29 21:46:40 +02:00
|
|
|
display.fill(WHITE)
|
|
|
|
makeField(board, display)
|
|
|
|
drawTractor(display, tractor.horizontal_index, tractor.vertical_index, direction)
|
|
|
|
drawInfo(display, tractor, tillageUnit, field)
|
|
|
|
|
|
|
|
pygame.display.update()
|
2021-03-29 02:19:55 +02:00
|
|
|
|
|
|
|
|
2021-03-29 14:33:16 +02:00
|
|
|
def drawInfo(display, tractor, tillageUnit, field):
|
2021-03-29 04:17:31 +02:00
|
|
|
myfont = pygame.font.SysFont('Comic Sans MS', 30)
|
2021-03-29 14:36:28 +02:00
|
|
|
hitches = tractor.hitch
|
|
|
|
if isinstance(tractor.hitch, TillageUnit):
|
|
|
|
hitches = "Tillage Unit"
|
|
|
|
|
|
|
|
text = f"Fuel: {tractor.fuel_tank} \t Hitches: {hitches} \t Header: {tractor.header} \t Engine working: {tractor.engineWorking}"
|
2021-03-29 04:17:31 +02:00
|
|
|
textsurface = myfont.render(text, False, (0, 0, 0))
|
|
|
|
display.blit(textsurface, (50, (DISPLAY_SIZE_VERTICAL - 200)))
|
|
|
|
|
2021-03-29 14:33:16 +02:00
|
|
|
text = f"Tillage Unit Load: {tillageUnit.load}"
|
2021-03-29 13:06:57 +02:00
|
|
|
textsurface = myfont.render(text, False, (0, 0, 0))
|
|
|
|
display.blit(textsurface, (50, (DISPLAY_SIZE_VERTICAL - 150)))
|
|
|
|
|
2021-03-29 17:18:14 +02:00
|
|
|
text = f"Current field: {field.state, field.horizontal/100, field.vertical/100}"
|
2021-03-29 14:33:16 +02:00
|
|
|
textsurface = myfont.render(text, False, (0, 0, 0))
|
|
|
|
display.blit(textsurface, (50, (DISPLAY_SIZE_VERTICAL - 100)))
|
|
|
|
|
2021-03-29 04:17:31 +02:00
|
|
|
|
2021-03-29 02:19:55 +02:00
|
|
|
def makeField(board, screen: pygame.Surface):
|
|
|
|
for i in range(int(HORIZONTAL_TILES_NUMBER)):
|
|
|
|
for j in range(int(VERTICAL_TILES_NUMBER)):
|
|
|
|
field = board[i][j]
|
|
|
|
|
|
|
|
pos_x = i * TILE_SIZE + TILE_SIZE // 2
|
|
|
|
pos_y = j * TILE_SIZE + TILE_SIZE // 2
|
|
|
|
|
2021-03-29 13:06:57 +02:00
|
|
|
if field.state == "toWater":
|
2021-03-29 21:40:55 +02:00
|
|
|
to_water_rect.center = (pos_x, pos_y)
|
|
|
|
screen.blit(to_water, to_water_rect)
|
2021-03-29 13:06:57 +02:00
|
|
|
elif field.state == "toPlow":
|
2021-03-29 21:40:55 +02:00
|
|
|
to_plow_rect.center = (pos_x, pos_y)
|
|
|
|
screen.blit(to_plow, to_plow_rect)
|
2021-03-29 13:06:57 +02:00
|
|
|
elif field.state == "toSeed":
|
2021-03-29 21:40:55 +02:00
|
|
|
to_seed_rect.center = (pos_x, pos_y)
|
|
|
|
screen.blit(to_seed, to_seed_rect)
|
2021-03-29 13:06:57 +02:00
|
|
|
elif field.state == "toCut":
|
2021-03-29 21:40:55 +02:00
|
|
|
to_cut_rect.center = (pos_x, pos_y)
|
|
|
|
screen.blit(to_cut, to_cut_rect)
|
|
|
|
elif field.state == "toFertilize":
|
|
|
|
to_fertilizer_rect.center = (pos_x, pos_y)
|
|
|
|
screen.blit(to_fertilizer, to_fertilizer_rect)
|
2021-03-29 02:19:55 +02:00
|
|
|
|
|
|
|
|
2021-03-29 21:46:40 +02:00
|
|
|
def drawTractor(screen: pygame.Surface, tractor_horizontal_index, tractor_vertical_index, direction):
|
2021-03-29 02:19:55 +02:00
|
|
|
if direction == "UP":
|
2021-03-29 21:46:40 +02:00
|
|
|
screen.blit(tractor_up, (tractor_horizontal_index * TILE_SIZE, tractor_vertical_index * TILE_SIZE))
|
|
|
|
elif direction == "DOWN":
|
|
|
|
screen.blit(tractor_down, (tractor_horizontal_index * TILE_SIZE, tractor_vertical_index * TILE_SIZE))
|
|
|
|
elif direction == "LEFT":
|
|
|
|
screen.blit(tractor_left, (tractor_horizontal_index * TILE_SIZE, tractor_vertical_index * TILE_SIZE))
|
|
|
|
elif direction == "RIGHT":
|
|
|
|
screen.blit(tractor_right, (tractor_horizontal_index * TILE_SIZE, tractor_vertical_index * TILE_SIZE))
|
|
|
|
else:
|
|
|
|
screen.blit(tractor_right, (tractor_horizontal_index * TILE_SIZE, tractor_vertical_index * TILE_SIZE))
|