You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
51 lines
1.2 KiB
51 lines
1.2 KiB
3 years ago
|
tool
|
||
|
extends HBoxContainer
|
||
|
|
||
|
var editor_reference
|
||
|
var image_node
|
||
|
var image_label
|
||
|
|
||
|
func _ready():
|
||
|
$ButtonDelete.icon = get_icon("Remove", "EditorIcons")
|
||
|
|
||
|
|
||
|
func _on_ButtonDelete_pressed():
|
||
|
if $NameEdit.text == 'Default':
|
||
|
$PathEdit.text = ''
|
||
|
update_preview('')
|
||
|
else:
|
||
|
queue_free()
|
||
|
|
||
|
|
||
|
func _on_ButtonSelect_pressed():
|
||
|
editor_reference.godot_dialog("*.png, *.svg, *.tscn")
|
||
|
editor_reference.godot_dialog_connect(self, "_on_file_selected")
|
||
|
|
||
|
|
||
|
func _on_file_selected(path, target):
|
||
|
update_preview(path)
|
||
|
$PathEdit.text = path
|
||
|
if $NameEdit.text == '':
|
||
|
$NameEdit.text = DialogicResources.get_filename_from_path(path)
|
||
|
|
||
|
|
||
|
func _on_focus_entered():
|
||
|
if $PathEdit.text == '':
|
||
|
image_label.text = 'Preview - No image on this portrait entry.'
|
||
|
image_node.texture = null
|
||
|
else:
|
||
|
update_preview($PathEdit.text)
|
||
|
|
||
|
|
||
|
func update_preview(path):
|
||
|
image_label.text = 'Preview'
|
||
|
var l_path = path.to_lower()
|
||
|
if '.png' in l_path or '.svg' in l_path:
|
||
|
image_node.texture = load(path)
|
||
|
image_label.text = 'Preview - ' + str(image_node.texture.get_width()) + 'x' + str(image_node.texture.get_height())
|
||
|
elif '.tscn' in l_path:
|
||
|
image_node.texture = null
|
||
|
image_label.text = '[!] Can\'t show previews of custom scenes.'
|
||
|
else:
|
||
|
image_node.texture = null
|