extends Control

## Main Menu Controller
## Handles menu navigation and game start

@onready var continue_button: Button = $VBoxContainer/ContinueButton

func _ready() -> void:
	# Disable continue if no save exists
	continue_button.disabled = not _has_save_file()

func _on_new_game_pressed() -> void:
	print("Starting new game...")
	TimeManager.reset_loop()
	StateManager.reset_all()
	GameManager.change_state(GameManager.GameState.PLAYING)
	get_tree().change_scene_to_file("res://scenes/levels/beach.tscn")

func _on_continue_pressed() -> void:
	if not SaveManager.has_save():
		return
	var save_data := SaveManager.load_game()
	if save_data.is_empty():
		return
	
	# Restore time loop state
	if save_data.has("elapsed_time"):
		TimeManager.elapsed_real_time = save_data["elapsed_time"]
	if save_data.has("current_loop"):
		TimeManager.current_loop = save_data["current_loop"]
	
	# Restore game state
	if save_data.has("state"):
		StateManager.load_save_data(save_data["state"])
	
	GameManager.change_state(GameManager.GameState.PLAYING)
	# Store player position so level can place them
	if save_data.has("player_pos"):
		GameManager.next_spawn_point = "SavedPosition"
	get_tree().change_scene_to_file(save_data.get("scene", "res://scenes/levels/beach.tscn"))

func _on_settings_pressed() -> void:
	UIManager.open_settings()

func _on_quit_pressed() -> void:
	print("Quitting game...")
	get_tree().quit()

func _has_save_file() -> bool:
	return SaveManager.has_save()
