Skip to content

Commit 8d63e21

Browse files
committed
Add pressed / released booleans for all actions
1 parent d1ee1da commit 8d63e21

File tree

1 file changed

+32
-0
lines changed

1 file changed

+32
-0
lines changed

addons/block_code/ui/picker/categories/category_factory.gd

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)