1
0
Fork 0
This repository has been archived on 2022-10-04. You can view files and clone it, but cannot push or open issues or pull requests.
godot-thunderk-basics/preview/preview_inspector.gd

49 lines
1 KiB
GDScript

tool
# Inspector plugin for preview scenes
extends EditorInspectorPlugin
# -- signals --
# -- enums --
# -- constants --
# -- exported variables --
# -- public variables --
# -- private variables --
# -- onready variables --
# -- preloads --
# -- virtual methods --
func can_handle(object: Object) -> bool:
return _get_preview(object) != null
func parse_begin(object):
var preview = _get_preview(object)
if preview:
var button := Button.new()
button.text = "Update preview"
add_custom_control(button)
button.connect("pressed", self, "_on_update_pressed", [preview])
# -- public methods --
# -- private methods --
# Get the nearest parent preview
# Returns null if none is found
func _get_preview(node: Node):
if node is Preview2D or node is Preview3D:
return node
else:
while node:
node = node.get_parent()
if node is Preview2D or node is Preview3D:
return node
return null
# Callback for the inspector update button
func _on_update_pressed(preview):
preview.update_preview_content()