diff --git a/fishy/engine/__init__.py b/fishy/engine/__init__.py index 156a158..8b10466 100644 --- a/fishy/engine/__init__.py +++ b/fishy/engine/__init__.py @@ -1 +1,2 @@ from fishy.engine.semifisher.engine import SemiFisherEngine +from fishy.engine.fullautofisher.engine import FullAuto \ No newline at end of file diff --git a/fishy/engine/fullautofisher/engine.py b/fishy/engine/fullautofisher/engine.py index 057c85a..d562068 100644 --- a/fishy/engine/fullautofisher/engine.py +++ b/fishy/engine/fullautofisher/engine.py @@ -120,9 +120,12 @@ class FullAuto(IEngine): walking_time = dist / self.calibrator.move_factor logging.debug(f"walking for {walking_time}") - kb.press('w') + + forward_key = config.get("forward_key", 'w') + kb.press(forward_key) time.sleep(walking_time) - kb.release('w') + kb.release(forward_key) + logging.debug("done") # todo: maybe check if it reached the destination before returning true? return True diff --git a/fishy/engine/fullautofisher/mode/calibrator.py b/fishy/engine/fullautofisher/mode/calibrator.py index 678c1d1..93e6bbc 100644 --- a/fishy/engine/fullautofisher/mode/calibrator.py +++ b/fishy/engine/fullautofisher/mode/calibrator.py @@ -63,9 +63,11 @@ class Calibrator(IMode): x1, y1, rot1 = coords - kb.press('w') + forward_key = config.get("forward_key", 'w') + kb.press(forward_key) time.sleep(walking_time) - kb.release('w') + kb.release(forward_key) + time.sleep(0.5) coords = self.engine.get_coords() diff --git a/fishy/gui/config_top.py b/fishy/gui/config_top.py index 0851caf..a71e75b 100644 --- a/fishy/gui/config_top.py +++ b/fishy/gui/config_top.py @@ -13,11 +13,20 @@ from fishy.helper.config import config from fishy.helper.popup import PopUp -def start_fullfisher_config(gui: 'GUI'): - top = PopUp(helper.empty_function, gui._root, background=gui._root["background"]) +def del_entry_key(event): + event.widget.delete(0, "end") + event.widget.insert(0, str(event.char)) + + +def start_fullfisher_config(gui: 'GUI' ): + def save(): + gui.config.set("forward_key", forward_key_entry.get()) + + top = PopUp(save, gui._root, background=gui._root["background"]) controls_frame = ttk.Frame(top) top.title("Config") + def file_name(): file = config.get("full_auto_rec_file", None) if file is None: @@ -63,6 +72,14 @@ def start_fullfisher_config(gui: 'GUI'): row += 1 + ttk.Label(controls_frame, text="Forward key:").grid(row=row, column=0) + forward_key_entry = ttk.Entry(controls_frame, justify=tk.CENTER) + forward_key_entry.grid(row=row, column=1) + forward_key_entry.insert(0, config.get("forward_key", "w")) + forward_key_entry.bind("", del_entry_key) + + row += 1 + ttk.Label(controls_frame, text="Edit Mode: ").grid(row=row, column=0) edit_state = tk.NORMAL if config.get("full_auto_mode", 0) == FullAutoMode.Recorder.value else tk.DISABLED edit_cb = ttk.Checkbutton(controls_frame, variable=edit_var, state=edit_state, command=lambda: config.set("edit_recorder_mode", edit_var.get())) @@ -111,9 +128,7 @@ def start_semifisher_config(gui: 'GUI'): if web.sub(): gui._notify.set(1) - def del_entry_key(event): - event.widget.delete(0, "end") - event.widget.insert(0, str(event.char)) + top = PopUp(save, gui._root, background=gui._root["background"]) controls_frame = ttk.Frame(top) @@ -160,4 +175,5 @@ if __name__ == '__main__': from fishy.gui import GUI gui = GUI(lambda: IEngineHandler()) gui.call_in_thread(lambda: start_semifisher_config(gui)) + gui.call_in_thread(lambda: start_fullfisher_config(gui)) gui.create()