extends HBoxContainer func _ready(): $Type.clear() for tn in mm_io_types.type_names: var t = mm_io_types.types[tn] $Type.add_item(t.label) func update_up_down_button() -> void: var parent = get_parent() if parent == null: return $Up.disabled = (get_index() == 0) $Down.disabled = (get_index() == get_parent().get_child_count()-2) func set_model_data(data, remaining_group_size = 0) -> int: $Description.short_description = data.shortdesc if data.has("shortdesc") else "" $Description.long_description = data.longdesc if data.has("longdesc") else "" $Description.update_tooltip() for i in range(mm_io_types.type_names.size()): if data.has(mm_io_types.type_names[i]): $Type.selected = i $Value.text = data[mm_io_types.type_names[i]] if data.has("group_size") and data.group_size > 1: $PortGroupButton.set_state(1) return data.group_size-1 elif remaining_group_size == 1: $PortGroupButton.set_state(1) return int(max(remaining_group_size-1, 0)) func get_model_data() -> Dictionary: var data = { mm_io_types.type_names[$Type.selected]:$Value.text } if $Description.short_description != "": data.shortdesc = $Description.short_description if $Description.long_description != "": data.longdesc = $Description.long_description if $PortGroupButton.group_size > 0: data.group_size = $PortGroupButton.group_size return data func _on_Delete_pressed() -> void: var p = get_parent() p.remove_child(self) p.update_up_down_buttons() queue_free() func _on_Up_pressed() -> void: get_parent().move_child(self, get_index() - 1) get_parent().update_up_down_buttons() func _on_Down_pressed() -> void: get_parent().move_child(self, get_index() + 1) get_parent().update_up_down_buttons()