def __init__(self): Tk.__init__(self) self.wm_title("Tekken Bot Prime") self.iconbitmap('TekkenData/tekken_bot_close.ico') self.color_scheme_config = ConfigReader.ConfigReader("color_scheme") self.color_scheme_config.add_comment("colors with names -> http://www.science.smith.edu/dftwiki/images/3/3d/TkInterColorCharts.png") self.changed_color_scheme("Current", False) self.menu = Menu(self) self.configure(menu=self.menu) self.text = Text(self, wrap="word") sys.stdout = TextRedirector(self.text, "stdout") try: with open("TekkenData/tekken_bot_readme.txt") as fr: lines = fr.readlines() for line in lines: print(line) except: print("Error reading readme file.") self.overlay = fdo.GUI_FrameDataOverlay(self) self.checkbox_dict = {} self.column_menu = Menu(self.menu) for i, enum in enumerate(fdo.DataColumns): bool = self.overlay.redirector.columns_to_print[i] self.add_checkbox(self.column_menu, enum, enum.name, bool, self.changed_columns) self.menu.add_cascade(label='Columns', menu=self.column_menu) self.display_menu = Menu(self.menu) for enum in fdo.DisplaySettings: default = self.overlay.tekken_config.get_property(fdo.DisplaySettings.config_name(), enum.name, False) self.add_checkbox(self.display_menu, enum, enum.name, default, self.changed_display) self.menu.add_cascade(label="Display", menu=self.display_menu) self.color_scheme_menu = Menu(self.menu) self.radio_var = StringVar() for section in self.color_scheme_config.parser.sections(): if section not in ("Comments", "Current"): self.color_scheme_menu.add_radiobutton(label=section, variable=self.radio_var, value=section, command=lambda : self.changed_color_scheme(self.radio_var.get())) self.menu.add_cascade(label="Color Scheme", menu=self.color_scheme_menu) self.text.grid(row = 2, column = 0, columnspan=2, sticky=N+S+E+W) #self.grid_rowconfigure(0, weight=1) self.grid_rowconfigure(2, weight=1) self.grid_columnconfigure(0, weight=1) #self.grid_columnconfigure(1, weight=1) self.geometry(str(720) + 'x' + str(720)) self.overlay.update_launcher() self.overlay.hide()
def start_overlay(self): if self.mode == OverlayMode.FrameData: self.overlay = fdo.GUI_FrameDataOverlay(self, self.launcher) self.overlay.hide() #if self.mode == OverlayMode.Timeline: # self.overlay = tlo.GUI_TimelineOverlay(self, self.launcher) # self.overlay.hide() if self.mode == OverlayMode.CommandInput: self.overlay = cio.GUI_CommandInputOverlay(self, self.launcher) self.overlay.hide() if self.mode == OverlayMode.PunishCoach: self.overlay = pco.GUI_PunishCoachOverlay(self, self.launcher) self.overlay.hide() if self.mode == OverlayMode.MatchupRecord: self.overlay = mso.GUI_MatchStatOverlay(self, self.launcher) self.overlay.hide() if self.mode == OverlayMode.DebugInfo: self.overlay = dio.GUI_DebugInfoOverlay(self, self.launcher) self.overlay.hide()
def start_overlay(self): self.overlay = fdo.GUI_FrameDataOverlay(self, self.launcher) self.overlay.hide()
def __init__(self): self.overlay = None Tk.__init__(self) self.wm_title("SCUFFLE") self.iconbitmap('Data/icon.ico') self.color_scheme_config = ConfigReader.ConfigReader("color_scheme") self.color_scheme_config.add_comment( "colors with names -> http://www.science.smith.edu/dftwiki/images/3/3d/TkInterColorCharts.png" ) self.changed_color_scheme("Current", False) self.menu = Menu(self) self.configure(menu=self.menu) self.text = Text(self, wrap="word") self.stdout = sys.stdout self.var_print_frame_data_to_file = BooleanVar(value=False) # args for below: widget, stdout, callback_function, var_print_frame_data_to_file,tag="stdout" sys.stdout = TextRedirector(self.text, sys.stdout, self.write_to_overlay, self.var_print_frame_data_to_file, "stdout") self.stderr = sys.stderr sys.stderr = TextRedirector(self.text, sys.stderr, self.write_to_error, "stderr") self.text.tag_configure("stderr", foreground="#b22222") try: with open("Data/SCUFFLE_readme.txt") as fr: lines = fr.readlines() for line in lines: print(line) except: print("Error reading readme file.") updates = VersionChecker.check_version() if updates: self.wm_title("SCUFFLE (Updates Available)") print("SCUFFLE Starting...") self.launcher = GameStateManager() self.overlay = fdo.GUI_FrameDataOverlay(self, self.launcher) #self.graph = tlo.GUI_TimelineOverlay(self, self.launcher) self.tekken_bot_menu = Menu(self.menu) self.tekken_bot_menu.add_command(label="Restart", command=self.restart) self.menu.add_cascade(label="SCUFFLE", menu=self.tekken_bot_menu) self.tools_menu = Menu(self.menu) self.move_viewer = None self.tools_menu.add_command(label="Launch Move Viewer", command=self.launch_move_viewer) self.move_id_ometer = None self.tools_menu.add_command(label="Launch Move-Id-Ometer", command=self.launch_move_id_ometer) self.do_show_all_hitbox_data = BooleanVar() self.do_show_all_hitbox_data.set(False) self.tools_menu.add_checkbutton( label= 'Show frame data for all hitboxes (useful for moves with \'tip\' properties)', onvalue=True, offvalue=False, variable=self.do_show_all_hitbox_data) self.tools_menu.add_command(label="Dump all frame data to console", command=self.dump_frame_data) self.do_print_debug_values = BooleanVar() self.do_print_debug_values.set(False) #self.tools_menu.add_checkbutton(label='DEBUG: Print Every Frame (WARNING: CPU USAGE HIGH)', onvalue=True, offvalue=False, variable=self.do_print_debug_values) self.menu.add_cascade(label="Advanced Tools", menu=self.tools_menu) self.checkbox_dict = {} self.column_menu = Menu(self.menu) for i, enum in enumerate(fdo.DataColumns): bool = self.overlay.redirector.columns_to_print[i] self.add_checkbox( self.column_menu, enum, "{} ({})".format( enum.name.replace('X', ' ').strip(), fdo.DataColumnsToMenuNames[enum]), bool, self.changed_columns) self.menu.add_cascade(label='Columns', menu=self.column_menu) self.display_menu = Menu(self.menu) for enum in ovr.DisplaySettings: default = self.overlay.tekken_config.get_property( ovr.DisplaySettings.config_name(), enum.name, False) self.add_checkbox(self.display_menu, enum, enum.name, default, self.changed_display) self.menu.add_cascade(label="Display", menu=self.display_menu) self.color_scheme_menu = Menu(self.menu) self.scheme_var = StringVar() for section in self.color_scheme_config.parser.sections(): if section not in ("Comments", "Current"): self.color_scheme_menu.add_radiobutton( label=section, variable=self.scheme_var, value=section, command=lambda: self.changed_color_scheme(self.scheme_var. get())) self.menu.add_cascade(label="Color Scheme", menu=self.color_scheme_menu) self.tekken_bot_menu = Menu(self.menu) self.tekken_bot_menu.add_command(label=VersionChecker.CURRENT_VERSION) self.tekken_bot_menu.add_command(label="Check for new version", command=self.print_release_notes) self.tekken_bot_menu.add_command(label="Download Latest Release", command=self.download_latest_release) self.menu.add_cascade(label="Version", menu=self.tekken_bot_menu) self.text.grid(row=2, column=0, columnspan=2, sticky=N + S + E + W) #self.grid_rowconfigure(0, weight=1) self.grid_rowconfigure(2, weight=1) self.grid_columnconfigure(0, weight=1) #self.grid_columnconfigure(1, weight=1) self.geometry(str(920) + 'x' + str(720)) self.previous_working_pid = 0 self.update_launcher() self.overlay.hide() # hides old overlay self.protocol("WM_DELETE_WINDOW", self.on_closing)
def reboot_overlay(self): self.overlay.restore_stdout() self.overlay.toplevel.destroy() self.overlay = fdo.GUI_FrameDataOverlay(self) self.overlay.update_launcher() self.overlay.hide()
def __init__(self): self.overlay = None Tk.__init__(self) self.wm_title("Tekken Bot Prime") self.iconbitmap('TekkenData/tekken_bot_close.ico') self.color_scheme_config = ConfigReader.ConfigReader("color_scheme") self.color_scheme_config.add_comment( "colors with names -> http://www.science.smith.edu/dftwiki/images/3/3d/TkInterColorCharts.png" ) self.changed_color_scheme("Current", False) self.menu = Menu(self) self.configure(menu=self.menu) self.text = Text(self, wrap="word") self.stdout = sys.stdout self.var_print_frame_data_to_file = BooleanVar(value=False) sys.stdout = TextRedirector(self.text, sys.stdout, self.write_to_overlay, self.var_print_frame_data_to_file, "stdout") self.stderr = sys.stderr sys.stderr = TextRedirector(self.text, sys.stderr, self.write_to_error, "stderr") self.text.tag_configure("stderr", foreground="#b22222") try: with open("TekkenData/tekken_bot_readme.txt") as fr: lines = fr.readlines() for line in lines: print(line) except: print("Error reading readme file.") VersionChecker.check_version() print("Tekken Bot Starting...") self.launcher = FrameDataLauncher(False) self.overlay = fdo.GUI_FrameDataOverlay(self, self.launcher) #self.graph = tlo.GUI_TimelineOverlay(self, self.launcher) self.tekken_bot_menu = Menu(self.menu) self.tekken_bot_menu.add_command(label="Restart", command=self.restart) self.tekken_bot_menu.add_checkbutton( label="Print Frame Data To \"TekkenData/frame_data_output.txt\"", onvalue=True, offvalue=False, variable=self.var_print_frame_data_to_file) self.menu.add_cascade(label="Tekken Bot", menu=self.tekken_bot_menu) self.checkbox_dict = {} self.column_menu = Menu(self.menu) for i, enum in enumerate(fdo.DataColumns): bool = self.overlay.redirector.columns_to_print[i] self.add_checkbox( self.column_menu, enum, "{} ({})".format( enum.name.replace('X', ' ').strip(), fdo.DataColumnsToMenuNames[enum]), bool, self.changed_columns) self.menu.add_cascade(label='Columns', menu=self.column_menu) self.display_menu = Menu(self.menu) for enum in ovr.DisplaySettings: default = self.overlay.tekken_config.get_property( ovr.DisplaySettings.config_name(), enum.name, False) self.add_checkbox(self.display_menu, enum, enum.name, default, self.changed_display) self.menu.add_cascade(label="Display", menu=self.display_menu) self.color_scheme_menu = Menu(self.menu) self.scheme_var = StringVar() for section in self.color_scheme_config.parser.sections(): if section not in ("Comments", "Current"): self.color_scheme_menu.add_radiobutton( label=section, variable=self.scheme_var, value=section, command=lambda: self.changed_color_scheme(self.scheme_var. get())) self.menu.add_cascade(label="Color Scheme", menu=self.color_scheme_menu) self.overlay_mode_menu = Menu(self.menu) self.overlay_var = StringVar() for mode in OverlayMode: self.overlay_mode_menu.add_radiobutton( label=OverlayModeToDisplayName[mode], variable=self.overlay_var, value=mode.name, command=lambda: self.changed_mode(self.overlay_var.get())) self.menu.add_cascade(label="Mode", menu=self.overlay_mode_menu) self.mode = OverlayMode.FrameData self.tekken_bot_menu = Menu(self.menu) self.tekken_bot_menu.add_command(label=VersionChecker.CURRENT_VERSION) self.tekken_bot_menu.add_command(label="Check for new version", command=self.print_release_notes) self.tekken_bot_menu.add_command(label="Download Latest Release", command=self.download_latest_release) self.menu.add_cascade(label="Version", menu=self.tekken_bot_menu) self.text.grid(row=2, column=0, columnspan=2, sticky=N + S + E + W) #self.grid_rowconfigure(0, weight=1) self.grid_rowconfigure(2, weight=1) self.grid_columnconfigure(0, weight=1) #self.grid_columnconfigure(1, weight=1) self.geometry(str(920) + 'x' + str(720)) self.update_launcher() self.overlay.hide() self.protocol("WM_DELETE_WINDOW", self.on_closing)