@tool extends ConfirmationDialog class_name SceneIDRequestDialog signal request_confirmed(prefix: int) var _prefix_edit: SpinBox func _ready() -> void: title = "Request Scene ID" ok_button_text = "Request" cancel_button_text = "Cancel" var v := VBoxContainer.new() add_child(v) # Prefix var h := HBoxContainer.new() v.add_child(h) var l := Label.new() l.text = "Prefix:" h.add_child(l) _prefix_edit = SpinBox.new() _prefix_edit.min_value = 0 _prefix_edit.max_value = 99999999 _prefix_edit.step = 1 _prefix_edit.value = 10000 # 默认值,可改成自动推断 _prefix_edit.size_flags_horizontal = Control.SIZE_EXPAND_FILL h.add_child(_prefix_edit) confirmed.connect(_on_confirmed) func _on_confirmed() -> void: request_confirmed.emit(int(_prefix_edit.value))