Skip to content

Commit 38e7406

Browse files
authored
Merge pull request #31 from endlessm/input-for-all-nodes
Input for all nodes
2 parents 86ff6e7 + 8d63e21 commit 38e7406

File tree

1 file changed

+48
-8
lines changed

1 file changed

+48
-8
lines changed

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

Lines changed: 48 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ static func get_general_categories() -> Array[BlockCategory]:
3838
b.statement = "queue_free()"
3939
lifecycle_list.append(b)
4040

41-
var lifecycle_cat: BlockCategory = BlockCategory.new("Lifecycle", lifecycle_list, Color("fa5956"))
41+
var lifecycle_category: BlockCategory = BlockCategory.new("Lifecycle", lifecycle_list, Color("fa5956"))
4242

4343
# Control
4444
var control_list: Array[Block] = []
@@ -73,7 +73,7 @@ static func get_general_categories() -> Array[BlockCategory]:
7373
b.statement = "continue"
7474
control_list.append(b)
7575

76-
var control_cat: BlockCategory = BlockCategory.new("Control", control_list, Color("ffad76"))
76+
var control_category: BlockCategory = BlockCategory.new("Control", control_list, Color("ffad76"))
7777

7878
# Test
7979
var test_list: Array[Block] = []
@@ -88,7 +88,7 @@ static func get_general_categories() -> Array[BlockCategory]:
8888
b.statement = "func _on_body_enter(body):"
8989
test_list.append(b)
9090

91-
var test_cat: BlockCategory = BlockCategory.new("Test", test_list, Color("9989df"))
91+
var test_category: BlockCategory = BlockCategory.new("Test", test_list, Color("9989df"))
9292

9393
# Signal
9494
var signal_list: Array[Block] = []
@@ -137,7 +137,7 @@ static func get_general_categories() -> Array[BlockCategory]:
137137
b.statement = "{node}.is_in_group({group})"
138138
signal_list.append(b)
139139

140-
var signal_cat: BlockCategory = BlockCategory.new("Signal", signal_list, Color("f0c300"))
140+
var signal_category: BlockCategory = BlockCategory.new("Signal", signal_list, Color("f0c300"))
141141

142142
# Variable
143143
var variable_list: Array[Block] = []
@@ -168,7 +168,7 @@ static func get_general_categories() -> Array[BlockCategory]:
168168
b.statement = "str({int})"
169169
variable_list.append(b)
170170

171-
var variable_cat: BlockCategory = BlockCategory.new("Variables", variable_list, Color("4f975d"))
171+
var variable_category: BlockCategory = BlockCategory.new("Variables", variable_list, Color("4f975d"))
172172

173173
# Math
174174
var math_list: Array[Block] = []
@@ -203,7 +203,7 @@ static func get_general_categories() -> Array[BlockCategory]:
203203
b.statement = "(pow({base}, {exp}))"
204204
math_list.append(b)
205205

206-
var math_cat: BlockCategory = BlockCategory.new("Math", math_list, Color("3042c5"))
206+
var math_category: BlockCategory = BlockCategory.new("Math", math_list, Color("3042c5"))
207207

208208
# Logic
209209

@@ -229,9 +229,22 @@ static func get_general_categories() -> Array[BlockCategory]:
229229
b.statement = "(!{bool})"
230230
logic_list.append(b)
231231

232-
var logic_cat: BlockCategory = BlockCategory.new("Logic", logic_list, Color("42b8e3"))
232+
var logic_category: BlockCategory = BlockCategory.new("Logic", logic_list, Color("42b8e3"))
233233

234-
return [lifecycle_cat, signal_cat, control_cat, test_cat, math_cat, logic_cat, variable_cat]
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+
238+
return [
239+
lifecycle_category,
240+
signal_category,
241+
control_category,
242+
test_category,
243+
math_category,
244+
logic_category,
245+
variable_category,
246+
input_category,
247+
]
235248

236249

237250
static func add_to_categories(main: Array[BlockCategory], addition: Array[BlockCategory]) -> Array[BlockCategory]:
@@ -354,3 +367,30 @@ static func get_built_in_categories(_class_name: String) -> Array[BlockCategory]
354367
cats.append(class_cat)
355368

356369
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)