#!/usr/bin/env python3 """ Example automation script using --exec flag Usage: ./mcrogueface game.py --exec example_automation.py """ import mcrfpy from mcrfpy import automation class GameAutomation: def __init__(self): self.frame_count = 0 self.test_phase = 0 print("Automation: Initialized") def periodic_test(self): """Called every second to perform automation tasks""" self.frame_count = mcrfpy.getFrame() print(f"Automation: Running test at frame {self.frame_count}") # Take periodic screenshots if self.test_phase % 5 == 0: filename = f"automation_screenshot_{self.test_phase}.png" automation.screenshot(filename) print(f"Automation: Saved {filename}") # Simulate user input based on current scene scene = mcrfpy.currentScene() print(f"Automation: Current scene is '{scene}'") if scene == "main_menu" and self.test_phase < 5: # Click start button automation.click(512, 400) print("Automation: Clicked start button") elif scene == "game": # Perform game actions if self.test_phase % 3 == 0: automation.hotkey("i") # Toggle inventory print("Automation: Toggled inventory") else: # Random movement import random key = random.choice(["w", "a", "s", "d"]) automation.keyDown(key) automation.keyUp(key) print(f"Automation: Pressed '{key}' key") self.test_phase += 1 # Stop after 20 tests if self.test_phase >= 20: print("Automation: Test suite complete") mcrfpy.delTimer("automation_test") # Could also call mcrfpy.quit() to exit the game # Create automation instance automation_instance = GameAutomation() # Register periodic timer mcrfpy.setTimer("automation_test", automation_instance.periodic_test, 1000) print("Automation: Script loaded - tests will run every second") print("Automation: The game and automation share the same Python environment")