Releases: endlessm/godot-block-coding
v0.8.0
This release comes with drag-and-drop support for the Inspector and Filesystem docks, internationalization / localization support, UI enhacements, new blocks, and more improvements.
Internationalization / Localization
The block labels and tooltips can now be translated to other languages. This release comes with localizations for Spanish, German, Chinese, and Polish. However the blocks will appear localized starting from Godot 4.4. Please check the README if you wish to contribute a translation.
Drag-And-Drop Support
Now properties can be dragged from the Inspector and dropped in the Block Coding canvas. This will create a block for the property. Press
the Ctrl
key while releasing to obtain a "Set (value)" block that can change the property.
drag-from-inspector.webm
Similartly, now resources can be dragged from the Filesystem into the Block Coding canvas. No more need to edit the res://
paths in blocks that need it, like the "load sound".
drag-from-filesystem.webm
General Blocks Improvements
- New block "switch scene to (scene resource)" under category "Communication | Methods". To switch to another scene.
- New block "remove (node)" under category "Lifecycle".
- New Math blocks for Vector2: "vector from (angle)" and multiply vector by number.
Per-node Blocks Improvements
- AnimationPlayer node: The "play" block now has the option to wait until done or play the animation in the background.
- New UI block for Label nodes: "text = (text)".
- New blocks for CPUParticles2D node for handling the "emitting" property.
- Allow using Vector2 in boolean context.
High-Level Nodes Improvements
- New
SimpleEnding
node. Use it for adding a "you win" / "try again" screen to your game. - The
SimpleScoring
node has been simplified to a single score, so it can be used in more games. - The
SimpleSpawner
node can now spawn to the scene. And "frequency" has been renamed to "period".
User Interface Improvements
The entry blocks now have a distinct shape, to avoid confusing them with the statement blocks. And the boolean blocks are now pointy, as it's common in other block-coding platforms like Scratch or Blockly.
Other improvements and polish for the canvas user interface:
- Better contrast in block dropdowns and blocks for the Variables category.
- Zoom in and out buttons for the canvas.
- Better drop preview, with correct shape and scale.
- The "Show Generated Script" popup window looks better now.
- Include the value type in the tooltip.
What's Changed
- Update screenshot by @wjt in #246
- blocks: Add vector_from_angle and vector_multiply blocks by @dylanmccall in #247
- SimpleSpawner: Allow spawning nodes as child of scene by @wjt in #251
- blocks: Add label_set_text by @dylanmccall in #249
- simple_scoring: Show a single score label by @dylanmccall in #250
- Allow using Vector2 in boolean context by @wjt in #254
- blocks_catalog: Add emitting property for CPUParticles2D by @dylanmccall in #252
- Dropdown contrast by @DoomTas3r in #245
- Util: Fix getting sub-scene's root path by @starnight in #256
- Await until animation is finished by @manuq in #258
- blocks: Add remove node block by @dbnicholson in #259
- Fix typo in "call method on node" block by @wjt in #260
- block_canvas: Select the new block code node in add block code by @dylanmccall in #263
- blocks: Remove extra newlines from entry blocks by @dbnicholson in #276
- Scale preview block by @DoomTas3r in #281
- simple_nodes: Add SimpleEnding node by @dbnicholson in #277
- Zoom in and out buttons by @DoomTas3r in #275
- Fix script popup by @manuq in #286
- Update Variables blocks color by @manuq in #285
- Include type in tooltip by @DoomTas3r in #287
- SimpleSpawner: Rename frequency to period by @wjt in #272
- Handle SimpleSpawner compatibility by @dbnicholson in #290
- Fix uid conflict in example ball scenes by @dbnicholson in #297
- Translation infrastructure by @dbnicholson in #295
- Switch property labels back to human readable by @manuq in #303
- BlockCanvas: Implement drag & drop the node's property from Inspector by @starnight in #296
- Initial Transifex configuratoin by @dbnicholson in #306
- Transifex sync by @dbnicholson in #307
- README: Add info of drag & drop node's property from Inspector by @starnight in #309
- Add switch_scene resource by @vanessa-chang in #298
- Translation scripts by @dbnicholson in #301
- Update Gut addon to 9.3.0 by @wjt in #300
- Pull translations from Transifex by @manuq in #312
- Simple spawner rotation alt by @manuq in #294
- Fix "Type::" double colon in block tooltip by @wjt in #315
- Miscellaneous CI/linting improvements by @wjt in #318
- Update GitHub issue templates by @manuq in #319
- Add Polish translation from Transifex by @wjt in #322
- BlockScriptSerialization: Re-generate block definition for object property blocks by @starnight in #316
- Shapes refactor by @manuq in #323
- Update Gut import files for Godot 4.3 by @manuq in #324
- BlockCanvas: Implement drag & drop the file from resource FileSystem by @starnight in #305
- UI: Improve block shapes by @manuq in #325
- Pull translations from Transifex by @manuq in #327
- Pong example: Use blocks for sound resources by @manuq in #328
New Contributors
- @DoomTas3r made their first contribution in #245
- @vanessa-chang made their first contribution in #298
Full Changelog: v0.7.1...v0.8.0
v0.7.1
This release introduces natural language labels for blocks. For example, instead of "On ready", there is now a "when starting" block.
It also includes the following new features:
- Nodes can be used as parameters for blocks such as such as "call method {method_name} in {node}". To use a node as a block, drag it and drop it from the scene tree to the block canvas.
- There is a new SimpleSpawner node, which spawns nodes based on a set of properties
- In blocks related to groups, there is an options list to choose between groups. The list shows groups in the current scene, as well as global groups in Godot 4.3.
Finally, there are some performance and usability enhancements for the block canvas. With this update, it is faster for the block code editor to switch between block scripts.
What's Changed
- Block picker enhancements by @dylanmccall in #228
- Allow dragging nodes to block canvas by @dbnicholson in #227
- Add SimpleSpawner node and blocks by @manuq in #230
- ParameterInput: Detect click & drag gestures by @dylanmccall in #233
- Switch block labels to natural language by @manuq in #231
- Block: Set z_index on focus by @dylanmccall in #237
- ParameterInput: Ignore mouse events when not visible by @dylanmccall in #236
- Pong: Use call method in node by @dylanmccall in #239
- block: Show tooltips for blocks by @wjt in #235
- DragDropArea: Add offset to drag_started signal by @dylanmccall in #238
- BlockCanvas: Use _gui_input instead of _input by @dylanmccall in #241
- Fix error in simple_spawner.gd with Godot 4.2.2 by @dylanmccall in #242
- blocks: Add groups option block extension by @dbnicholson in #240
- blocks: Use string type for group names by @dylanmccall in #243
Full Changelog: v0.7.0...v0.7.1
v0.7.0
This release includes an extensive rewrite of many low level aspects of the godot-block-coding plugin. Blocks are now specified as resources, which makes it easier to create new blocks and reduces the amount of duplication in scene files containing BlockCode
nodes.
New blocks are included:
- Play, Stop, Pause or Continue a sound.
- Generate random integer or floating point numbers.
- Execute trigonometry functions like sin, cos, and tan.
- Check if a CharacterBody2D node is on the floor.
- Breakpoint, to pause execution in the Godot debugger.
The AnimationPlayer blocks, such as "Play {animation}", now use an options list populated with available animations instead of a free text input field.
The user interface has also been updated with new tooltips for blocks, a way to quickly reset the zoom level, and several gradual improvements related to keyboard accessibility.
What's Changed
- Show generated script in a window by @manuq in #183
- T35536 decouple mid-term option by @manuq in #164
- Block: Allow deleting with Delete button by @dbnicholson in #170
- T35536 renames by @manuq in #178
- Zoom label enhancements by @dylanmccall in #188
- Prepare data model for UI decoupling by @wnbaum in #190
- category_factory: Add another Sounds blocks for GDScript flavor by @starnight in #174
- T35591 Read block definition from resource files by @manuq in #192
- T35591 Add remaining general blocks by @manuq in #195
- Add 4 random number generation blocks by @jfcharron in #194
- Build simple node scenes in code by @dbnicholson in #171
- Move development project to Godot 4.3 by @manuq in #197
- Adds sin, cos and tan trigonometry function by @jfcharron in #198
- T35591 more block definitions by @manuq in #199
- Check _selected_block_code is still valid before disconnecting by @dylanmccall in #207
- blocks: add viewport, simple_character, and characterbody2d_move tooltips by @cassidyjames in #209
- Fix signal name for area2d_on_exited block by @manuq in #212
- Remove _exit_tree methods from Simple nodes by @manuq in #214
- SimpleCharacter: Don't impose a collision shape by @manuq in #216
- Decouple UI from Code Generation by @wnbaum in #147
- Add character states by @manuq in #217
- ParameterInput: Don't snap blocks for option inputs by @dbnicholson in #219
- Improve keyboard accessibility in create_variable_dialog by @dylanmccall in #221
- README: Document installing a development snapshot by @wjt in #220
- Add dynamic options lists for blocks by @dylanmccall in #206
- Add breakpoint block by @dylanmccall in #224
- Add is_input_actioned.tres by @dylanmccall in #222
- Doc updates by @dsd in #225
- Add category block order by @dylanmccall in #226
- Cleanup dependencies by @dbnicholson in #229
New Contributors
- @jfcharron made their first contribution in #194
Full Changelog: v0.6.2...v0.7.0
v0.6.2
What's Changed
- ci: Use asset lib action 0.6.0 by @wjt in #159
- Text validation by @manuq in #160
- category_factory: Tweak tooltips by @cassidyjames in #163
- Util: Make node_is_part_of_edited_scene safer by @dbnicholson in #169
- category_factory: Add pause, stop and continue audio feature by @starnight in #161
- Block: Set bottom_snap_path when ready by @manuq in #175
- Block Canvas: Reuse saved block scene resource by @manuq in #176
- Parameter input: Fix Vector2 split by @manuq in #173
- Improve ControlBlock background drawing by @dylanmccall in #177
- Fix InstructionTree and Block circular dependency by @dbnicholson in #182
Full Changelog: v0.6.1...v0.6.2
v0.6.1
Please be advised that the saved format is still in flux. If you tried the plugin before, you will have to recreate your blocks.
What's Changed
- BlockCanvas: Fix block node array typing by @dbnicholson in #150
- Revert "Block: Handle bottom_snap property directly" by @manuq in #153
- Fix main_scene corruption by @manuq in #154
- First import fixes by @manuq in #155
- Block: Add FIXME note for using SnapPoint directly by @manuq in #156
- Block: Add setter to manage bottom_snap by @dbnicholson in #157
Full Changelog: v0.6.0...v0.7.0
v0.6.0
Please be advised that the saved format is still in flux. If you tried the plugin before, you will have to recreate your blocks.
What's Changed
- SimpleCharacter: Use methods for player movement by @manuq in #118
- Add blockcode warnings by @dylanmccall in #119
- Bump chickensoft-games/setup-godot from 2.0.1 to 2.1.1 by @dependabot in #125
- Add blocks for AnimationPlayer by @manuq in #124
- T35541 block code in bottom panel by @dylanmccall in #117
- Add zoom and pan to block canvas by @wnbaum in #120
- Make SimpleCharacter more flexible by @manuq in #123
- T35541 cleanups by @dylanmccall in #127
- Add version to block script data by @manuq in #122
- Always scroll block canvas to the top-left block on open by @dylanmccall in #128
- In block_canvas, snap EntryBlock blocks to a grid by @dylanmccall in #130
- Set MOUSE_FILTER_IGNORE for blocks where necessary by @dylanmccall in #129
- Revamp variable system by @wnbaum in #107
- Add _to_string for Block by @dylanmccall in #134
- ci: Set Python version for setup-python by @wjt in #136
- Add rich-text tooltips for blocks by @wjt in #135
- Pong: Fix scoring by @dbnicholson in #139
- Test serialization by @dbnicholson in #132
- tooltip: Don't save style overrides to tooltip.tscn by @wjt in #138
- Change Simple node scripts to instantiate themselves by @dylanmccall in #141
- Leak fixes by @dbnicholson in #143
- Reinstate stylebox overrides by @wjt in #144
- Serialization: Reuse SerializedBlock resources by @manuq in #137
- Parameter input: change text modification logic by @manuq in #142
- Plugin: Only skip duplicate work when BlockCode nodes selected by @dbnicholson in #145
Full Changelog: v0.5.0...v0.6.0
0.5.0
Compatibility improvements:
- Improve compatibility with Godot 4.3 beta
- Add workaround for compatibility with Godot 4.2.1
Bug fixes:
- Fix errors related to parameter blocks
- Correct tooltip for block picker toggle button
- Simplify drawing block backgrounds
- Remove unused code
Other improvements:
- Animate when scrolling between categories
- Use physical keys for implicit WASD & arrow-key input
v0.4.0
New features
- Scratch-like character UI
- Expose CharacterBody2D velocity
- Add viewport value blocks
Fixes
- Fix InputMap load removing spatial_editor actions in editor
- Fix error when dragging parameter blocks
- Fix getting started instructions
Development changes
- Document using the GUT CLI to run tests
- Update GitHub Action that publishes to Godot Asset Library
New Contributors 🎉
- @Cafezinhu made their first contribution in #102. Congratulations on making the first contribution from outside Endless!
Full Changelog: v0.3.1...v0.4.0
0.3.1
- Use commit hash rather than tag name in Asset Library submission
Full Changelog: v0.3.0...v0.3.1
0.3.0
What's Changed
- github: Drop the publish job's action type check by @starnight in #85
- Add scope to blocks by @wnbaum in #79
- Populate more fields of plugin.cfg by @wjt in #88
- Add simple character to node dialog by @wnbaum in #89
- Update index number for categories order by @manuq in #86
- category_factory: Add tooltips into Lifecycle and Sounds blocks by @starnight in #90
- Update project title by @manuq in #49
- Fix Simple node setup not happening by @wnbaum in #91
- test_category_factory: Free Block nodes by @dbnicholson in #93
- Add template for upload to asset library by @wjt in #87
Full Changelog: v0.2.0...v0.3.0