@@ -80,7 +80,6 @@ const _SETTINGS_FOR_CLASS_PROPERTY = {
8080}
8181
8282static var _catalog : Dictionary
83- static var _by_class_name : Dictionary
8483
8584
8685static func _setup_definitions_from_files ():
@@ -91,9 +90,6 @@ static func _setup_definitions_from_files():
9190 var target = block_definition .target_node_class
9291 if not target :
9392 continue
94- if not target in _by_class_name :
95- _by_class_name [target ] = {}
96- _by_class_name [target ][block_definition .name ] = block_definition
9793
9894
9995static func _add_property_definitions (_class_name : String , property_list : Array [Dictionary ], property_settings : Dictionary ):
@@ -103,9 +99,6 @@ static func _add_property_definitions(_class_name: String, property_list: Array[
10399 var block_settings = property_settings [property .name ]
104100 var type_string : String = Types .VARIANT_TYPE_TO_STRING [property .type ]
105101
106- if not _class_name in _by_class_name :
107- _by_class_name [_class_name ] = {}
108-
109102 # Setter
110103 var block_definition : BlockDefinition
111104 if block_settings .get ("has_setter" , true ):
@@ -124,7 +117,6 @@ static func _add_property_definitions(_class_name: String, property_list: Array[
124117 )
125118 )
126119 _catalog [block_definition .name ] = block_definition
127- _by_class_name [_class_name ][block_definition .name ] = block_definition
128120
129121 # Changer
130122 if block_settings .get ("has_change" , true ):
@@ -143,7 +135,6 @@ static func _add_property_definitions(_class_name: String, property_list: Array[
143135 )
144136 )
145137 _catalog [block_definition .name ] = block_definition
146- _by_class_name [_class_name ][block_definition .name ] = block_definition
147138
148139 # Getter
149140 block_definition = (
@@ -160,7 +151,6 @@ static func _add_property_definitions(_class_name: String, property_list: Array[
160151 )
161152 )
162153 _catalog [block_definition .name ] = block_definition
163- _by_class_name [_class_name ][block_definition .name ] = block_definition
164154
165155
166156static func _get_inputmap_actions () -> Array [StringName ]:
@@ -234,11 +224,19 @@ static func has_block(block_name: StringName):
234224 return block_name in _catalog
235225
236226
237- static func get_blocks_by_class (_class_name : String ):
238- if not _class_name in _by_class_name :
239- return []
240- var block_definitions = _by_class_name [_class_name ] as Dictionary
241- return block_definitions .values ()
227+ static func get_blocks_by_class (_class_name : String ) -> Array [BlockDefinition ]:
228+ var result : Array [BlockDefinition ]
229+
230+ if not _class_name :
231+ return result
232+
233+ result .assign (_catalog .values ().filter (_block_definition_has_class_name .bind (_class_name )))
234+
235+ return result
236+
237+
238+ static func _block_definition_has_class_name (block_definition : BlockDefinition , _class_name : String ) -> bool :
239+ return block_definition .target_node_class == _class_name
242240
243241
244242static func _get_builtin_parents (_class_name : String ) -> Array [String ]:
@@ -288,12 +286,8 @@ static func add_custom_blocks(
288286):
289287 setup ()
290288
291- if not _class_name in _by_class_name :
292- _by_class_name [_class_name ] = {}
293-
294289 for block_definition in block_definitions :
295290 _catalog [block_definition .name ] = block_definition
296- _by_class_name [_class_name ][block_definition .name ] = block_definition
297291
298292 _add_property_definitions (_class_name , property_list , property_settings )
299293
0 commit comments