From 43926eb6da2e359329f732dc5775542a60d44b69 Mon Sep 17 00:00:00 2001 From: Thaloria Date: Sun, 16 Oct 2022 16:39:27 +0200 Subject: [PATCH] added mining ui mode --- Mine.py | 2 +- combined_user_interface.py | 23 +++- digging_main2.py | 202 ------------------------------ dig_overlay.py => mine_overlay.py | 7 +- 4 files changed, 25 insertions(+), 209 deletions(-) delete mode 100644 digging_main2.py rename dig_overlay.py => mine_overlay.py (88%) diff --git a/Mine.py b/Mine.py index 339c1a4..8559065 100644 --- a/Mine.py +++ b/Mine.py @@ -3,7 +3,7 @@ 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 +from mine_overlay import DiggingOverlay class Mine: diff --git a/combined_user_interface.py b/combined_user_interface.py index 3d36aee..3dd99b3 100644 --- a/combined_user_interface.py +++ b/combined_user_interface.py @@ -2,13 +2,14 @@ import threading import tkinter as tk from tkinter import ttk +from mine_overlay import DiggingOverlay class PrimaryOverlay(threading.Thread): def __init__(self): threading.Thread.__init__(self) - + self.MiningOverlay = DiggingOverlay self.run_mode = 'init' self.root = tk.Tk @@ -47,9 +48,11 @@ class PrimaryOverlay(threading.Thread): self.StatusLabel = tk.Label # self.TkPosition = config.returnEnemyPlayerOverlayPos() + self.start() def run(self): + self.MiningOverlay = DiggingOverlay() self.root = tk.Tk() self.rb_frame = tk.Frame(self.root) @@ -118,9 +121,12 @@ class PrimaryOverlay(threading.Thread): self.root.attributes('-topmost', 1) # fenster immer im vordergrund # self.root.wm_attributes("-disabled", True) # self.root.configure(background='black') - + self.hide_mining_overlay() self.root.mainloop() + def callback(self): + self.root.quit() + def destroy(self): self.root.destroy() @@ -136,8 +142,6 @@ class PrimaryOverlay(threading.Thread): self.StatusLabel.configure(text='started') self.run_mode = 'started' - # self.EnemyLabel.pack() - def stop_button_callback(self): self.StartButton.configure(state=tk.NORMAL) self.StopButton.configure(state=tk.DISABLED) @@ -169,6 +173,7 @@ class PrimaryOverlay(threading.Thread): self.SpawnLabel.configure(text="Spawn:") self.EnergyLabel.configure(text="Runs:") self.emitter_use.set('multi') + self.hide_mining_overlay() elif self.rb_int.get() == 2 or self.rb_int.get() == 3: self.EnergyEntry.configure(state=tk.DISABLED) self.energy_use.set('') @@ -179,6 +184,7 @@ class PrimaryOverlay(threading.Thread): self.EmitterLabel.configure(text="") self.SpawnLabel.configure(text="") self.EnergyLabel.configure(text="") + self.hide_mining_overlay() elif self.rb_int.get() == 4: self.EnergyEntry.configure(state=tk.DISABLED) self.energy_use.set('') @@ -189,6 +195,7 @@ class PrimaryOverlay(threading.Thread): self.EmitterLabel.configure(text="") self.SpawnLabel.configure(text="Spawn:") self.EnergyLabel.configure(text="") + self.hide_mining_overlay() elif self.rb_int.get() == 5: self.EnergyEntry.configure(state=tk.NORMAL) self.energy_use.set('100') @@ -200,6 +207,7 @@ class PrimaryOverlay(threading.Thread): self.EmitterLabel.configure(text="Mode:") self.SpawnLabel.configure(text="") self.EnergyLabel.configure(text="Runs:") + self.hide_mining_overlay() elif self.rb_int.get() == 6: self.EnergyEntry.configure(state=tk.NORMAL) self.energy_use.set('2') @@ -210,6 +218,7 @@ class PrimaryOverlay(threading.Thread): self.EmitterLabel.configure(text="") self.SpawnLabel.configure(text="") self.EnergyLabel.configure(text="Runs:") + self.show_mining_overlay() # def get_run_mode(self): @@ -217,3 +226,9 @@ class PrimaryOverlay(threading.Thread): def update_status_label(self, msg): self.StatusLabel.configure(text=msg) + + def hide_mining_overlay(self): + self.MiningOverlay.hide_window() + + def show_mining_overlay(self): + self.MiningOverlay.show_window() diff --git a/digging_main2.py b/digging_main2.py deleted file mode 100644 index 1c2bf2a..0000000 --- a/digging_main2.py +++ /dev/null @@ -1,202 +0,0 @@ -import sys - -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 - - runcounter = 2 - - if runcounter == 2: - double_dig = True - else: - double_dig = False - - while runcounter != 0: - if double_dig and runcounter == 1: - dig_point(290, 100, 200) - level = 1 - plot_size = 45 - DIG_TIME = 100 - cv.waitKey(2000) - runcounter = runcounter - 1 - - 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() - sys.exit() diff --git a/dig_overlay.py b/mine_overlay.py similarity index 88% rename from dig_overlay.py rename to mine_overlay.py index 6768999..051617d 100644 --- a/dig_overlay.py +++ b/mine_overlay.py @@ -5,16 +5,19 @@ import tkinter as tk class DiggingOverlay(threading.Thread): - def __init__(self, config): + def __init__(self): threading.Thread.__init__(self) self.root = tk.Tk self.EnemyLabel = tk.Label - self.TkPosition = config.returnDiggingOverlayPos() + self.TkPosition = '1440x1150+570+22' self.start() def callback(self): self.root.quit() + def destroy(self): + self.root.destroy() + def run(self): self.root = tk.Tk() self.root.geometry(self.TkPosition)