extends Control
class_name EscapeMenu
## Escape menu that opens when Escape is pressed
## Allows player to exit the game or resume playing

# Visibility
var is_visible: bool = false

# Player reference (to control mouse mode)
var player: Character = null

func _ready():
	# Start hidden
	hide()
	is_visible = false

func _input(event):
	# Toggle on Escape press
	if event.is_action_pressed("quit"):
		toggle_menu()
		get_viewport().set_input_as_handled()

## Set the player reference
func set_player(p: Character):
	player = p

## Toggle menu visibility
func toggle_menu():
	is_visible = !is_visible
	if is_visible:
		show()
		# Release mouse when opening menu
		Input.mouse_mode = Input.MOUSE_MODE_VISIBLE
	else:
		hide()
		# Recapture mouse when closing menu
		if player and player.is_multiplayer_authority():
			Input.mouse_mode = Input.MOUSE_MODE_CAPTURED

## Called when Resume button is clicked
func _on_resume_pressed():
	toggle_menu()

## Called when Exit button is clicked
func _on_exit_pressed():
	get_tree().quit()
