from config_file import UserConfigs import keyboard import cv2 as cv from utils import dig_point, check_for_ok_button from window_capture import WindowCapture from vision import Vision from dig_overlay import DiggingOverlay def run(): # initialize the user-class config = UserConfigs() # initialize the StunWindowCapture class capture_config = UserConfigs() capture_window = WindowCapture(None, "screen_conf", capture_config) # initialize the StunVision class vision_stun = Vision() dig_overlay = DiggingOverlay(config) pause = True level = 1 width = 32 depth = 24 plot_size = 45 DIG_TIME = 100 while True: if keyboard.is_pressed('p') == True: pause = True print('q pressed') elif keyboard.is_pressed('o') == True: pause = False print('o pressed') if pause: # cv.waitKey(500) dig_overlay.show_window() print("pausing") continue dig_overlay.hide_window() if level >= 28: break if level == 23: DIG_TIME = 800 if level == 26: DIG_TIME = 1800 if level <= 10: plot_size = plot_size - 1 elif level % 2 == 0: plot_size = plot_size - 1 p1 = int((config.returnDiggingWindowPos2()[0] / 2) + config.returnDiggingWindowPos2()[2]) p2 = int((config.returnDiggingWindowPos2()[1] / 2) + config.returnDiggingWindowPos2()[3]) # start 705 , 564 -> click # move L D -> click # move U , U , R, R , D , D , L , L # move L D # move U , U , U , U , R, R , R, R, D, D, D, D, L, L, L , L dig_point(p1, p2, DIG_TIME) # cv.circle(screenshot, (p1, p2), 7, (0, 255, 0), -1) i = 0 for e in range(2, width, 2): i = i + 1 tp1 = p1 - (i * plot_size) tp2 = p2 + (i * plot_size) for f in range(0, e, 1): # up click tp2 = tp2 - plot_size if tp2 >= config.returnDiggingWindowPos2()[1] + (plot_size / 2): continue if tp2 <= config.returnDiggingWindowPos2()[3] + (plot_size / 2): continue ''' x = int(tp1 - (plot_size / 2)) y = int(tp2 - ((e * plot_size) - (plot_size / 2))) w = plot_size h = plot_size * e capture_win_lanes = WindowCapture(None, "lanes", None, (w, h, x+w, y+h)) screenshot = capture_win_lanes.get_screenshot() needlew = cv.imread("test1.jpg", cv.IMREAD_UNCHANGED) res = vision_stun.find(needlew, screenshot, 0.9, 1) if len(res) >= 1: break #vision_stun.draw_rectangles(needlew, res) #cv.imshow("screenshot", needlew) #cv.waitKey(150) # ul[0], ul[1], plot_size, plotsize*e # ll -> tp1 - plot/2 ooooooooooo # -> tp2 + plot/2 # ul -> tp1 - plot/2 # -> tp2 - e*plot - plot/2 # lr -> tp1 + plot/2 # -> tp2 - plot/2 # ur -> tp1 + plot/2 # -> tp2 - e*plot - plot/2 ''' dig_point(tp1, tp2, DIG_TIME) # cv.circle(screenshot, (tp1, tp2), 7, (255, 0, 255), -1) # cv.imshow("screenshot", screenshot) # cv.waitKey(150) check_for_ok_button(capture_window, vision_stun, capture_config) if keyboard.is_pressed('p') == True or pause == True: pause = True break tp1 = p1 - (i * plot_size) tp2 = p2 - (i * plot_size) for g in range(0, e, 1): # right click tp1 = tp1 + plot_size if tp2 <= config.returnDiggingWindowPos2()[3] + (plot_size / 2): continue # ll -> tp1 - plot/2 # -> tp2 + plot/2 # ul -> tp1 - plot/2 # -> tp2 - plot/2 # lr -> tp1 + e*plot + plot/2 # -> tp2 + plot/2 # ur -> tp1 + e*plot + plot/2 # -> tp2 - plot/2 dig_point(tp1, tp2, DIG_TIME) # cv.circle(screenshot, (tp1, tp2), 7, (127, 0, 255), -1) # cv.imshow("screenshot", screenshot) # cv.waitKey(150) check_for_ok_button(capture_window, vision_stun, capture_config) if keyboard.is_pressed('p') == True or pause == True: pause = True break tp1 = p1 + (i * plot_size) tp2 = p2 - (i * plot_size) for r in range(0, e, 1): # down click tp2 = tp2 + plot_size if tp2 >= config.returnDiggingWindowPos2()[1] + (plot_size / 2): continue if tp2 <= config.returnDiggingWindowPos2()[3] + (plot_size / 2): continue dig_point(tp1, tp2, DIG_TIME) # cv.circle(screenshot, (tp1, tp2), 7, (255, 0, 127), -1) # cv.imshow("screenshot", screenshot) # cv.waitKey(150) check_for_ok_button(capture_window, vision_stun, capture_config) if keyboard.is_pressed('p') == True or pause == True: pause = True break tp1 = p1 + (i * plot_size) tp2 = p2 + (i * plot_size) for u in range(0, e, 1): # left click tp1 = tp1 - plot_size if tp2 >= config.returnDiggingWindowPos2()[1] + (plot_size / 2): continue dig_point(tp1, tp2, DIG_TIME) # cv.circle(screenshot, (tp1, tp2), 7, (0, 0, 255), -1) # cv.imshow("screenshot", screenshot) # cv.waitKey(150) check_for_ok_button(capture_window, vision_stun, capture_config) if keyboard.is_pressed('p') == True or pause == True: pause = True break if keyboard.is_pressed('p') == True or pause == True: pause = True break if keyboard.is_pressed('p') == True or pause == True: pause = True break level = level + 1 if __name__ == "__main__": run()