gobstones-blockly 0.11.1 → 0.11.2
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 +155 -61
- data/lib/gobstones/blockly/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 891585669cd266e97df6ffd8181937289f509807199bb7e934ff66912d0736fb
|
4
|
+
data.tar.gz: 8d8d8930bf62bec7c4fff979550e434899fe5384c5e10474676e230554c6dc76
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fd46da04329bf1b411e4019abcaf8f9d08b0d2a2ffdb73566b5148d03092d869219534b9abbda36cd377f447bd2cfcce2c0f8118a47d74cd9b415421850915b5
|
7
|
+
data.tar.gz: ec38226415b998814c5efa693285391078d1206d02a0a82d02fefda81eea45738dd8181a4340cdf54d9bde6e43e0dd8b8397dc3ab1458b7f56ae9a25f07673db
|
@@ -3573,7 +3573,11 @@ window.initProcedsBlockly = function(customStatementType) {
|
|
3573
3573
|
this.setCommentText(comment);
|
3574
3574
|
}
|
3575
3575
|
this.setCommentText(null);
|
3576
|
-
this.setColour(
|
3576
|
+
this.setColour((
|
3577
|
+
Blockly.CUSTOM_COLORS && (
|
3578
|
+
Blockly.CUSTOM_COLORS[this.type] ||
|
3579
|
+
Blockly.CUSTOM_COLORS[withReturn ? "function" : "procedure"]
|
3580
|
+
)) || Blockly.Blocks.procedures.HUE);
|
3577
3581
|
this.setTooltip(tooltip);
|
3578
3582
|
this.setHelpUrl(helpUrl);
|
3579
3583
|
this.arguments_ = [];
|
@@ -3581,6 +3585,26 @@ window.initProcedsBlockly = function(customStatementType) {
|
|
3581
3585
|
this.statementConnection_ = null;
|
3582
3586
|
|
3583
3587
|
// if (!withParametersMutator) this.updateParams_();
|
3588
|
+
|
3589
|
+
// [!] adding create call button
|
3590
|
+
// TODO: Hacer esto
|
3591
|
+
// var xmlMutation = goog.dom.createDom('mutation');
|
3592
|
+
// xmlMutation.setAttribute('name', name);
|
3593
|
+
// for (var i = 0; i < self.arguments_.length; i++) {
|
3594
|
+
// var xmlArg = goog.dom.createDom('arg');
|
3595
|
+
// xmlArg.setAttribute('name', self.arguments_[i]);
|
3596
|
+
// xmlMutation.appendChild(xmlArg);
|
3597
|
+
// }
|
3598
|
+
// var xmlBlock = goog.dom.createDom('block', null, xmlMutation);
|
3599
|
+
// xmlBlock.setAttribute('type', self.callType_);
|
3600
|
+
// var createCallButton = new Blockly.FieldImage(
|
3601
|
+
// WAND,
|
3602
|
+
// 16,
|
3603
|
+
// 16,
|
3604
|
+
// "",
|
3605
|
+
// Blockly.ContextMenu.callbackFactory(self, xmlBlock)
|
3606
|
+
// );
|
3607
|
+
// input.appendField(createCallButton);
|
3584
3608
|
};
|
3585
3609
|
};
|
3586
3610
|
|
@@ -3648,13 +3672,14 @@ window.initProcedsBlockly = function(customStatementType) {
|
|
3648
3672
|
};
|
3649
3673
|
};
|
3650
3674
|
|
3651
|
-
//
|
3652
|
-
// [!] Setting custom statement type to procedure calls
|
3653
|
-
//
|
3675
|
+
// ---------------------------------------------------------------------
|
3676
|
+
// [!] Setting custom statement type to procedure calls and adding color
|
3677
|
+
// ---------------------------------------------------------------------
|
3654
3678
|
|
3655
3679
|
var oldProceduresCallNoReturnInit = Blockly.Blocks['procedures_callnoreturn'].init;
|
3656
3680
|
Blockly.Blocks['procedures_callnoreturn'].init = function() {
|
3657
3681
|
oldProceduresCallNoReturnInit.call(this);
|
3682
|
+
|
3658
3683
|
if (customStatementType) {
|
3659
3684
|
this.jsonInit({
|
3660
3685
|
type: customStatementType,
|
@@ -3662,6 +3687,27 @@ window.initProcedsBlockly = function(customStatementType) {
|
|
3662
3687
|
nextStatement: customStatementType
|
3663
3688
|
});
|
3664
3689
|
}
|
3690
|
+
|
3691
|
+
this.setColour((
|
3692
|
+
Blockly.CUSTOM_COLORS && (
|
3693
|
+
Blockly.CUSTOM_COLORS[this.type] ||
|
3694
|
+
Blockly.CUSTOM_COLORS.procedure_call
|
3695
|
+
)) || Blockly.Blocks.procedures.HUE);
|
3696
|
+
};
|
3697
|
+
|
3698
|
+
// ----------------------------------
|
3699
|
+
// [!] Adding color to function calls
|
3700
|
+
// ----------------------------------
|
3701
|
+
|
3702
|
+
var oldProceduresCallReturnInit = Blockly.Blocks['procedures_callreturn'].init;
|
3703
|
+
Blockly.Blocks['procedures_callreturn'].init = function() {
|
3704
|
+
oldProceduresCallReturnInit.call(this);
|
3705
|
+
|
3706
|
+
this.setColour((
|
3707
|
+
Blockly.CUSTOM_COLORS && (
|
3708
|
+
Blockly.CUSTOM_COLORS[this.type] || // TODO: Usar this.type en todos los cosos de colors
|
3709
|
+
Blockly.CUSTOM_COLORS.function_call
|
3710
|
+
)) || Blockly.Blocks.procedures.HUE);
|
3665
3711
|
};
|
3666
3712
|
|
3667
3713
|
// -------------------------------
|
@@ -3985,10 +4031,11 @@ window.initProcedsBlockly = function(customStatementType) {
|
|
3985
4031
|
</script>
|
3986
4032
|
<script>initProcedsBlockly("Statement");</script>
|
3987
4033
|
<script>var MINUS = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAQAAAD2e2DtAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QA/4ePzL8AAAAJcEhZcwAADsMAAA7DAcdvqGQAAAAHdElNRQfhDAUCCi+xWH4JAAABcUlEQVR42u3c7ZGCMBSG0etuYcTKls7AyrSEVWd4+bjnUECMeSbhD6kCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIBzu4XHm2rUvPekD2yutR57/4itTLXU0/Pvs9SUW5TcDrDUyE3r9Na6ZwZKBWD5PxVKIBPAVGtknGsZibeBTADPyCjXE1idn8A0/gJjXFPgn0sEwIEljgAHwPc2Xx87QHMCaE4AzQmgOQE0J4DmBNCcAJoTQHMCaE4AzQmgOQE0J4DmBNCcAJoTQHMCaE4AzQmgOQE0J4DmBNDcb2SUsfc0T2re/utAO0BzPg49sot8HOoI+M5IDJIJ4OF+gI+F7gpyRcwxxa6Iyb0E3mvYB96y1kgtv2vijubS18QBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAWXq7xrTQhKAi3AAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDE3LTEyLTA1VDAyOjEwOjQ3LTA1OjAwdZLI/gAAACV0RVh0ZGF0ZTptb2RpZnkAMjAxNy0xMi0wNVQwMjoxMDo0Ny0wNTowMATPcEIAAAAASUVORK5CYII=";
|
4034
|
+
var HAND = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAAAmJLR0QAAKqNIzIAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfiBAUBKBeKSgeBAAABTElEQVQoz22QzyvDcRjHX5/vvrMyStI2uZgftdVCSpJCyW1y00oUF+Xg4OIkx5VyUyJOsgv/gnJw4YCSSFMyB5pGbLJ99/k8LltreB2f9+v50eOigoc5FvGTJF8pugCwaKaNaE98uf9zMBXwjtNpbvmuaH2B0+HXuuyMEbOlQ4U1M5ZVcYbowg02YfZW5cnE9JIROdI7jsiOacoMPLZdEYPR1ouQkxCRG+feESlIXkQOzLR+NhvCpc3UbPcHAoRsADcAQ0Twq0ZosQgEVY0SqvGpkAUCxkIUYRP4bZRRNi9pvaD+TwXyFseHuYzy/Kt8CWfQ5Ems6C/5y7uZyDEH0Nt8vq0dUx0XzaapPyIIoIi23+47+SrlTvrTjLhKy2wmO95OqiacS+QBH9gAFDlOZnYbrimWOixSZCwUlK+vZd7bXiPldyi0yqX1OtkfCBS/9XAtDKAAAAAldEVYdGRhdGU6Y3JlYXRlADIwMTgtMDQtMDVUMDQ6NDQ6NDItMDM6MDD+uUN1AAAAJXRFWHRkYXRlOm1vZGlmeQAyMDE4LTA0LTA1VDA0OjQwOjIzLTAzOjAw5hdZgAAAAABJRU5ErkJggg==";
|
3988
4035
|
|
3989
4036
|
/* global Blockly */
|
3990
4037
|
|
3991
|
-
Blockly.
|
4038
|
+
Blockly.CUSTOM_COLORS = {
|
3992
4039
|
globalHsvSaturation: Blockly.HSV_SATURATION,
|
3993
4040
|
globalHsvValue: Blockly.HSV_VALUE,
|
3994
4041
|
primitiveCommand: "#8DA65B",
|
@@ -4000,6 +4047,13 @@ Blockly.GOBSTONES_COLORS = {
|
|
4000
4047
|
interactiveProgram: "#A6805B",
|
4001
4048
|
interactiveBinding: "#A6995B",
|
4002
4049
|
procedure: "#995BA6",
|
4050
|
+
function: "#774A77",
|
4051
|
+
primitiveProcedure: "#CACACA",
|
4052
|
+
primitiveFunction: "#BABABA",
|
4053
|
+
procedure_call: "#661CF6",
|
4054
|
+
function_call: "#330610",
|
4055
|
+
variable: "#FF0000",
|
4056
|
+
parameter: "#0000FF",
|
4003
4057
|
complete: "#A65C5B",
|
4004
4058
|
};
|
4005
4059
|
|
@@ -4036,7 +4090,7 @@ Blockly.Blocks.Program = {
|
|
4036
4090
|
}
|
4037
4091
|
]
|
4038
4092
|
})
|
4039
|
-
this.setColour(Blockly.
|
4093
|
+
this.setColour(Blockly.CUSTOM_COLORS.Program || Blockly.CUSTOM_COLORS.program);
|
4040
4094
|
this.setDeletable(true);
|
4041
4095
|
this.setEditable(true);
|
4042
4096
|
this.setMovable(true);
|
@@ -4080,7 +4134,7 @@ Blockly.Blocks.InteractiveProgram = {
|
|
4080
4134
|
}
|
4081
4135
|
]
|
4082
4136
|
});
|
4083
|
-
this.setColour(Blockly.
|
4137
|
+
this.setColour(Blockly.CUSTOM_COLORS.InteractiveProgram || Blockly.CUSTOM_COLORS.interactiveProgram);
|
4084
4138
|
this.setDeletable(true);
|
4085
4139
|
this.setEditable(true);
|
4086
4140
|
this.setMovable(true);
|
@@ -4222,7 +4276,7 @@ createInteractiveBinding = (name, keys) => {
|
|
4222
4276
|
options: keys.map(it => [it.name, it.code]),
|
4223
4277
|
}
|
4224
4278
|
],
|
4225
|
-
colour: Blockly.
|
4279
|
+
colour: Blockly.CUSTOM_COLORS.InteractiveBinding || Blockly.CUSTOM_COLORS.interactiveBinding,
|
4226
4280
|
tooltip: "Escoger una entrada",
|
4227
4281
|
});
|
4228
4282
|
|
@@ -4323,7 +4377,7 @@ Blockly.Blocks.RepeticionSimple = {
|
|
4323
4377
|
nextStatement: "Statement",
|
4324
4378
|
});
|
4325
4379
|
|
4326
|
-
this.setColour(Blockly.
|
4380
|
+
this.setColour(Blockly.CUSTOM_COLORS.RepeticionSimple || Blockly.CUSTOM_COLORS.controlStructure);
|
4327
4381
|
this.appendValueInput('count')
|
4328
4382
|
.appendField('repetir');
|
4329
4383
|
this.appendDummyInput()
|
@@ -4341,7 +4395,7 @@ Blockly.Blocks.RepeticionCondicional = {
|
|
4341
4395
|
nextStatement: "Statement",
|
4342
4396
|
});
|
4343
4397
|
|
4344
|
-
this.setColour(Blockly.
|
4398
|
+
this.setColour(Blockly.CUSTOM_COLORS.RepeticionCondicional || Blockly.CUSTOM_COLORS.controlStructure);
|
4345
4399
|
this.appendValueInput('condicion')
|
4346
4400
|
.setCheck('Bool')
|
4347
4401
|
.appendField('repetir hasta que');
|
@@ -4358,7 +4412,7 @@ Blockly.Blocks.AlternativaSimple = {
|
|
4358
4412
|
nextStatement: "Statement",
|
4359
4413
|
});
|
4360
4414
|
|
4361
|
-
this.setColour(Blockly.
|
4415
|
+
this.setColour(Blockly.CUSTOM_COLORS.AlternativaSimple || Blockly.CUSTOM_COLORS.controlStructure);
|
4362
4416
|
this.appendValueInput('condicion')
|
4363
4417
|
.appendField(Blockly.Msg["CONTROLS_IF_MSG_IF"]);
|
4364
4418
|
this.appendStatementInput('block').setCheck(["Statement"]);
|
@@ -4430,7 +4484,7 @@ Blockly.Blocks.AlternativaCompleta = {
|
|
4430
4484
|
"extensions": ["controls_if_tooltip"]
|
4431
4485
|
});
|
4432
4486
|
|
4433
|
-
this.setColour(Blockly.
|
4487
|
+
this.setColour(Blockly.CUSTOM_COLORS.AlternativaCompleta || Blockly.CUSTOM_COLORS.controlStructure);
|
4434
4488
|
this.setInputsInline(true);
|
4435
4489
|
|
4436
4490
|
this.elseCount_++;
|
@@ -4493,7 +4547,7 @@ Blockly.Blocks.Poner = {
|
|
4493
4547
|
name: 'COLOR'
|
4494
4548
|
}
|
4495
4549
|
],
|
4496
|
-
colour: Blockly.
|
4550
|
+
colour: Blockly.CUSTOM_COLORS.Poner || Blockly.CUSTOM_COLORS.primitiveCommand,
|
4497
4551
|
tooltip: 'Poner color en casillero.',
|
4498
4552
|
inputsInline: true
|
4499
4553
|
});
|
@@ -4513,7 +4567,7 @@ Blockly.Blocks.Sacar = {
|
|
4513
4567
|
name: 'COLOR'
|
4514
4568
|
}
|
4515
4569
|
],
|
4516
|
-
colour: Blockly.
|
4570
|
+
colour: Blockly.CUSTOM_COLORS.Sacar || Blockly.CUSTOM_COLORS.primitiveCommand,
|
4517
4571
|
tooltip: 'Sacar color de casillero.',
|
4518
4572
|
inputsInline: true
|
4519
4573
|
});
|
@@ -4533,7 +4587,7 @@ Blockly.Blocks.Mover = {
|
|
4533
4587
|
name: 'DIRECCION'
|
4534
4588
|
}
|
4535
4589
|
],
|
4536
|
-
colour: Blockly.
|
4590
|
+
colour: Blockly.CUSTOM_COLORS.Mover || Blockly.CUSTOM_COLORS.primitiveCommand,
|
4537
4591
|
tooltip: 'Mover en una dirección.',
|
4538
4592
|
inputsInline: true
|
4539
4593
|
});
|
@@ -4553,7 +4607,7 @@ Blockly.Blocks.IrAlBorde = {
|
|
4553
4607
|
name: 'DIRECCION'
|
4554
4608
|
}
|
4555
4609
|
],
|
4556
|
-
colour: Blockly.
|
4610
|
+
colour: Blockly.CUSTOM_COLORS.IrAlBorde || Blockly.CUSTOM_COLORS.primitiveCommand,
|
4557
4611
|
tooltip: 'Ir al borde del tablero.',
|
4558
4612
|
inputsInline: true
|
4559
4613
|
});
|
@@ -4567,7 +4621,7 @@ Blockly.Blocks.VaciarTablero = {
|
|
4567
4621
|
previousStatement: "Statement",
|
4568
4622
|
nextStatement: "Statement",
|
4569
4623
|
message0: 'Vaciar tablero',
|
4570
|
-
colour: Blockly.
|
4624
|
+
colour: Blockly.CUSTOM_COLORS.VaciarTablero || Blockly.CUSTOM_COLORS.primitiveCommand,
|
4571
4625
|
tooltip: 'Vaciar el tablero.',
|
4572
4626
|
inputsInline: true
|
4573
4627
|
});
|
@@ -4593,7 +4647,7 @@ Blockly.Blocks.BOOM = {
|
|
4593
4647
|
}
|
4594
4648
|
],
|
4595
4649
|
"inputsInline": false,
|
4596
|
-
"colour": Blockly.
|
4650
|
+
"colour": Blockly.CUSTOM_COLORS.BOOM || Blockly.CUSTOM_COLORS.primitiveCommand,
|
4597
4651
|
"tooltip": "Este comando hace que estalle todo."
|
4598
4652
|
});
|
4599
4653
|
}
|
@@ -4613,7 +4667,7 @@ Blockly.Blocks.ComandoCompletar = {
|
|
4613
4667
|
"nextStatement": "Statement",
|
4614
4668
|
"lastDummyAlign0": "RIGHT",
|
4615
4669
|
"message0": "COMPLETAR",
|
4616
|
-
"colour": Blockly.
|
4670
|
+
"colour": Blockly.CUSTOM_COLORS.ComandoCompletar || Blockly.CUSTOM_COLORS.complete,
|
4617
4671
|
"tooltip": "Tenés que reemplazar este bloque por tu solución"
|
4618
4672
|
});
|
4619
4673
|
},
|
@@ -4629,7 +4683,7 @@ Blockly.Blocks.AsociacionDeTeclaCompletar = {
|
|
4629
4683
|
"nextStatement": "InteractiveBinding",
|
4630
4684
|
"lastDummyAlign0": "RIGHT",
|
4631
4685
|
"message0": "COMPLETAR",
|
4632
|
-
"colour": Blockly.
|
4686
|
+
"colour": Blockly.CUSTOM_COLORS.AsociacionDeTeclaCompletar || Blockly.CUSTOM_COLORS.complete,
|
4633
4687
|
"tooltip": "Tenés que reemplazar este bloque por tu solución"
|
4634
4688
|
});
|
4635
4689
|
},
|
@@ -4641,13 +4695,30 @@ Blockly.Blocks.AsociacionDeTeclaCompletar = {
|
|
4641
4695
|
// Expresiones:
|
4642
4696
|
// ------------------------------------------------------
|
4643
4697
|
|
4698
|
+
function deepCopyObj(aObject) {
|
4699
|
+
var bObject, v, k;
|
4700
|
+
bObject = Array.isArray(aObject) ? [] : {};
|
4701
|
+
for (k in aObject) {
|
4702
|
+
v = aObject[k];
|
4703
|
+
bObject[k] = (typeof v === "object") ? deepCopyObj(v) : v;
|
4704
|
+
}
|
4705
|
+
return bObject;
|
4706
|
+
}
|
4707
|
+
|
4708
|
+
const oldMathNumber = Blockly.Blocks.math_number;
|
4709
|
+
Blockly.Blocks.math_number = deepCopyObj(Blockly.Blocks.math_number);
|
4710
|
+
Blockly.Blocks.math_number.init = function() {
|
4711
|
+
oldMathNumber.init.call(this);
|
4712
|
+
this.setColour(Blockly.CUSTOM_COLORS.math_number || Blockly.CUSTOM_COLORS.literalExpression);
|
4713
|
+
}
|
4714
|
+
|
4644
4715
|
Blockly.Blocks.ExpresionCompletar = {
|
4645
4716
|
init: function () {
|
4646
4717
|
this.jsonInit({
|
4647
4718
|
"type": "completar_expression",
|
4648
4719
|
"message0": "COMPLETAR",
|
4649
4720
|
"output": "any",
|
4650
|
-
"colour": Blockly.
|
4721
|
+
"colour": Blockly.CUSTOM_COLORS.ExpresionCompletar || Blockly.CUSTOM_COLORS.complete,
|
4651
4722
|
"tooltip": "Tenés que reemplazar este bloque por tu solución"
|
4652
4723
|
});
|
4653
4724
|
},
|
@@ -4667,7 +4738,7 @@ function createLiteralSelectorBlock(type,values){
|
|
4667
4738
|
options: values.map(value => [value,value]),
|
4668
4739
|
}],
|
4669
4740
|
output: type,
|
4670
|
-
colour: Blockly.
|
4741
|
+
colour: Blockly.CUSTOM_COLORS[`${type}Selector`] || Blockly.CUSTOM_COLORS.literalExpression,
|
4671
4742
|
tooltip: "Escoger " + type,
|
4672
4743
|
});
|
4673
4744
|
}
|
@@ -4689,7 +4760,7 @@ function createSingleParameterExpressionBlock(blockText,returnType){
|
|
4689
4760
|
name: 'VALUE'
|
4690
4761
|
}
|
4691
4762
|
],
|
4692
|
-
colour: Blockly.
|
4763
|
+
colour: Blockly.CUSTOM_COLORS[this.type] || Blockly.CUSTOM_COLORS.expression,
|
4693
4764
|
inputsInline: true,
|
4694
4765
|
output: returnType
|
4695
4766
|
})
|
@@ -4727,7 +4798,7 @@ Blockly.Blocks.OperadorDeComparacion = {
|
|
4727
4798
|
name: 'arg2'
|
4728
4799
|
}
|
4729
4800
|
],
|
4730
|
-
colour: Blockly.
|
4801
|
+
colour: Blockly.CUSTOM_COLORS.OperadorDeComparacion || Blockly.CUSTOM_COLORS.expression,
|
4731
4802
|
inputsInline: false,
|
4732
4803
|
output: 'Bool'
|
4733
4804
|
});
|
@@ -4756,7 +4827,7 @@ Blockly.Blocks.OperadorNumerico = {
|
|
4756
4827
|
name: 'arg2'
|
4757
4828
|
}
|
4758
4829
|
],
|
4759
|
-
colour: Blockly.
|
4830
|
+
colour: Blockly.CUSTOM_COLORS.OperadorNumerico || Blockly.CUSTOM_COLORS.expression,
|
4760
4831
|
inputsInline: false,
|
4761
4832
|
output: 'Number'
|
4762
4833
|
});
|
@@ -4775,7 +4846,7 @@ Blockly.Blocks.OperadorLogico = {
|
|
4775
4846
|
{
|
4776
4847
|
type: 'field_dropdown',
|
4777
4848
|
name: 'OPERATOR',
|
4778
|
-
options: [['y también', '
|
4849
|
+
options: [['y también', 'AND'], ['o bien', '||']]
|
4779
4850
|
},
|
4780
4851
|
{
|
4781
4852
|
type: 'input_dummy'
|
@@ -4785,7 +4856,7 @@ Blockly.Blocks.OperadorLogico = {
|
|
4785
4856
|
name: 'arg2'
|
4786
4857
|
}
|
4787
4858
|
],
|
4788
|
-
colour: Blockly.
|
4859
|
+
colour: Blockly.CUSTOM_COLORS.OperadorLogico || Blockly.CUSTOM_COLORS.expression,
|
4789
4860
|
inputsInline: false,
|
4790
4861
|
output: 'Bool'
|
4791
4862
|
});
|
@@ -4796,12 +4867,12 @@ Blockly.Blocks.Asignacion = {
|
|
4796
4867
|
init: function () {
|
4797
4868
|
this.jsonInit({
|
4798
4869
|
"type": "asignacion",
|
4799
|
-
"message0": "%1 %2
|
4870
|
+
"message0": "Recordar que %1 %2 vale %3 %4",
|
4800
4871
|
"args0": [
|
4801
4872
|
{
|
4802
4873
|
"type": "field_input",
|
4803
4874
|
"name": "varName",
|
4804
|
-
"text": "
|
4875
|
+
"text": "una variable",
|
4805
4876
|
"class": Blockly.Procedures.rename
|
4806
4877
|
},
|
4807
4878
|
{
|
@@ -4818,11 +4889,24 @@ Blockly.Blocks.Asignacion = {
|
|
4818
4889
|
"inputsInline": true,
|
4819
4890
|
"previousStatement": null,
|
4820
4891
|
"nextStatement": null,
|
4821
|
-
"colour": Blockly.
|
4892
|
+
"colour": Blockly.CUSTOM_COLORS.Asignacion || Blockly.CUSTOM_COLORS.assignation,
|
4822
4893
|
"tooltip": "",
|
4823
4894
|
"helpUrl": ""
|
4824
4895
|
});
|
4825
|
-
|
4896
|
+
|
4897
|
+
var self = this;
|
4898
|
+
var createGetterButton = new Blockly.FieldImage(
|
4899
|
+
HAND,
|
4900
|
+
16,
|
4901
|
+
16,
|
4902
|
+
"Obtener variable",
|
4903
|
+
function() {
|
4904
|
+
var name = self.getFieldValue('varName');
|
4905
|
+
self.createVariableBlock(name);
|
4906
|
+
}
|
4907
|
+
);
|
4908
|
+
|
4909
|
+
this.appendDummyInput().appendField(createGetterButton);
|
4826
4910
|
},
|
4827
4911
|
|
4828
4912
|
customContextMenu: function(options) {
|
@@ -4837,20 +4921,7 @@ Blockly.Blocks.Asignacion = {
|
|
4837
4921
|
return Blockly.createBlockSvg(this.workspace, 'variables_get', b => {
|
4838
4922
|
b.setFieldValue(name, 'VAR');
|
4839
4923
|
b.moveBy(10,5);
|
4840
|
-
b.parentAssignmentBlock = this;
|
4841
|
-
this.getters.push(b);
|
4842
4924
|
});
|
4843
|
-
},
|
4844
|
-
|
4845
|
-
removeGetter: function(block){
|
4846
|
-
this.getters.splice(this.getters.indexOf(block),1);
|
4847
|
-
},
|
4848
|
-
|
4849
|
-
onchange: function(event){
|
4850
|
-
if(event.blockId == this.id && event.type == Blockly.Events.BLOCK_CHANGE &&
|
4851
|
-
event.element == 'field'){
|
4852
|
-
this.getters.forEach(block => block.setFieldValue(event.newValue,'VAR'));
|
4853
|
-
};
|
4854
4925
|
}
|
4855
4926
|
};
|
4856
4927
|
|
@@ -4862,13 +4933,13 @@ Blockly.Blocks.variables_get = {
|
|
4862
4933
|
"message0": "%1",
|
4863
4934
|
"args0": [
|
4864
4935
|
{
|
4865
|
-
"type": "
|
4936
|
+
"type": "field_input",
|
4866
4937
|
"name": "VAR",
|
4867
4938
|
"text": "nombre de variable"
|
4868
4939
|
}
|
4869
4940
|
],
|
4870
4941
|
"output": null,
|
4871
|
-
"colour":
|
4942
|
+
"colour": Blockly.CUSTOM_COLORS.variable,
|
4872
4943
|
"tooltip": "",
|
4873
4944
|
"helpUrl": "",
|
4874
4945
|
});
|
@@ -4886,8 +4957,15 @@ Blockly.Blocks.variables_get = {
|
|
4886
4957
|
},
|
4887
4958
|
|
4888
4959
|
onchange: function(event){
|
4889
|
-
if(
|
4890
|
-
|
4960
|
+
if (this.$parent) {
|
4961
|
+
this.getField("VAR").EDITABLE = false;
|
4962
|
+
this.setColour(Blockly.CUSTOM_COLORS.parameter);
|
4963
|
+
} else {
|
4964
|
+
this.setColour(Blockly.CUSTOM_COLORS.variable);
|
4965
|
+
}
|
4966
|
+
|
4967
|
+
if (event.blockId == this.id && event.type == Blockly.Events.BLOCK_DELETE) {
|
4968
|
+
// do something with parent
|
4891
4969
|
}
|
4892
4970
|
}
|
4893
4971
|
};
|
@@ -5269,6 +5347,7 @@ Blockly.GobstonesLanguage.OperadorNumerico = function (block) {
|
|
5269
5347
|
Blockly.GobstonesLanguage.OperadorLogico = function(block) {
|
5270
5348
|
// Operations 'and', 'or'.
|
5271
5349
|
var operator = block.getFieldValue('OPERATOR');
|
5350
|
+
if (operator === "AND") operator = "&&";
|
5272
5351
|
var order = (operator == '&&') ? Blockly.GobstonesLanguage.ORDER_LOGICAL_AND : Blockly.GobstonesLanguage.ORDER_LOGICAL_OR;
|
5273
5352
|
var argument0 = Blockly.GobstonesLanguage.valueToCode(block, 'arg1', order) || '()';
|
5274
5353
|
var argument1 = Blockly.GobstonesLanguage.valueToCode(block, 'arg2', order) || '()';
|
@@ -5954,7 +6033,7 @@ Blockly.ErrorInforming.CssContent = [
|
|
5954
6033
|
for (var item of ttree) {
|
5955
6034
|
if (item.type !== "category") continue;
|
5956
6035
|
|
5957
|
-
if (item.name ===
|
6036
|
+
if (item.name === categoryName)
|
5958
6037
|
item.child = customTree;
|
5959
6038
|
else
|
5960
6039
|
addCustomActionsChilds(item.child);
|
@@ -6004,9 +6083,9 @@ Blockly.ErrorInforming.CssContent = [
|
|
6004
6083
|
return xml.join('\n');
|
6005
6084
|
},
|
6006
6085
|
|
6007
|
-
_getPartsByConvention(name) {
|
6086
|
+
_getPartsByConvention(isProcedure, name) {
|
6008
6087
|
let parts = name.replace(/([A-Z])/g, " $1").toLowerCase();
|
6009
|
-
parts = parts[1].toUpperCase() + parts.substring(2);
|
6088
|
+
if (isProcedure) parts = parts[1].toUpperCase() + parts.substring(2);
|
6010
6089
|
parts = this._getParts(parts);
|
6011
6090
|
|
6012
6091
|
return parts;
|
@@ -6025,14 +6104,14 @@ Blockly.ErrorInforming.CssContent = [
|
|
6025
6104
|
const icon = definition.attributes && definition.attributes.block_icon;
|
6026
6105
|
|
6027
6106
|
const finalName = customName || name;
|
6028
|
-
const parts = (customName ? this._getParts : this._getPartsByConvention)
|
6107
|
+
const parts = (customName ? this._getParts : this._getPartsByConvention.bind(this, true))
|
6029
6108
|
.bind(this)(finalName);
|
6030
6109
|
|
6031
6110
|
// Bloque
|
6032
6111
|
Blockly.Blocks[name] = {
|
6033
6112
|
init: function () {
|
6034
6113
|
let argsIndex = 1;
|
6035
|
-
this.setColour(Blockly.
|
6114
|
+
this.setColour(Blockly.CUSTOM_COLORS.primitiveProcedure);
|
6036
6115
|
|
6037
6116
|
if (icon) {
|
6038
6117
|
this.appendDummyInput().appendField(new Blockly.FieldImage(
|
@@ -6085,14 +6164,14 @@ Blockly.ErrorInforming.CssContent = [
|
|
6085
6164
|
const icon = definition.attributes && definition.attributes.block_icon;
|
6086
6165
|
|
6087
6166
|
const finalName = customName || name;
|
6088
|
-
const parts = (customName ? this._getParts : this._getPartsByConvention)
|
6167
|
+
const parts = (customName ? this._getParts : this._getPartsByConvention.bind(this, false))
|
6089
6168
|
.bind(this)(finalName);
|
6090
6169
|
|
6091
6170
|
// Bloque
|
6092
6171
|
Blockly.Blocks[name] = {
|
6093
6172
|
init: function () {
|
6094
6173
|
let argsIndex = 1;
|
6095
|
-
this.setColour(Blockly.
|
6174
|
+
this.setColour(Blockly.CUSTOM_COLORS.primitiveFunction);
|
6096
6175
|
|
6097
6176
|
if (icon) {
|
6098
6177
|
this.appendDummyInput().appendField(new Blockly.FieldImage(
|
@@ -6239,7 +6318,10 @@ Blockly.ErrorInforming.CssContent = [
|
|
6239
6318
|
},
|
6240
6319
|
|
6241
6320
|
_onWorkspaceUpdate: function () {
|
6242
|
-
|
6321
|
+
const hasReloadedXml = this._runWorkspaceXmlRetrocompatibilityFixes();
|
6322
|
+
if (hasReloadedXml) return;
|
6323
|
+
|
6324
|
+
if (this.workspaceXml != this._blocklyWorkspaceXML) {
|
6243
6325
|
this.workspace.clear();
|
6244
6326
|
let dom = Blockly.Xml.textToDom(this.workspaceXml);
|
6245
6327
|
try {
|
@@ -6258,6 +6340,16 @@ Blockly.ErrorInforming.CssContent = [
|
|
6258
6340
|
}
|
6259
6341
|
},
|
6260
6342
|
|
6343
|
+
_runWorkspaceXmlRetrocompatibilityFixes: function() {
|
6344
|
+
const oldAndOperator = `<field name="OPERATOR">&&</field>`;
|
6345
|
+
const newAndOperator = `<field name="OPERATOR">AND</field>`;
|
6346
|
+
|
6347
|
+
if (this.workspaceXml.includes(oldAndOperator)) {
|
6348
|
+
this.workspaceXml = this.workspaceXml.replace(new RegExp(oldAndOperator, "g"), newAndOperator);
|
6349
|
+
return true;
|
6350
|
+
}
|
6351
|
+
},
|
6352
|
+
|
6261
6353
|
/**
|
6262
6354
|
* Reinicializa el workspace, dejando solo el bloque programa
|
6263
6355
|
*/
|
@@ -6472,16 +6564,18 @@ Blockly.ErrorInforming.CssContent = [
|
|
6472
6564
|
},
|
6473
6565
|
|
6474
6566
|
testColors(colors) {
|
6475
|
-
Blockly.
|
6567
|
+
Blockly.CUSTOM_COLORS = colors;
|
6476
6568
|
Blockly.HSV_SATURATION = colors.globalHsvSaturation;
|
6477
6569
|
Blockly.HSV_VALUE = colors.globalHsvValue;
|
6478
|
-
Blockly.Constants.Math.HUE = colors.literalExpression;
|
6479
|
-
Blockly.Msg.MATH_HUE = colors.literalExpression.toString();
|
6480
6570
|
Blockly.Blocks.procedures.HUE = colors.procedure;
|
6481
6571
|
|
6482
|
-
var
|
6572
|
+
var xmlDom = Blockly.Xml.workspaceToDom(this.workspace);
|
6573
|
+
const xml = Blockly.Xml.domToText(xmlDom);
|
6483
6574
|
this.resetWorkspace();
|
6484
|
-
|
6575
|
+
|
6576
|
+
setTimeout(() => {
|
6577
|
+
this.workspaceXml = xml;
|
6578
|
+
}, 0);
|
6485
6579
|
}
|
6486
6580
|
});
|
6487
6581
|
</script>
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gobstones-blockly
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.11.
|
4
|
+
version: 0.11.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rodrigo Alfonso
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-04-
|
11
|
+
date: 2018-04-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|