mirror of
https://github.com/Relintai/material-maker.git
synced 2024-12-23 21:16:54 +01:00
60 lines
1.4 KiB
GDScript
60 lines
1.4 KiB
GDScript
tool
|
|
extends HBoxContainer
|
|
|
|
func _ready() -> void:
|
|
$Type.clear()
|
|
for t in $Types.get_children():
|
|
$Type.add_item(t.name)
|
|
_on_Type_item_selected($Type.selected)
|
|
|
|
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) -> void:
|
|
if data.has("name"):
|
|
$Name.text = data.name
|
|
if data.has("label"):
|
|
$Label.text = data.label
|
|
if !data.has("type"):
|
|
return
|
|
var type = $Types.get_node(data.type)
|
|
type.set_model_data(data)
|
|
var selected = type.get_index()
|
|
$Type.selected = selected
|
|
_on_Type_item_selected(selected)
|
|
|
|
func get_model_data() -> Dictionary:
|
|
var data = $Types.get_node($Type.get_item_text($Type.selected)).get_model_data()
|
|
data.name=$Name.text
|
|
data.label=$Label.text
|
|
data.type=$Type.get_item_text($Type.selected)
|
|
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()
|
|
|
|
func _on_Type_item_selected(ID) -> void:
|
|
for t in $Types.get_children():
|
|
t.visible = false
|
|
var t = $Types.get_child(ID)
|
|
if t != null:
|
|
t.visible = true
|
|
else:
|
|
print(ID)
|
|
|