Give-LIFE-Cybers/Scripts/GL_Search.gd

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()