ajout du plugin dialogical
This commit is contained in:
64
addons/dialogic/Editor/Events/Fields/field_image_preview.gd
Normal file
64
addons/dialogic/Editor/Events/Fields/field_image_preview.gd
Normal file
@@ -0,0 +1,64 @@
|
||||
@tool
|
||||
extends DialogicVisualEditorField
|
||||
|
||||
|
||||
var body: Control
|
||||
var image_path: String
|
||||
|
||||
func _ready() -> void:
|
||||
body = find_parent('Body') as Control
|
||||
body.visibility_changed.connect(_on_body_visibility_toggled)
|
||||
|
||||
|
||||
func _enter_tree() -> void:
|
||||
%HiddenLabel.add_theme_color_override(
|
||||
'font_color',
|
||||
event_resource.event_color.lerp(get_theme_color("font_color", "Editor"), 0.8))
|
||||
|
||||
|
||||
#region OVERWRITES
|
||||
################################################################################
|
||||
|
||||
## To be overwritten
|
||||
func _set_value(value:Variant) -> void:
|
||||
if ResourceLoader.exists(value):
|
||||
image_path = value
|
||||
|
||||
if is_preview_enabled():
|
||||
self.texture = load(value)
|
||||
custom_minimum_size.y = get_preview_size()
|
||||
else:
|
||||
self.texture = null
|
||||
|
||||
minimum_size_changed.emit()
|
||||
|
||||
#endregion
|
||||
|
||||
|
||||
#region SIGNAL METHODS
|
||||
################################################################################
|
||||
|
||||
|
||||
func _on_body_visibility_toggled() -> void:
|
||||
custom_minimum_size.y = 0
|
||||
|
||||
if body.is_visible:
|
||||
%HiddenLabel.visible = not is_preview_enabled()
|
||||
|
||||
if is_preview_enabled() and ResourceLoader.exists(image_path):
|
||||
self.texture = load(image_path)
|
||||
custom_minimum_size.y = get_preview_size()
|
||||
else:
|
||||
self.texture = null
|
||||
|
||||
minimum_size_changed.emit()
|
||||
|
||||
#endregion
|
||||
|
||||
func is_preview_enabled() -> bool:
|
||||
return get_preview_size() != 0
|
||||
|
||||
|
||||
func get_preview_size() -> int:
|
||||
return DialogicUtil.get_editor_setting(
|
||||
"image_preview_height", 50) * DialogicUtil.get_editor_scale()
|
||||
Reference in New Issue
Block a user