ile-de-test/addons/zylann.hterrain/tools/texture_editor/set_editor/source_file_item_editor.gd
2023-10-05 20:02:23 +02:00

60 lines
1.1 KiB
GDScript

@tool
extends Control
# TODO Can't preload because it causes the plugin to fail loading if assets aren't imported
#const HT_EmptyTexture = preload("../../icons/empty.png")
const EMPTY_TEXTURE_PATH = "res://addons/zylann.hterrain/tools/icons/empty.png"
signal load_pressed
signal clear_pressed
@onready var _label : Label = $Label
@onready var _texture_rect : TextureRect = $TextureRect
@onready var _buttons = [
$LoadButton,
$ClearButton
]
var _material : Material
var _is_empty := true
func set_label(text: String):
_label.text = text
func set_texture(tex: Texture):
if tex == null:
_texture_rect.texture = load(EMPTY_TEXTURE_PATH)
_texture_rect.material = null
_is_empty = true
else:
_texture_rect.texture = tex
_texture_rect.material = _material
_is_empty = false
func set_texture_tooltip(msg: String):
_texture_rect.tooltip_text = msg
func _on_LoadButton_pressed():
load_pressed.emit()
func _on_ClearButton_pressed():
clear_pressed.emit()
func set_material(mat: Material):
_material = mat
if not _is_empty:
_texture_rect.material = _material
func set_enabled(enabled: bool):
for b in _buttons:
b.disabled = not enabled