diff --git a/packages/blockly/core/dragging/block_drag_strategy.ts b/packages/blockly/core/dragging/block_drag_strategy.ts index bca926d47..a84f4a3cc 100644 --- a/packages/blockly/core/dragging/block_drag_strategy.ts +++ b/packages/blockly/core/dragging/block_drag_strategy.ts @@ -786,6 +786,10 @@ export class BlockDragStrategy implements IDragStrategy { this.applyConnections(this.connectionCandidate); this.disposeStep(); } else { + // play a sound if the block didn't connect to anything and isn't being deleted + if (disposition !== DragDisposition.DELETE) { + this.workspace.getAudioManager().play('drop'); + } this.block.queueRender().then(() => this.disposeStep()); } diff --git a/packages/blockly/core/dragging/comment_drag_strategy.ts b/packages/blockly/core/dragging/comment_drag_strategy.ts index 45c1690b0..be0810782 100644 --- a/packages/blockly/core/dragging/comment_drag_strategy.ts +++ b/packages/blockly/core/dragging/comment_drag_strategy.ts @@ -50,6 +50,7 @@ export class CommentDragStrategy implements IDragStrategy { this.workspace .getLayerManager() ?.moveOffDragLayer(this.comment, layers.BLOCK); + this.workspace.getAudioManager().play('drop'); this.comment.setDragging(false); this.comment.snapToGrid(); diff --git a/packages/blockly/core/inject.ts b/packages/blockly/core/inject.ts index 55cad0590..dffdeef47 100644 --- a/packages/blockly/core/inject.ts +++ b/packages/blockly/core/inject.ts @@ -333,4 +333,5 @@ function loadSounds(pathToMedia: string, workspace: WorkspaceSvg) { audioMgr.load([`${pathToMedia}click.mp3`], 'click'); audioMgr.load([`${pathToMedia}disconnect.mp3`], 'disconnect'); audioMgr.load([`${pathToMedia}delete.mp3`], 'delete'); + audioMgr.load([`${pathToMedia}drop.mp3`], 'drop'); } diff --git a/packages/blockly/media/drop.mp3 b/packages/blockly/media/drop.mp3 new file mode 100644 index 000000000..ddd81aca0 Binary files /dev/null and b/packages/blockly/media/drop.mp3 differ