From 8680673f2880e084ce9e9538274341adaf57eeb7 Mon Sep 17 00:00:00 2001 From: jfcharron Date: Mon, 12 Aug 2024 23:13:27 -0400 Subject: [PATCH 1/4] Add randi, randf, randf_range and randi_range block --- .../ui/picker/categories/category_factory.gd | 36 +++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/addons/block_code/ui/picker/categories/category_factory.gd b/addons/block_code/ui/picker/categories/category_factory.gd index d5e06b4e..bde5d736 100644 --- a/addons/block_code/ui/picker/categories/category_factory.gd +++ b/addons/block_code/ui/picker/categories/category_factory.gd @@ -404,6 +404,42 @@ static func get_general_blocks() -> Array[Block]: b.category = "Math" block_list.append(b) + b = BLOCKS["parameter_block"].instantiate() + b.block_name = "randf" + b.variant_type = TYPE_FLOAT + b.block_format = "randf" + b.statement = "randf()" + b.defaults = {} + b.category = "Math" + block_list.append(b) + + b = BLOCKS["parameter_block"].instantiate() + b.block_name = "randf_range" + b.variant_type = TYPE_FLOAT + b.block_format = "randf_range({from: FLOAT}, {to: FLOAT})" + b.statement = "(randf_range({from}, {to}))" + b.defaults = {"from": -1.0, "to": 1.0} + b.category = "Math" + block_list.append(b) + + b = BLOCKS["parameter_block"].instantiate() + b.block_name = "randi" + b.variant_type = TYPE_INT + b.block_format = "randi" + b.statement = "randi()" + b.defaults = {} + b.category = "Math" + block_list.append(b) + + b = BLOCKS["parameter_block"].instantiate() + b.block_name = "randi_range" + b.variant_type = TYPE_INT + b.block_format = "randi_range({from: INT}, {to: INT})" + b.statement = "(randi_range({from}, {to}))" + b.defaults = {"from": -1, "to": 1} + b.category = "Math" + block_list.append(b) + #endregion #region Logic From 4e0a6e68157c904f77f3ad7f1dc29d997719da9a Mon Sep 17 00:00:00 2001 From: jfcharron Date: Tue, 13 Aug 2024 23:36:50 -0400 Subject: [PATCH 2/4] Update block label to be more human friendly than a method name --- .../ui/picker/categories/category_factory.gd | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/addons/block_code/ui/picker/categories/category_factory.gd b/addons/block_code/ui/picker/categories/category_factory.gd index bde5d736..caae1c0f 100644 --- a/addons/block_code/ui/picker/categories/category_factory.gd +++ b/addons/block_code/ui/picker/categories/category_factory.gd @@ -407,37 +407,41 @@ static func get_general_blocks() -> Array[Block]: b = BLOCKS["parameter_block"].instantiate() b.block_name = "randf" b.variant_type = TYPE_FLOAT - b.block_format = "randf" + b.block_format = "Random number between 0.0 and 1.0" b.statement = "randf()" b.defaults = {} b.category = "Math" + b.tooltip_text = "Generate a random floating point number between 0.0 and 1.0 inclusively ([0.0, 1.0])" block_list.append(b) b = BLOCKS["parameter_block"].instantiate() b.block_name = "randf_range" b.variant_type = TYPE_FLOAT - b.block_format = "randf_range({from: FLOAT}, {to: FLOAT})" + b.block_format = "Random number between {from: FLOAT} and {to: FLOAT}" b.statement = "(randf_range({from}, {to}))" b.defaults = {"from": -1.0, "to": 1.0} b.category = "Math" + b.tooltip_text = "Generate a random floating point number between [i]from[/i] and [i]to[/i] inclusively" block_list.append(b) b = BLOCKS["parameter_block"].instantiate() b.block_name = "randi" b.variant_type = TYPE_INT - b.block_format = "randi" + b.block_format = "Random number between 0 and 4294967295" b.statement = "randi()" b.defaults = {} b.category = "Math" + b.tooltip_text = "Generate a random unsigned 32-bits integer number between 0 and 2^32-1 inclusively ([0, 2^32-1])" block_list.append(b) b = BLOCKS["parameter_block"].instantiate() b.block_name = "randi_range" b.variant_type = TYPE_INT - b.block_format = "randi_range({from: INT}, {to: INT})" + b.block_format = "Random number between {from: INT} and {to: INT}" b.statement = "(randi_range({from}, {to}))" b.defaults = {"from": -1, "to": 1} b.category = "Math" + b.tooltip_text = "Generate a random signed 32-bits integer number between [i]from[/i] and [i]to[/i] inclusively. [i]from[/i] and [i]to[/i] can be negative or positive number" block_list.append(b) #endregion From b7b6fa802964aea10ac4570e80b8d102435fbab9 Mon Sep 17 00:00:00 2001 From: Jian-Hong Pan Date: Tue, 30 Jul 2024 11:27:19 +0800 Subject: [PATCH 3/4] category_factory: Add another Sounds blocks for GDScript flavor According to the discussion [1], add the sound blocks into function get_built_in_blocks()'s class matching. It generates blocks belonging to AudioStreamPlayer node, including setting the property's value. Therfore, we have sound blocks in both types of general script and GDScript flavor. [1]: https://github.com/endlessm/godot-block-coding/pull/161#discussion_r1692961580 https://phabricator.endlessm.com/T35609 --- .../ui/picker/categories/category_factory.gd | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/addons/block_code/ui/picker/categories/category_factory.gd b/addons/block_code/ui/picker/categories/category_factory.gd index caae1c0f..1538050c 100644 --- a/addons/block_code/ui/picker/categories/category_factory.gd +++ b/addons/block_code/ui/picker/categories/category_factory.gd @@ -604,6 +604,7 @@ static func property_to_blocklist(property: Dictionary) -> Array[Block]: var variant_type = property.type const FALLBACK_SET_FOR_TYPE = { + TYPE_BOOL: false, TYPE_INT: "0", TYPE_FLOAT: "0", TYPE_VECTOR2: "0,0", @@ -611,6 +612,7 @@ static func property_to_blocklist(property: Dictionary) -> Array[Block]: } const FALLBACK_CHANGE_FOR_TYPE = { + TYPE_BOOL: true, TYPE_INT: "1", TYPE_FLOAT: "1", TYPE_VECTOR2: "1,1", @@ -764,6 +766,31 @@ static func get_built_in_blocks(_class_name: String) -> Array[Block]: "angular_velocity": {"category": "Physics | Velocity"}, } + "AudioStreamPlayer": + var b = BLOCKS["statement_block"].instantiate() + b.block_name = "audiostreamplayer_play" + b.block_format = "Play" + b.statement = "play()" + b.tooltip_text = "Play the audio stream" + b.category = "Sounds" + block_list.append(b) + + b = BLOCKS["statement_block"].instantiate() + b.block_name = "audiostreamplayer_stop" + b.block_format = "Stop" + b.statement = "stop()" + b.tooltip_text = "Stop the audio stream" + b.category = "Sounds" + block_list.append(b) + + props = { + "stream_paused": + { + "category": "Sounds", + "has_change": false, + }, + } + "AnimationPlayer": var b = BLOCKS["statement_block"].instantiate() b.block_name = "animationplayer_play" From 71a4badfe3ff5e0e96356e588af44b90de7620e3 Mon Sep 17 00:00:00 2001 From: jfcharron Date: Tue, 13 Aug 2024 23:45:25 -0400 Subject: [PATCH 4/4] Revert "category_factory: Add another Sounds blocks for GDScript flavor" This reverts commit b7b6fa802964aea10ac4570e80b8d102435fbab9. --- .../ui/picker/categories/category_factory.gd | 27 ------------------- 1 file changed, 27 deletions(-) diff --git a/addons/block_code/ui/picker/categories/category_factory.gd b/addons/block_code/ui/picker/categories/category_factory.gd index 1538050c..caae1c0f 100644 --- a/addons/block_code/ui/picker/categories/category_factory.gd +++ b/addons/block_code/ui/picker/categories/category_factory.gd @@ -604,7 +604,6 @@ static func property_to_blocklist(property: Dictionary) -> Array[Block]: var variant_type = property.type const FALLBACK_SET_FOR_TYPE = { - TYPE_BOOL: false, TYPE_INT: "0", TYPE_FLOAT: "0", TYPE_VECTOR2: "0,0", @@ -612,7 +611,6 @@ static func property_to_blocklist(property: Dictionary) -> Array[Block]: } const FALLBACK_CHANGE_FOR_TYPE = { - TYPE_BOOL: true, TYPE_INT: "1", TYPE_FLOAT: "1", TYPE_VECTOR2: "1,1", @@ -766,31 +764,6 @@ static func get_built_in_blocks(_class_name: String) -> Array[Block]: "angular_velocity": {"category": "Physics | Velocity"}, } - "AudioStreamPlayer": - var b = BLOCKS["statement_block"].instantiate() - b.block_name = "audiostreamplayer_play" - b.block_format = "Play" - b.statement = "play()" - b.tooltip_text = "Play the audio stream" - b.category = "Sounds" - block_list.append(b) - - b = BLOCKS["statement_block"].instantiate() - b.block_name = "audiostreamplayer_stop" - b.block_format = "Stop" - b.statement = "stop()" - b.tooltip_text = "Stop the audio stream" - b.category = "Sounds" - block_list.append(b) - - props = { - "stream_paused": - { - "category": "Sounds", - "has_change": false, - }, - } - "AnimationPlayer": var b = BLOCKS["statement_block"].instantiate() b.block_name = "animationplayer_play"