#!/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")