#!/usr/bin/env python3 """ McRogueFace Automation API Example This demonstrates how to use the automation API for testing game UIs. The API is PyAutoGUI-compatible for easy migration of existing tests. """ from mcrfpy import automation import mcrfpy import time def automation_demo(): """Demonstrate all automation API features""" print("=== McRogueFace Automation API Demo ===\n") # 1. Screen Information print("1. Screen Information:") screen_size = automation.size() print(f" Screen size: {screen_size[0]}x{screen_size[1]}") mouse_pos = automation.position() print(f" Current mouse position: {mouse_pos}") on_screen = automation.onScreen(100, 100) print(f" Is (100, 100) on screen? {on_screen}") print() # 2. Mouse Movement print("2. Mouse Movement:") print(" Moving to center of screen...") center_x, center_y = screen_size[0]//2, screen_size[1]//2 automation.moveTo(center_x, center_y, duration=0.5) print(" Moving relative by (100, 100)...") automation.moveRel(100, 100, duration=0.5) print() # 3. Mouse Clicks print("3. Mouse Clicks:") print(" Single click...") automation.click() time.sleep(0.2) print(" Double click...") automation.doubleClick() time.sleep(0.2) print(" Right click...") automation.rightClick() time.sleep(0.2) print(" Triple click...") automation.tripleClick() print() # 4. Keyboard Input print("4. Keyboard Input:") print(" Typing message...") automation.typewrite("Hello from McRogueFace automation!", interval=0.05) print(" Pressing Enter...") automation.keyDown("enter") automation.keyUp("enter") print(" Hotkey Ctrl+A (select all)...") automation.hotkey("ctrl", "a") print() # 5. Drag Operations print("5. Drag Operations:") print(" Dragging from current position to (500, 500)...") automation.dragTo(500, 500, duration=1.0) print(" Dragging relative by (-100, -100)...") automation.dragRel(-100, -100, duration=0.5) print() # 6. Scroll Operations print("6. Scroll Operations:") print(" Scrolling up 5 clicks...") automation.scroll(5) time.sleep(0.5) print(" Scrolling down 5 clicks...") automation.scroll(-5) print() # 7. Screenshots print("7. Screenshots:") print(" Taking screenshot...") success = automation.screenshot("automation_demo_screenshot.png") print(f" Screenshot saved: {success}") print() print("=== Demo Complete ===") def create_test_ui(): """Create a simple UI for testing automation""" print("Creating test UI...") # Create a test scene mcrfpy.createScene("automation_test") mcrfpy.setScene("automation_test") # Add some UI elements ui = mcrfpy.sceneUI("automation_test") # Add a frame frame = mcrfpy.Frame(50, 50, 300, 200) ui.append(frame) # Add a caption caption = mcrfpy.Caption(60, 60, "Automation Test UI") ui.append(caption) print("Test UI created!") if __name__ == "__main__": # Create test UI first create_test_ui() # Run automation demo automation_demo() print("\nYou can now use the automation API to test your game!")