@tool
extends EditorInspectorPlugin

const CONFIG_DIALOG = preload("res://addons/transition_configurator/config_dialog.gd")

var config_dialog: Window = null

func _can_handle(object: Object) -> bool:
	return object is TransitionPiece

func _parse_begin(object: Object) -> void:
	var container = VBoxContainer.new()
	container.add_theme_constant_override("separation", 10)
	
	# Header label
	var header = Label.new()
	header.text = "Exit Configuration"
	header.add_theme_font_size_override("font_size", 14)
	container.add_child(header)
	
	# Configure button
	var button = Button.new()
	button.text = "Configure Exit..."
	button.custom_minimum_size = Vector2(200, 40)
	button.pressed.connect(_on_configure_pressed.bind(object))
	container.add_child(button)
	
	# Separator
	var separator = HSeparator.new()
	separator.add_theme_constant_override("separation", 10)
	container.add_child(separator)
	
	add_custom_control(container)

func _on_configure_pressed(transition_piece: TransitionPiece) -> void:
	if config_dialog == null:
		config_dialog = CONFIG_DIALOG.new()
		EditorInterface.get_editor_main_screen().add_child(config_dialog)
	
	config_dialog.transition_piece = transition_piece
	config_dialog.populate_rooms()
	
	EditorInterface.popup_dialog_centered(config_dialog, Vector2i(900, 600))
