97 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Python
		
	
	
	
			
		
		
	
	
			97 lines
		
	
	
		
			3.3 KiB
		
	
	
	
		
			Python
		
	
	
	
#!/usr/bin/env python3
 | 
						|
"""Test Grid creation with None texture - should work with color cells only"""
 | 
						|
import mcrfpy
 | 
						|
from mcrfpy import automation
 | 
						|
import sys
 | 
						|
 | 
						|
def test_grid_none_texture(runtime):
 | 
						|
    """Test Grid functionality without texture"""
 | 
						|
    print("\n=== Testing Grid with None texture ===")
 | 
						|
    
 | 
						|
    # Test 1: Create Grid with None texture
 | 
						|
    try:
 | 
						|
        grid = mcrfpy.Grid(10, 10, None, mcrfpy.Vector(50, 50), mcrfpy.Vector(400, 400))
 | 
						|
        print("✓ Grid created successfully with None texture")
 | 
						|
    except Exception as e:
 | 
						|
        print(f"✗ Failed to create Grid with None texture: {e}")
 | 
						|
        sys.exit(1)
 | 
						|
    
 | 
						|
    # Add to UI
 | 
						|
    ui = mcrfpy.sceneUI("grid_none_test")
 | 
						|
    ui.append(grid)
 | 
						|
    
 | 
						|
    # Test 2: Verify grid properties
 | 
						|
    try:
 | 
						|
        grid_size = grid.grid_size
 | 
						|
        print(f"✓ Grid size: {grid_size}")
 | 
						|
        
 | 
						|
        # Check texture property
 | 
						|
        texture = grid.texture
 | 
						|
        if texture is None:
 | 
						|
            print("✓ Grid texture is None as expected")
 | 
						|
        else:
 | 
						|
            print(f"✗ Grid texture should be None, got: {texture}")
 | 
						|
    except Exception as e:
 | 
						|
        print(f"✗ Property access failed: {e}")
 | 
						|
    
 | 
						|
    # Test 3: Access grid points and set colors
 | 
						|
    try:
 | 
						|
        # Create a checkerboard pattern with colors
 | 
						|
        for x in range(10):
 | 
						|
            for y in range(10):
 | 
						|
                point = grid.at(x, y)
 | 
						|
                if (x + y) % 2 == 0:
 | 
						|
                    point.color = mcrfpy.Color(255, 0, 0, 255)  # Red
 | 
						|
                else:
 | 
						|
                    point.color = mcrfpy.Color(0, 0, 255, 255)  # Blue
 | 
						|
        print("✓ Successfully set grid point colors")
 | 
						|
    except Exception as e:
 | 
						|
        print(f"✗ Failed to set grid colors: {e}")
 | 
						|
    
 | 
						|
    # Test 4: Add entities to the grid
 | 
						|
    try:
 | 
						|
        # Create an entity with its own texture
 | 
						|
        entity_texture = mcrfpy.Texture("assets/kenney_tinydungeon.png", 16, 16)
 | 
						|
        entity = mcrfpy.Entity(mcrfpy.Vector(5, 5), entity_texture, 1, grid)
 | 
						|
        grid.entities.append(entity)
 | 
						|
        print(f"✓ Added entity to grid, total entities: {len(grid.entities)}")
 | 
						|
    except Exception as e:
 | 
						|
        print(f"✗ Failed to add entity: {e}")
 | 
						|
    
 | 
						|
    # Test 5: Test grid interaction properties
 | 
						|
    try:
 | 
						|
        # Test zoom
 | 
						|
        grid.zoom = 2.0
 | 
						|
        print(f"✓ Set zoom to: {grid.zoom}")
 | 
						|
        
 | 
						|
        # Test center
 | 
						|
        grid.center = mcrfpy.Vector(5, 5)
 | 
						|
        print(f"✓ Set center to: {grid.center}")
 | 
						|
    except Exception as e:
 | 
						|
        print(f"✗ Grid properties failed: {e}")
 | 
						|
    
 | 
						|
    # Take screenshot
 | 
						|
    filename = f"grid_none_texture_test_{int(runtime)}.png"
 | 
						|
    result = automation.screenshot(filename)
 | 
						|
    print(f"\nScreenshot saved: {filename} - Result: {result}")
 | 
						|
    print("The grid should show a red/blue checkerboard pattern")
 | 
						|
    
 | 
						|
    print("\n✓ PASS - Grid works correctly without texture!")
 | 
						|
    sys.exit(0)
 | 
						|
 | 
						|
# Set up test scene
 | 
						|
print("Creating test scene...")
 | 
						|
mcrfpy.createScene("grid_none_test")
 | 
						|
mcrfpy.setScene("grid_none_test")
 | 
						|
 | 
						|
# Add a background frame so we can see the grid
 | 
						|
ui = mcrfpy.sceneUI("grid_none_test")
 | 
						|
background = mcrfpy.Frame(0, 0, 800, 600,
 | 
						|
                         fill_color=mcrfpy.Color(200, 200, 200),
 | 
						|
                         outline_color=mcrfpy.Color(0, 0, 0),
 | 
						|
                         outline=2.0)
 | 
						|
ui.append(background)
 | 
						|
 | 
						|
# Schedule test
 | 
						|
mcrfpy.setTimer("test", test_grid_none_texture, 100)
 | 
						|
print("Test scheduled...") |