Added adaptative port types to reroute node
This commit is contained in:
parent
827ce889e8
commit
2c59e78272
|
@ -2,17 +2,22 @@ tool
|
|||
extends MMGenBase
|
||||
class_name MMGenReroute
|
||||
|
||||
var port_type : String = "any"
|
||||
|
||||
func get_type() -> String:
|
||||
return "reroute"
|
||||
|
||||
func set_port_type(t : String) -> void:
|
||||
port_type = t
|
||||
|
||||
func get_type_name() -> String:
|
||||
return "Reroute"
|
||||
|
||||
func get_input_defs() -> Array:
|
||||
return [ { name="in", type="rgba" } ]
|
||||
return [ { name="in", type=port_type } ]
|
||||
|
||||
func get_output_defs() -> Array:
|
||||
return [ { type="rgba" } ]
|
||||
return [ { type=port_type } ]
|
||||
|
||||
func get_parameter_defs() -> Array:
|
||||
return []
|
||||
|
|
|
@ -1,8 +1,21 @@
|
|||
extends MMGraphNodeMinimal
|
||||
|
||||
func _on_Area2D_mouse_entered() -> void:
|
||||
print("mouse entered reroute")
|
||||
|
||||
|
||||
func _on_Area2D_mouse_exited() -> void:
|
||||
print("mouse exited reroute")
|
||||
func on_connections_changed():
|
||||
var graph_edit = get_parent()
|
||||
var color : Color = Color(1.0, 1.0, 1.0)
|
||||
var type : int = 42
|
||||
var port_type : String = "any"
|
||||
for c in graph_edit.get_connection_list():
|
||||
if c.to == name:
|
||||
var node : GraphNode = graph_edit.get_node(c.from)
|
||||
color = node.get_slot_color_right(c.from_port)
|
||||
type = node.get_slot_type_right(c.from_port)
|
||||
port_type = node.generator.get_output_defs()[c.from_port].type
|
||||
break
|
||||
if c.from == name:
|
||||
var node : GraphNode = graph_edit.get_node(c.to)
|
||||
color = node.get_slot_color_left(c.to_port)
|
||||
type = node.get_slot_type_left(c.to_port)
|
||||
port_type = node.generator.get_input_defs()[c.from_port].type
|
||||
set_slot(0, true, type, color, true, type, color)
|
||||
generator.set_port_type(port_type)
|
||||
|
|
|
@ -47,10 +47,10 @@ rect_min_size = Vector2( 24, 24 )
|
|||
theme = SubResource( 3 )
|
||||
custom_constants/port_offset = 0
|
||||
slot/0/left_enabled = true
|
||||
slot/0/left_type = 0
|
||||
slot/0/left_type = 42
|
||||
slot/0/left_color = Color( 1, 1, 1, 1 )
|
||||
slot/0/right_enabled = true
|
||||
slot/0/right_type = 0
|
||||
slot/0/right_type = 42
|
||||
slot/0/right_color = Color( 1, 1, 1, 1 )
|
||||
script = ExtResource( 1 )
|
||||
__meta__ = {
|
||||
|
|
|
@ -163,11 +163,19 @@ func connect_node(from, from_slot, to, to_slot):
|
|||
connected = true
|
||||
if connected:
|
||||
send_changed_signal()
|
||||
for n in [ from_node, to_node ]:
|
||||
if n.has_method("on_connections_changed"):
|
||||
n.on_connections_changed()
|
||||
|
||||
func disconnect_node(from, from_slot, to, to_slot) -> void:
|
||||
if generator.disconnect_children(get_node(from).generator, from_slot, get_node(to).generator, to_slot):
|
||||
var from_node : MMGraphNodeMinimal = get_node(from)
|
||||
var to_node : MMGraphNodeMinimal = get_node(to)
|
||||
if generator.disconnect_children(from_node.generator, from_slot, to_node.generator, to_slot):
|
||||
.disconnect_node(from, from_slot, to, to_slot)
|
||||
send_changed_signal()
|
||||
for n in [ from_node, to_node ]:
|
||||
if n.has_method("on_connections_changed"):
|
||||
n.on_connections_changed()
|
||||
|
||||
func on_connections_changed(removed_connections : Array, added_connections : Array) -> void:
|
||||
for c in removed_connections:
|
||||
|
|
Loading…
Reference in New Issue