84 lines
2 KiB
GDScript
84 lines
2 KiB
GDScript
extends Control
|
|
|
|
var rows : Array = [
|
|
"Animatronics/CyberChuck",
|
|
"Animatronics/CyberHelen",
|
|
"Animatronics/CyberMunch",
|
|
"",
|
|
"Lighting/Spotlights",
|
|
"Lighting/Floodlights",
|
|
"Lighting/Backdrop Lights",
|
|
"Lighting/Misc Lights",
|
|
"Lighting/Organ Lights",
|
|
"",
|
|
"Add",
|
|
"Audio",
|
|
"Bool",
|
|
"Color",
|
|
"Direct Output",
|
|
"Float",
|
|
"Invert",
|
|
"Keystrokes",
|
|
"Keystroke Ramp",
|
|
"Lerp",
|
|
"Mix Colors",
|
|
"Mix Floats",
|
|
"Mouse Wheel",
|
|
"Multiply",
|
|
"Random",
|
|
"Record",
|
|
"Sine",
|
|
"Subtract",
|
|
"Switch Audio",
|
|
"Timeline",
|
|
]
|
|
|
|
var searching : bool
|
|
var lastMousePos : Vector2
|
|
|
|
func _ready():
|
|
_set_State(false)
|
|
_set_rows()
|
|
|
|
func _input(event):
|
|
if event is InputEventMouseButton:
|
|
if event.button_index == MOUSE_BUTTON_RIGHT && event.pressed:
|
|
_set_State(!searching)
|
|
#if event.button_index == MOUSE_BUTTON_LEFT && event.pressed && searching:
|
|
#_set_State(false) #fix when not hovered
|
|
|
|
func _set_State(state:bool):
|
|
searching = state
|
|
visible = searching
|
|
lastMousePos = get_viewport().get_mouse_position()
|
|
position = lastMousePos
|
|
|
|
func _set_rows():
|
|
var container = get_node("Panel").get_node("ScrollContainer").get_node("Container")
|
|
for child in container.get_children():
|
|
child.queue_free()
|
|
for key in rows:
|
|
if str(key) == "":
|
|
container.call_deferred("add_child",load("res://Scenes/UI/Search Row.tscn").instantiate())
|
|
continue
|
|
var row = load("res://Scenes/UI/Search Row.tscn").instantiate()
|
|
var button = (row.get_node("Button") as Button)
|
|
var visualName = load("res://Scenes/Node Types/" + str(key) + ".tscn").instantiate().get_node("Node").visual_name
|
|
button.text = visualName if visualName != "" else str(key)
|
|
button.pressed.connect(func():
|
|
_create_node(str(key))
|
|
)
|
|
button.pressed.connect(func():
|
|
_set_State(false)
|
|
)
|
|
container.call_deferred("add_child",row)
|
|
|
|
func _create_node(name:String):
|
|
var path = "res://Scenes/Node Types/" + name + ".tscn"
|
|
var node = load(path).instantiate()
|
|
get_parent().get_node("Holder").add_child(node)
|
|
node = (node as Control).get_child(0) as GL_Node
|
|
node.nodePath = path
|
|
node.position = lastMousePos
|
|
node._create_uuid()
|
|
|