Skip to content

Commit f9c78b5

Browse files
committed
fixup! Refactor UI block classes to depend on BlockDefinition
1 parent 6c249b6 commit f9c78b5

File tree

2 files changed

+10
-13
lines changed

2 files changed

+10
-13
lines changed

addons/block_code/ui/blocks/block/block.gd

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,6 @@ class_name Block
33
extends MarginContainer
44

55
const BlockDefinition = preload("res://addons/block_code/code_generation/block_definition.gd")
6-
const BlocksCatalog = preload("res://addons/block_code/code_generation/blocks_catalog.gd")
7-
const BlockSerialization = preload("res://addons/block_code/serialization/block_serialization.gd")
8-
const Types = preload("res://addons/block_code/types/types.gd")
96

107
signal drag_started(block: Block)
118
signal modified

addons/block_code/ui/blocks/statement_block/statement_block.gd

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,12 @@
22
class_name StatementBlock
33
extends Block
44

5+
const BlocksCatalog = preload("res://addons/block_code/code_generation/blocks_catalog.gd")
56
const ParameterInput = preload("res://addons/block_code/ui/blocks/utilities/parameter_input/parameter_input.gd")
67
const ParameterInputScene = preload("res://addons/block_code/ui/blocks/utilities/parameter_input/parameter_input.tscn")
8+
const ParameterOutput = preload("res://addons/block_code/ui/blocks/utilities/parameter_output/parameter_output.gd")
9+
const ParameterOutputScene = preload("res://addons/block_code/ui/blocks/utilities/parameter_output/parameter_output.tscn")
10+
const Types = preload("res://addons/block_code/types/types.gd")
711

812
@onready var _background := %Background
913
@onready var _hbox := %HBoxContainer
@@ -47,6 +51,7 @@ func format():
4751

4852

4953
static func format_string(parent_block: Block, attach_to: Node, string: String, _defaults: Dictionary) -> Dictionary:
54+
BlocksCatalog.setup()
5055
var _arg_name_to_param_input_dict = {}
5156
var regex = RegEx.new()
5257
regex.compile("\\[([^\\]]+)\\]|\\{([^}]+)\\}") # Capture things of format {test} or [test]
@@ -83,18 +88,13 @@ static func format_string(parent_block: Block, attach_to: Node, string: String,
8388
var param_node: Node
8489

8590
if copy_block:
86-
var parameter_output: ParameterOutput = preload("res://addons/block_code/ui/blocks/utilities/parameter_output/parameter_output.tscn").instantiate()
91+
var parameter_output: ParameterOutput = ParameterOutputScene.instantiate()
8792
parameter_output.name = "ParameterOutput%d" % start # Unique path
8893

89-
# FIXME: This logic could be separated because it is the same as in CategoryFactory get_parameter_output_blocks()
90-
var block_definition = BlockDefinition.new()
91-
block_definition.name = parent_block.definition.name + "_" + param_name
92-
block_definition.category = parent_block.definition.category
93-
block_definition.type = Types.BlockType.VALUE
94-
block_definition.variant_type = param_type
95-
block_definition.display_template = param_name
96-
block_definition.code_template = param_name
97-
block_definition.scope = parent_block.definition.code_template
94+
var block_name = &"%s_%s" % [parent_block.definition.name, param_name]
95+
var block_definition = BlocksCatalog.get_block(block_name)
96+
if block_definition == null:
97+
push_error("Could not locate block definition %s" % block_name)
9898

9999
parameter_output.block_params = {"definition": block_definition, "color": parent_block.color}
100100
parameter_output.block = parent_block

0 commit comments

Comments
 (0)