mirror of
https://codeberg.org/StreamGraph/StreamGraph.git
synced 2024-11-13 19:49:55 +01:00
fix library group saving (#161)
Reviewed-on: https://codeberg.org/StreamGraph/StreamGraph/pulls/161 Co-authored-by: Lera Elvoé <yagich@poto.cafe> Co-committed-by: Lera Elvoé <yagich@poto.cafe>
This commit is contained in:
parent
92ebbe5344
commit
3bb1531603
4 changed files with 31 additions and 6 deletions
|
@ -87,7 +87,7 @@ func _post_deck_load() -> void:
|
||||||
var gp := _belonging_to.group_descriptors.get_input_port(port.index_of_type)
|
var gp := _belonging_to.group_descriptors.get_input_port(port.index_of_type)
|
||||||
if gp.is_empty():
|
if gp.is_empty():
|
||||||
continue
|
continue
|
||||||
port.label = gp.label
|
port.label = gp.label if not gp.label.is_empty() else "Input %s" % port.index
|
||||||
port.descriptor = gp.descriptor
|
port.descriptor = gp.descriptor
|
||||||
port.type = gp.type
|
port.type = gp.type
|
||||||
port.usage_type = gp.usage_type
|
port.usage_type = gp.usage_type
|
||||||
|
|
|
@ -14,12 +14,26 @@ var input_node_id: String
|
||||||
var output_node_id: String
|
var output_node_id: String
|
||||||
|
|
||||||
var extra_ports: Array
|
var extra_ports: Array
|
||||||
|
var extra_port_values: Array:
|
||||||
|
get:
|
||||||
|
if extra_port_values.is_empty():
|
||||||
|
return get_all_ports().map(func(x: Port): return x.value)
|
||||||
|
else:
|
||||||
|
return extra_port_values
|
||||||
|
|
||||||
|
|
||||||
func _init() -> void:
|
func _init() -> void:
|
||||||
name = "Group"
|
name = "Group"
|
||||||
node_type = "group_node"
|
node_type = "group_node"
|
||||||
props_to_serialize = [&"group_id", &"group_instance_id", &"extra_ports", &"input_node_id", &"output_node_id", &"is_library"]
|
props_to_serialize = [
|
||||||
|
&"group_id",
|
||||||
|
&"group_instance_id",
|
||||||
|
&"extra_ports",
|
||||||
|
&"input_node_id",
|
||||||
|
&"output_node_id",
|
||||||
|
&"is_library",
|
||||||
|
&"extra_port_values",
|
||||||
|
]
|
||||||
appears_in_search = false
|
appears_in_search = false
|
||||||
|
|
||||||
|
|
||||||
|
@ -60,25 +74,35 @@ func setup_connections() -> void:
|
||||||
|
|
||||||
|
|
||||||
func recalculate_ports() -> void:
|
func recalculate_ports() -> void:
|
||||||
|
var _values := extra_port_values.duplicate()
|
||||||
ports.clear()
|
ports.clear()
|
||||||
|
|
||||||
for output_port: Port in output_node.get_input_ports():
|
for output_port: Port in output_node.get_input_ports():
|
||||||
add_output_port(
|
var port := add_output_port(
|
||||||
output_port.type,
|
output_port.type,
|
||||||
output_port.label,
|
output_port.label,
|
||||||
output_port.descriptor,
|
output_port.descriptor,
|
||||||
output_port.usage_type,
|
output_port.usage_type,
|
||||||
)
|
)
|
||||||
|
if _values.size() - 1 < port.index:
|
||||||
|
continue
|
||||||
|
|
||||||
|
port.set_value(_values[port.index])
|
||||||
|
|
||||||
for input_port: Port in input_node.get_output_ports():
|
for input_port: Port in input_node.get_output_ports():
|
||||||
add_input_port(
|
var port := add_input_port(
|
||||||
input_port.type,
|
input_port.type,
|
||||||
input_port.label,
|
input_port.label,
|
||||||
input_port.descriptor,
|
input_port.descriptor,
|
||||||
input_port.usage_type,
|
input_port.usage_type,
|
||||||
)
|
)
|
||||||
|
if _values.size() - 1 < port.index:
|
||||||
|
continue
|
||||||
|
|
||||||
|
port.set_value(_values[port.index])
|
||||||
|
|
||||||
extra_ports.clear()
|
extra_ports.clear()
|
||||||
|
extra_port_values.clear()
|
||||||
for port in ports:
|
for port in ports:
|
||||||
extra_ports.append(port.port_type)
|
extra_ports.append(port.port_type)
|
||||||
|
|
||||||
|
|
|
@ -85,7 +85,7 @@ func _post_deck_load() -> void:
|
||||||
var gp := _belonging_to.group_descriptors.get_output_port(port.index_of_type)
|
var gp := _belonging_to.group_descriptors.get_output_port(port.index_of_type)
|
||||||
if gp.is_empty():
|
if gp.is_empty():
|
||||||
continue
|
continue
|
||||||
port.label = gp.label
|
port.label = gp.label if not gp.label.is_empty() else "Output %s" % port.index
|
||||||
port.descriptor = gp.descriptor
|
port.descriptor = gp.descriptor
|
||||||
port.type = gp.type
|
port.type = gp.type
|
||||||
port.usage_type = gp.usage_type
|
port.usage_type = gp.usage_type
|
||||||
|
|
|
@ -25,6 +25,7 @@ func set_up_from_port(port: Port, node: DeckNode, in_node: bool = true) -> void:
|
||||||
func(new_value: Variant):
|
func(new_value: Variant):
|
||||||
if ignore_signal:
|
if ignore_signal:
|
||||||
return
|
return
|
||||||
|
if new_value != null:
|
||||||
set_value(new_value)
|
set_value(new_value)
|
||||||
)
|
)
|
||||||
_setup(port, node)
|
_setup(port, node)
|
||||||
|
|
Loading…
Reference in a new issue