Add documentation on inspector plugins.

This commit is contained in:
Juan Linietsky
2019-04-23 17:00:40 -03:00
parent 9a107a399a
commit 79f57c976e
2 changed files with 84 additions and 0 deletions

View File

@@ -9,3 +9,4 @@ Editor plugins
making_main_screen_plugins
import_plugins
spatial_gizmos
inspector_plugins

View File

@@ -0,0 +1,83 @@
.. _doc_inspector_plugins:
Inspector Plugins
=====================
Introduction
------------
Godot 3.1 comes with a new inspector. Adding plugins to it is now possible.
This tutorial will explain the process.
Inspector Plugin
----------------
This short tutorial will explain how to make a simple value editor.
Create an EditorInspectorPlugin first. This is needed to initialize your plugin.
.. tabs::
.. code-tab:: gdscript GDScript
# MyEditorPlugin.gd
extends EditorInspectorPlugin
func can_handle(object):
# if only editing a specific type
# return object is TheTypeIWant
# if everything is supported
return true
func parse_property(object,type,path,hint,hint_text,usage):
if (type==TYPE_INT):
add_custom_property_editor(path,MyEditor.new())
return true # I want this one
else:
return false
Editor
------
Here is an editor for editing integers
.. tabs::
.. code-tab:: gdscript GDScript
# MyEditor.gd
class_name MyEditor
var updating = false
func _spin_changed(value):
if (updating):
return
emit_changed( get_property(), value )
func update_property():
var new_value = get_edited_object()[ get_edited_property() ]
updating=true
spin.set_value( new_value )
updating=false
var spin = EditorSpinSlider.new() # use the new spin slider
func _init():
# if you want to put the editor below the label
# set_bottom_editor( spin )
# else use:
add_child( spin )
# to remember focus when selected back
add_focusable( spin )
spin.set_min(0)
spin.set_max(1000)
spin.connect("value_changed",self,"_spin_changed")