gobstones-blockly 0.29.0 → 0.29.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/app/assets/htmls/gs-element-blockly.html +47 -10
- data/lib/gobstones/blockly/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 535de373bc92627bf98a2b3c90f9d00ab61e074ef94b99a9e8f15bc6c7b248d3
|
4
|
+
data.tar.gz: 5f72b025962136ab74f71f23e10884cae99d8fa944ae752fa7a6309f1deb1d6b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: adfb423ee734fcad637dfc359a0623a6c680b28f0b5998d15d7d9f7d5ad5ef4a4bb2d1afc4c66687504103f2cd1dbd04ff295019b23ec9cb4cab5b0fab3c9876
|
7
|
+
data.tar.gz: b671355f1238b308c49b913ba0d5dd596c23b09da204c1a0f17d376d3ff910587a6378b757bbcb1fbdc9912b172ea10dd60932f67efb8b1b06210b31a7e9339e
|
@@ -3413,11 +3413,23 @@ window.initProcedsBlockly = function(customStatementType, initialize = () => {})
|
|
3413
3413
|
xmlBlock.setAttribute('type', 'variables_get');
|
3414
3414
|
|
3415
3415
|
var callback = Blockly.ContextMenu.callbackFactory(procedureBlock, xmlBlock);
|
3416
|
-
|
3416
|
+
|
3417
3417
|
return function() {
|
3418
3418
|
var block = callback();
|
3419
3419
|
block.$parent = procedureBlock.id;
|
3420
|
-
|
3420
|
+
|
3421
|
+
try {
|
3422
|
+
Blockly.Events.disabled_ = 1;
|
3423
|
+
const posParent = procedureBlock.getRelativeToSurfaceXY();
|
3424
|
+
const pos = block.getRelativeToSurfaceXY();
|
3425
|
+
let width = procedureBlock.width;
|
3426
|
+
const returnBlock = procedureBlock.inputList.find((it) => it.name === "RETURN");
|
3427
|
+
if (returnBlock) width -= returnBlock.renderWidth - 8;
|
3428
|
+
|
3429
|
+
block.moveBy(posParent.x - pos.x + width + 16, posParent.y - pos.y + 6);
|
3430
|
+
} finally {
|
3431
|
+
Blockly.Events.disabled_ = 0;
|
3432
|
+
}
|
3421
3433
|
};
|
3422
3434
|
};
|
3423
3435
|
|
@@ -3485,7 +3497,7 @@ window.initProcedsBlockly = function(customStatementType, initialize = () => {})
|
|
3485
3497
|
newName = getAvailableName(self, newName);
|
3486
3498
|
|
3487
3499
|
self.arguments_[i] = newName;
|
3488
|
-
|
3500
|
+
|
3489
3501
|
var blocks = self.workspace.getAllBlocks();
|
3490
3502
|
for (block of blocks) {
|
3491
3503
|
if (block.type === self.callType_ && block.getProcedureCall() === self.getProcedureDef()[0]) {
|
@@ -3512,7 +3524,7 @@ window.initProcedsBlockly = function(customStatementType, initialize = () => {})
|
|
3512
3524
|
.appendField(nameField, 'ARG' + i)
|
3513
3525
|
.appendField(createCallButton)
|
3514
3526
|
.appendField(removeParameterButton);
|
3515
|
-
|
3527
|
+
|
3516
3528
|
self.moveInputBefore(id, 'STACK');
|
3517
3529
|
};
|
3518
3530
|
|
@@ -3617,7 +3629,22 @@ window.initProcedsBlockly = function(customStatementType, initialize = () => {})
|
|
3617
3629
|
var xmlBlock = goog.dom.createDom('block', null, xmlMutation);
|
3618
3630
|
xmlBlock.setAttribute('type', self.callType_);
|
3619
3631
|
|
3620
|
-
Blockly.ContextMenu.callbackFactory(self, xmlBlock)();
|
3632
|
+
const block = Blockly.ContextMenu.callbackFactory(self, xmlBlock)();
|
3633
|
+
|
3634
|
+
try {
|
3635
|
+
const procedureBlock = self;
|
3636
|
+
|
3637
|
+
Blockly.Events.disabled_ = 1;
|
3638
|
+
const posParent = procedureBlock.getRelativeToSurfaceXY();
|
3639
|
+
const pos = block.getRelativeToSurfaceXY();
|
3640
|
+
let width = procedureBlock.width;
|
3641
|
+
const returnBlock = procedureBlock.inputList.find((it) => it.name === "RETURN");
|
3642
|
+
if (returnBlock) width -= returnBlock.renderWidth - 8;
|
3643
|
+
|
3644
|
+
block.moveBy(posParent.x - pos.x + width + 16, posParent.y - pos.y + 6);
|
3645
|
+
} finally {
|
3646
|
+
Blockly.Events.disabled_ = 0;
|
3647
|
+
}
|
3621
3648
|
}
|
3622
3649
|
);
|
3623
3650
|
input.appendField(createCallButton);
|
@@ -4175,6 +4202,15 @@ Blockly.CUSTOM_COLORS = {"globalHsvSaturation":0.45,"globalHsvValue":0.65,"primi
|
|
4175
4202
|
Blockly.AVAILABLE_ICONS = ["bool-false.svg","bool-true.svg","clean.png","color-azul.svg","color-negro.svg","color-rojo.svg","color-verde.svg","direccion-este.svg","direccion-norte.svg","direccion-oeste.svg","direccion-sur.svg","hand.png","minus.png","plus.png"];
|
4176
4203
|
const EMPTY_GIF = "data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==";
|
4177
4204
|
|
4205
|
+
const ATOMICALLY = (action) => {
|
4206
|
+
try {
|
4207
|
+
Blockly.Events.disabled_ = 1;
|
4208
|
+
action();
|
4209
|
+
} finally {
|
4210
|
+
Blockly.Events.disabled_ = 0;
|
4211
|
+
}
|
4212
|
+
}
|
4213
|
+
|
4178
4214
|
const getOptions = (block) => {
|
4179
4215
|
const parentWorkspace = block.workspace.options.parentWorkspace;
|
4180
4216
|
return parentWorkspace && parentWorkspace.options || block.workspace.options
|
@@ -4202,11 +4238,12 @@ Blockly.createBlockSvg = function(workspace, name, f) {
|
|
4202
4238
|
const createVariable = (parent, name) => {
|
4203
4239
|
const workspace = parent.workspace;
|
4204
4240
|
Blockly.createBlockSvg(workspace, 'variables_get', b => {
|
4205
|
-
|
4206
|
-
|
4207
|
-
|
4208
|
-
|
4209
|
-
|
4241
|
+
ATOMICALLY(() => {
|
4242
|
+
b.setFieldValue(name, 'VAR');
|
4243
|
+
const posParent = parent.getRelativeToSurfaceXY();
|
4244
|
+
const pos = b.getRelativeToSurfaceXY();
|
4245
|
+
b.moveBy(posParent.x - pos.x + parent.width + 16, posParent.y - pos.y + b.height + 6);
|
4246
|
+
});
|
4210
4247
|
});
|
4211
4248
|
}
|
4212
4249
|
|