mirror of
https://github.com/Relintai/mat_maker_gd.git
synced 2025-04-23 02:51:18 +02:00
53 lines
1.7 KiB
GDScript
53 lines
1.7 KiB
GDScript
extends HBoxContainer
|
|
|
|
func _ready() -> void:
|
|
$Type.clear()
|
|
for tn in mm_io_types.type_names:
|
|
var t = mm_io_types.types[tn]
|
|
$Type.add_item(t.label)
|
|
|
|
func set_model_data(data, remaining_group_size = 0) -> int:
|
|
$Name.set_text(data.name if data.has("name") else "")
|
|
$Type.select(mm_io_types.type_names.find(data.type))
|
|
if data.has("shortdesc"):
|
|
$Description.short_description = data.shortdesc
|
|
if data.has("longdesc"):
|
|
$Description.long_description = data.longdesc
|
|
$Description.update_tooltip()
|
|
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 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 _on_Name_label_changed(new_label) -> void:
|
|
get_parent().generator.set_port_name(get_index(), new_label)
|
|
|
|
func _on_Type_item_selected(ID) -> void:
|
|
get_parent().generator.set_port_type(get_index(), mm_io_types.type_names[ID])
|
|
|
|
func _on_PortGroupButton_group_size_changed(s):
|
|
get_parent().generator.set_port_group_size(get_index(), s)
|
|
get_parent().update()
|
|
|
|
func _on_Description_descriptions_changed(short_description, long_description):
|
|
get_parent().generator.set_port_descriptions(get_index(), short_description, long_description)
|
|
|
|
func _on_Delete_pressed() -> void:
|
|
get_parent().generator.delete_port(get_index())
|
|
|
|
func _on_Up_pressed() -> void:
|
|
get_parent().generator.swap_ports(get_index(), get_index()-1)
|
|
|
|
func _on_Down_pressed() -> void:
|
|
get_parent().generator.swap_ports(get_index(), get_index()+1)
|
|
|