First screen now working

This commit is contained in:
The 64th Gamer 2025-04-07 04:22:46 -06:00
parent e10b6ec7d4
commit b3d24b3de1
6 changed files with 56 additions and 49 deletions

View file

@ -2,14 +2,24 @@ extends Panel
class_name GL_Node
var rows : Dictionary
var uuid : int #REMEMBER TO SET THIS ON CREATION
var dragging : bool
var canDrag : bool
func _ready():
_init_visuals()
pass
func _process(delta):
pass
func _process(delta):
if dragging:
position = get_viewport().get_mouse_position()
func _on_input_event(viewport, event, shape_idx):
print(str(event) + "A")
if event is InputEventMouseButton:
if event.button_index == MOUSE_BUTTON_LEFT && event.pressed && canDrag:
dragging = true
if event.button_index == MOUSE_BUTTON_LEFT && event.canceled && dragging:
dragging = false
func _create_uuid():
var rand = RandomNumberGenerator.new()
rand.seed = Time.get_unix_time_from_system()
@ -20,24 +30,22 @@ func _init_visuals():
call_deferred("add_child",nodeVisuals)
func _update_visuals():
var holder = get_node("Node").get_node("Holder")
var holder = get_node("Holder")
for child in holder.get_children():
if child.name != "Title":
child.queue_free()
for key in rows:
if rows[key].get("type","default") == "default":
var nodeRow = load("res://Scenes/Nodes/Node Row.tscn").instantiate()
holder.call_deferred("add_child",nodeRow)
holder.add_child(nodeRow)
(nodeRow.get_node("Label") as Label).text = str(key)
(nodeRow.get_node("Input").get_note("Point") as GL_Node_Point).valueName = str(key)
(nodeRow.get_node("Output").get_note("Point") as GL_Node_Point).valueName = str(key)
_set_inout_type(nodeRow.get_node("Input") as Label,rows[key].get("input","null"))
_set_inout_type(nodeRow.get_node("Output") as Label,rows[key].get("output","null"))
(nodeRow.get_node("Input") as GL_Node_Point).valueName = str(key)
(nodeRow.get_node("Output") as GL_Node_Point).valueName = str(key)
_set_inout_type(nodeRow.get_node("Input") as Button,rows[key]["input"])
_set_inout_type(nodeRow.get_node("Output") as Button,rows[key]["output"])
func _set_inout_type(label:Label, value):
func _set_inout_type(label:Button, value):
match typeof(value):
_:
label.visible = false
TYPE_FLOAT:
label.text = ""
label.add_theme_color_override("font_color", Color.ROYAL_BLUE)
@ -47,9 +55,11 @@ func _set_inout_type(label:Label, value):
TYPE_COLOR:
label.text = ""
label.add_theme_color_override("font_color", Color.WHITE_SMOKE)
_:
label.visible = false
func _set_title(name:String):
(get_node("Node").get_node("Holder").get_node("Title") as Label).text = name
(get_node("Holder").get_node("Title") as Label).text = name
func _create_row(name:String,input,output):
rows[name] = {"input": input, "output": output}
@ -69,3 +79,8 @@ func _send_input(output_name: String, value):
var input_name = conn.get("input_name", null)
if target and input_name:
target._recieve_input(input_name, value)
func mouse_enter():
canDrag = true
func mouse_exit():
canDrag = false

View file

@ -1,4 +1,4 @@
extends Area2D
extends Button
class_name GL_Node_Point
var mainNode : GL_Node
@ -22,9 +22,7 @@ func process(delta):
func _on_input_event(viewport, event, shape_idx):
if event is InputEventMouseButton and event.button_index == MOUSE_BUTTON_LEFT:
if event.pressed:
_start_drag()
else:
if !event.pressed:
_finish_drag()
func _start_drag():

View file

@ -8,18 +8,18 @@ func _ready():
_set_State(false)
_set_rows()
func _process(delta):
pass
func _input(event):
if event is InputEventMouseButton and event.button_index == MOUSE_BUTTON_RIGHT:
if event.pressed:
_set_State(!searching)
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")
@ -32,12 +32,15 @@ func _set_rows():
button.pressed.connect(func():
_create_node(button.text)
)
button.pressed.connect(func():
_set_State(false)
)
container.call_deferred("add_child",row)
func _create_node(name:String):
var node = load("res://Scenes/Node Types/" + name + ".tscn").instantiate()
get_tree().root.add_child(node)
print("res://Scenes/Node Types/" + name + ".tscn")
node = node as GL_Node
node = (node as Control).get_child(0) as GL_Node
node.position = lastMousePos
node._create_uuid()