# Import the game code
import __init__

import argparse
import tomllib
import pathlib
import pygame
import os

# Store the current working directory
# This is used to revert the cd change
originalCWD = os.getcwd()

# Get the path of the game
basePath = pathlib.Path(__file__).parent.resolve()

# Set the current working directory
# to the base path of the game
os.chdir(basePath)

# Load the game.toml data
with open('game.toml', 'r') as f:
    gameData = tomllib.loads(f.read())

# Parse command line arguments
parser = argparse.ArgumentParser(prog=gameData['name'])
parser.add_argument('-sw', '--width', type=int, default=1280)
parser.add_argument('-sh', '--height', type=int, default=720)
parser.add_argument('-f', '--fullscreen', action='store_true')
args = parser.parse_args()

# Initialise screen
flags = 0
if args.fullscreen: flags |= pygame.FULLSCREEN
screen = pygame.display.set_mode((args.width, args.height), flags)
pygame.display.set_caption(gameData['name'])

# Initialise game
game = __init__.Game(screen, screen.size)

# Set to False when the game should exit
run = True

while run:
    # Event loop
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            run = False
        
        game.onEvent(event)
    
    # Draw loop
    game.draw()

# Clean up
os.chdir(originalCWD)
game.close()
pygame.quit()