@@ -231,6 +231,10 @@ static func get_general_categories() -> Array[BlockCategory]:
231231
232232 var logic_category : BlockCategory = BlockCategory .new ("Logic" , logic_list , Color ("42b8e3" ))
233233
234+ # Input
235+ var input_list : Array [Block ] = _get_input_blocks ()
236+ var input_category : BlockCategory = BlockCategory .new ("Input" , input_list , Color .SLATE_GRAY )
237+
234238 return [
235239 lifecycle_category ,
236240 signal_category ,
@@ -239,6 +243,7 @@ static func get_general_categories() -> Array[BlockCategory]:
239243 math_category ,
240244 logic_category ,
241245 variable_category ,
246+ input_category ,
242247 ]
243248
244249
@@ -362,3 +367,30 @@ static func get_built_in_categories(_class_name: String) -> Array[BlockCategory]
362367 cats .append (class_cat )
363368
364369 return cats
370+
371+
372+ static func _get_input_blocks () -> Array [Block ]:
373+ var block_list : Array [Block ]
374+
375+ InputMap .load_from_project_settings ()
376+
377+ for action : StringName in InputMap .get_actions ():
378+ var block : Block = BLOCKS ["parameter_block" ].instantiate ()
379+ block .block_type = Types .BlockType .BOOL
380+ block .block_format = "Is action %s pressed" % action
381+ block .statement = 'Input.is_action_pressed("%s ")' % action
382+ block_list .append (block )
383+
384+ block = BLOCKS ["parameter_block" ].instantiate ()
385+ block .block_type = Types .BlockType .BOOL
386+ block .block_format = "Is action %s just pressed" % action
387+ block .statement = 'Input.is_action_just_pressed("%s ")' % action
388+ block_list .append (block )
389+
390+ block = BLOCKS ["parameter_block" ].instantiate ()
391+ block .block_type = Types .BlockType .BOOL
392+ block .block_format = "Is action %s just released" % action
393+ block .statement = 'Input.is_action_just_released("%s ")' % action
394+ block_list .append (block )
395+
396+ return block_list
0 commit comments