Skip to content

Commit 14c1992

Browse files
committed
Refactor serialization classes
1 parent 7258186 commit 14c1992

File tree

6 files changed

+69
-39
lines changed

6 files changed

+69
-39
lines changed
Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,18 @@
11
class_name BlockScriptSerialization
22
extends Resource
33

4+
const BlockSerializationTree = preload("res://addons/block_code/serialization/block_serialization_tree.gd")
5+
46
@export var script_inherits: String
5-
@export var block_trees: Array[BlockSerialization]
7+
@export var block_serialization_trees: Array[BlockSerializationTree]
68
@export var variables: Array[VariableResource]
79
@export var generated_script: String
810
@export var version: int
911

1012

11-
func _init(p_script_inherits: String = "", p_block_trees: Array[BlockSerialization] = [], p_variables: Array[VariableResource] = [], p_generated_script: String = "", p_version = 0):
13+
func _init(p_script_inherits: String = "", p_block_serialization_trees: Array[BlockSerializationTree] = [], p_variables: Array[VariableResource] = [], p_generated_script: String = "", p_version = 0):
1214
script_inherits = p_script_inherits
13-
block_trees = p_block_trees
15+
block_serialization_trees = p_block_serialization_trees
1416
generated_script = p_generated_script
1517
variables = p_variables
1618
version = p_version
Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,13 @@
1-
class_name BlockSerialization
21
extends Resource
32

4-
@export var name: StringName
5-
@export var position: Vector2
6-
@export var path_child_pairs: Array
3+
const BlockSerialization = preload("res://addons/block_code/serialization/block_serialization.gd")
74

8-
# TODO: Remove once the data/UI decouple is done.
9-
@export var block_serialized_properties: BlockSerializedProperties
5+
@export var name: StringName
6+
@export var children: Array[BlockSerialization]
7+
@export var arguments: Dictionary # String, ValueBlockSerialization
108

119

12-
func _init(p_name: StringName, p_position: Vector2 = Vector2.ZERO, p_block_serialized_properties: BlockSerializedProperties = null, p_path_child_pairs: Array = []):
10+
func _init(p_name: StringName = &"", p_children: Array[BlockSerialization] = [], p_arguments: Dictionary = {}):
1311
name = p_name
14-
position = p_position
15-
block_serialized_properties = p_block_serialized_properties
16-
path_child_pairs = p_path_child_pairs
12+
children = p_children
13+
arguments = p_arguments
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
extends Resource
2+
3+
const BlockSerialization = preload("res://addons/block_code/serialization/block_serialization.gd")
4+
5+
@export var root: BlockSerialization
6+
@export var canvas_position: Vector2
7+
8+
9+
func _init(p_root: BlockSerialization = null, p_canvas_position: Vector2 = Vector2(0, 0)):
10+
root = p_root
11+
canvas_position = p_canvas_position
12+
13+
14+
func _to_string():
15+
return to_string_recursive(root, 0)
16+
17+
18+
func to_string_recursive(node: BlockSerialization, depth: int) -> String:
19+
var string: String = "%s %s\n" % ["-".repeat(depth), node.block_name]
20+
21+
for c in node.children:
22+
string += to_string_recursive(c, depth + 1)
23+
24+
return string

addons/block_code/serialization/block_serialized_properties.gd

Lines changed: 0 additions & 12 deletions
This file was deleted.
Lines changed: 24 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,35 @@
1-
[gd_resource type="Resource" script_class="BlockScriptSerialization" load_steps=6 format=3 uid="uid://dit7fykhl3h48"]
1+
[gd_resource type="Resource" script_class="BlockScriptSerialization" load_steps=8 format=3 uid="uid://dit7fykhl3h48"]
22

3-
[ext_resource type="Script" path="res://addons/block_code/serialization/block_serialization.gd" id="1_barc5"]
4-
[ext_resource type="Script" path="res://addons/block_code/serialization/block_serialized_properties.gd" id="2_cgfpx"]
3+
[ext_resource type="Script" path="res://addons/block_code/serialization/block_serialization_tree.gd" id="1_2v06i"]
4+
[ext_resource type="Script" path="res://addons/block_code/serialization/block_serialization.gd" id="1_s220r"]
55
[ext_resource type="Script" path="res://addons/block_code/serialization/block_script_serialization.gd" id="4_cqq7x"]
66

7-
[sub_resource type="Resource" id="Resource_b0aen"]
8-
script = ExtResource("2_cgfpx")
9-
block_class = &"EntryBlock"
10-
serialized_props = [["color", Color(0.92549, 0.231373, 0.34902, 1)], ["scope", ""], ["param_input_strings", {}]]
7+
[sub_resource type="Resource" id="Resource_tor6h"]
8+
script = ExtResource("1_s220r")
9+
name = &"ready"
10+
children = Array[ExtResource("1_s220r")]([])
11+
arguments = {}
1112

12-
[sub_resource type="Resource" id="Resource_1h6wi"]
13-
script = ExtResource("1_barc5")
14-
name = &"ready_block"
15-
position = Vector2(54, 47)
16-
path_child_pairs = []
17-
block_serialized_properties = SubResource("Resource_b0aen")
13+
[sub_resource type="Resource" id="Resource_3uwee"]
14+
script = ExtResource("1_2v06i")
15+
root = SubResource("Resource_tor6h")
16+
canvas_position = Vector2(0, 0)
17+
18+
[sub_resource type="Resource" id="Resource_kk4nr"]
19+
script = ExtResource("1_s220r")
20+
name = &"process"
21+
children = Array[ExtResource("1_s220r")]([])
22+
arguments = {}
23+
24+
[sub_resource type="Resource" id="Resource_ki8rq"]
25+
script = ExtResource("1_2v06i")
26+
root = SubResource("Resource_kk4nr")
27+
canvas_position = Vector2(325, 0)
1828

1929
[resource]
2030
script = ExtResource("4_cqq7x")
2131
script_inherits = "INHERIT_DEFAULT"
22-
block_trees = Array[ExtResource("1_barc5")]([SubResource("Resource_1h6wi")])
32+
block_serialization_trees = Array[ExtResource("1_2v06i")]([SubResource("Resource_3uwee"), SubResource("Resource_ki8rq")])
2333
variables = Array[Resource("res://addons/block_code/ui/block_canvas/variable_resource.gd")]([])
2434
generated_script = "extends INHERIT_DEFAULT"
2535
version = 0
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
extends Resource
2+
3+
@export var name: StringName
4+
@export var arguments: Dictionary # String, ValueBlockSerialization
5+
6+
7+
func _init(p_name: StringName = &"", p_arguments: Dictionary = {}):
8+
name = p_name
9+
arguments = p_arguments

0 commit comments

Comments
 (0)