diff --git a/addons/block_code/code_generation/block_definition.gd b/addons/block_code/code_generation/block_definition.gd index b9a72e82..5bfbc794 100644 --- a/addons/block_code/code_generation/block_definition.gd +++ b/addons/block_code/code_generation/block_definition.gd @@ -28,6 +28,8 @@ const FORMAT_STRING_PATTERN = "\\[(?[^\\]]+)\\]|\\{const (? BlockExtension: diff --git a/addons/block_code/ui/main_panel.gd b/addons/block_code/ui/main_panel.gd index e276107d..cdc8e8f7 100644 --- a/addons/block_code/ui/main_panel.gd +++ b/addons/block_code/ui/main_panel.gd @@ -86,6 +86,11 @@ func _on_delete_node_button_pressed(): dialog.connect("confirmed", _on_delete_dialog_confirmed.bind(_context.block_code_node)) +func _on_advanced_checkbox_toggled(is_advanced: bool): + _picker.set_advanced(is_advanced) + _picker.reload_blocks() + + func _on_delete_dialog_confirmed(block_code_node: BlockCode): var parent_node = block_code_node.get_parent() diff --git a/addons/block_code/ui/main_panel.tscn b/addons/block_code/ui/main_panel.tscn index 78520466..838ee3fe 100644 --- a/addons/block_code/ui/main_panel.tscn +++ b/addons/block_code/ui/main_panel.tscn @@ -60,6 +60,10 @@ unique_name_in_owner = true layout_mode = 2 size_flags_horizontal = 3 +[node name="AdvancedCheckBox" type="CheckBox" parent="MarginContainer/HBoxContainer/ScriptVBox/HBoxContainer"] +layout_mode = 2 +text = "Advanced" + [node name="ShowScriptButton" type="Button" parent="MarginContainer/HBoxContainer/ScriptVBox/HBoxContainer"] layout_mode = 2 size_flags_horizontal = 0 @@ -119,6 +123,7 @@ block_canvas_path = NodePath("../PickerSplit/MarginContainer/VBoxContainer/Block [connection signal="pressed" from="MarginContainer/HBoxContainer/ScriptVBox/HBoxContainer/ShowScriptButton" to="." method="_on_show_script_button_pressed"] [connection signal="pressed" from="MarginContainer/HBoxContainer/ScriptVBox/HBoxContainer/DeleteNodeButton" to="." method="_on_delete_node_button_pressed"] +[connection signal="toggled" from="MarginContainer/HBoxContainer/ScriptVBox/HBoxContainer/AdvancedCheckBox" to="." method="_on_advanced_checkbox_toggled"] [connection signal="add_block_code" from="MarginContainer/HBoxContainer/ScriptVBox/MarginContainer/PickerSplit/MarginContainer/VBoxContainer/BlockCanvas" to="." method="_on_block_canvas_add_block_code"] [connection signal="open_scene" from="MarginContainer/HBoxContainer/ScriptVBox/MarginContainer/PickerSplit/MarginContainer/VBoxContainer/BlockCanvas" to="." method="_on_block_canvas_open_scene"] [connection signal="replace_block_code" from="MarginContainer/HBoxContainer/ScriptVBox/MarginContainer/PickerSplit/MarginContainer/VBoxContainer/BlockCanvas" to="." method="_on_block_canvas_replace_block_code"] diff --git a/addons/block_code/ui/picker/picker.gd b/addons/block_code/ui/picker/picker.gd index 8d061d82..22783a44 100644 --- a/addons/block_code/ui/picker/picker.gd +++ b/addons/block_code/ui/picker/picker.gd @@ -38,6 +38,7 @@ var scroll_tween: Tween var _category_buttons: Dictionary # String, BlockCategoryButton var _category_displays: Dictionary # String, BlockCategoryDisplay +var _advanced_mode: bool = false func _ready() -> void: @@ -74,6 +75,10 @@ func _update_block_components(): for category in block_categories: var block_definitions := _context.block_script.get_blocks_in_category(category) + + if not _advanced_mode: + block_definitions = block_definitions.filter(func(definition): return not definition.is_advanced) + var order_override = CATEGORY_ORDER_OVERRIDE.get(category.name) if order_override: block_definitions.sort_custom(_sort_blocks_by_list_order.bind(order_override)) @@ -136,3 +141,8 @@ func _category_selected(category_name: String): func set_collapsed(collapsed: bool): _widget_container.visible = not collapsed + + +func set_advanced(advanced: bool): + _advanced_mode = advanced + reload_blocks()