12 func _ready() -> void:
13 if get_parent() is SubViewport:
16 %Name.add_theme_font_override("font", get_theme_font("bold", "EditorFonts"))
17 custom_minimum_size = base_size * Vector2(200, 150) * DialogicUtil.get_editor_scale()
18 %CurrentIcon.texture = get_theme_icon("Favorites", "EditorIcons")
19 if %Image.texture == null:
20 %Image.texture = get_theme_icon("ImportFail", "EditorIcons")
21 %Image.stretch_mode = TextureRect.STRETCH_KEEP_CENTERED
24 func load_info(info:Dictionary) -> void:
25 %Name.text = info.name
26 if not info.has("preview_image"):
28 elif info.preview_image[0] == 'custom':
30 %Image.texture = get_theme_icon("CreateNewSceneFrom", "EditorIcons")
31 %Image.stretch_mode = TextureRect.STRETCH_KEEP_CENTERED
32 %Panel.self_modulate = get_theme_color("property_color_z", "Editor")
33 elif info.preview_image[0].ends_with('scn'):
34 DialogicUtil.get_dialogic_plugin().get_editor_interface().get_resource_previewer().queue_resource_preview(info.preview_image[0], self, 'set_scene_preview', null)
35 elif ResourceLoader.exists(info.preview_image[0]):
36 %Image.texture = load(info.preview_image[0])
37 elif info.preview_image[0].is_valid_html_color():
39 %Panel.self_modulate = Color(info.preview_image[0])
41 if ResourceLoader.exists(info.get('icon', '')):
42 %Icon.get_parent().show()
43 %Icon.texture = load(info.get('icon'))
45 %Icon.get_parent().hide()
47 tooltip_text = info.description
50 func set_scene_preview(path:String, preview:Texture2D, thumbnail:Texture2D, userdata:Variant) -> void:
52 %Image.texture = preview
54 %Image.texture = get_theme_icon("PackedScene", "EditorIcons")
58 func set_current(current:bool):
59 %CurrentIcon.visible = current
62 func _on_mouse_entered() -> void:
66 func _on_mouse_exited() -> void:
70 func _on_gui_input(event):
71 if event.is_action_pressed('ui_accept') or event.is_action_pressed("ui_select") or (
72 event is InputEventMouseButton and event.pressed and event.button_index == MOUSE_BUTTON_LEFT):
74 if not event is InputEventMouseButton or event.double_click:
76 elif event is InputEventMouseButton and event.pressed and event.button_index == MOUSE_BUTTON_MIDDLE:
80 func _on_focus_entered() -> void:
85 func _on_focus_exited() -> void: