from Main.TractorLoad import TillageUnit from Main.constants import * from Main.images import * import pygame def drawUI(board, display, tractor, direction, tillageUnit, field): display.fill(WHITE) makeField(board, display) drawTractor(display, tractor.horizontal_index, tractor.vertical_index, direction) drawInfo(display, tractor, tillageUnit, field) pygame.display.update() def drawInfo(display, tractor, tillageUnit, field): myfont = pygame.font.SysFont('Comic Sans MS', 30) 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}" textsurface = myfont.render(text, False, (0, 0, 0)) display.blit(textsurface, (50, (DISPLAY_SIZE_VERTICAL - 200))) text = f"Tillage Unit Load: {tillageUnit.load}" textsurface = myfont.render(text, False, (0, 0, 0)) display.blit(textsurface, (50, (DISPLAY_SIZE_VERTICAL - 150))) text = f"Current field: {field.state, field.horizontal/100, field.vertical/100}" textsurface = myfont.render(text, False, (0, 0, 0)) display.blit(textsurface, (50, (DISPLAY_SIZE_VERTICAL - 100))) 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 if field.state == "toWater": do_podlania_rect.center = (pos_x, pos_y) screen.blit(do_podlania, do_podlania_rect) elif field.state == "toPlow": do_zaorania_rect.center = (pos_x, pos_y) screen.blit(do_zaorania, do_zaorania_rect) elif field.state == "toSeed": do_zasiania_rect.center = (pos_x, pos_y) screen.blit(do_zasiania, do_zasiania_rect) elif field.state == "toCut": do_zebrania_rect.center = (pos_x, pos_y) screen.blit(do_zebrania, do_zebrania_rect) def drawTractor(screen: pygame.Surface, tractor_horizontal_index, tractor_vertical_index, direction): if direction == "UP": 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))