51 lines
1.7 KiB
GDScript
51 lines
1.7 KiB
GDScript
extends EditorInspectorPlugin
|
|
|
|
const GRAPH_SCRIPT = preload("res://addons/shaker/src/shaker_graph.gd")
|
|
const SHAKER_PANEL = preload("res://addons/shaker/src/shaker_panel.gd")
|
|
|
|
func _can_handle(object: Object) -> bool:
|
|
return (object is ShakerTypeBase || object is ShakerPresetBase || object is ShakerComponent3D || object is ShakerComponent2D )
|
|
|
|
func _parse_group(object: Object, group: String) -> void:
|
|
if object is ShakerTypeBase:
|
|
if group == "Live Shake Graph":
|
|
add_graph(object)
|
|
|
|
func _parse_category(object: Object, category: String) -> void:
|
|
pass
|
|
|
|
func _parse_begin(object: Object) -> void:
|
|
if object is ShakerComponent3D || object is ShakerComponent2D:
|
|
var _panel:MarginContainer = SHAKER_PANEL.new()
|
|
_panel.Target = object;
|
|
_panel.set_anchors_preset(Control.PRESET_FULL_RECT)
|
|
add_custom_control(_panel)
|
|
|
|
func _parse_end(object: Object) -> void:
|
|
pass
|
|
|
|
func add_graph(_object:Object) -> Panel:
|
|
var property_control:Panel = Panel.new()
|
|
property_control.set_script(GRAPH_SCRIPT)
|
|
property_control.shake = _object;
|
|
add_custom_control(property_control)
|
|
property_control.custom_minimum_size.y = 128;
|
|
property_control.set_anchors_preset(Control.PRESET_FULL_RECT)
|
|
return property_control;
|
|
|
|
func _parse_property(object: Object, type: Variant.Type, name: String, hint_type: PropertyHint, hint_string: String, usage_flags: int, wide: bool) -> bool:
|
|
if object is ShakerTypeBase:
|
|
if name == "_temp_graph":
|
|
return true;
|
|
if object is ShakerPresetBase:
|
|
if name == "bake_internal":
|
|
object.Graph = add_graph(object)
|
|
if object is ShakerComponent3D:
|
|
if name == "is_playing":
|
|
#var _panel:Panel = SHAKER_PANEL.new()
|
|
#_panel.Target = object;
|
|
#_panel.set_anchors_preset(Control.PRESET_FULL_RECT)
|
|
#add_custom_control(_panel)
|
|
return true;
|
|
return false;
|