def move_to(x, y): while x > get_pos_x(): move(East) while x < get_pos_x(): move(West) while y > get_pos_y(): move(North) while y < get_pos_y(): move(South) # plant_grid will plant a square of the given list of entities. If the water level is below waterBelow, # it will water the tile. If requireSoil is true, it will till the tile if it's not soil. # plantWith - list of entities to plant. The entities will alternate if repeated. def plant_grid(width, height, plantWith, waterBelow, requireSoil): tracker = 0 others = {East:West, West:East} sideDir = East # first pass over, checking if anything can be harvested. if so, harvest. # then check what type of ground is down, if it's not soil then till. # then if it's below 75% water and i have some water, give it some. # then plant a pumpkin. for row in range(height): for col in range(width): if can_harvest(): harvest() if requireSoil: if get_ground_type() != Grounds.Soil: till() while get_water() < waterBelow: if not use_item(Items.Water): break index = tracker % len(plantWith) tracker += 1 plant(plantWith[index]) # if it's not the last pass, then move if col < width - 1: move(sideDir) if row < height - 1: sideDir = others[sideDir] move(North)