kopia lustrzana https://github.com/backface/turtlestitch
also scan custom blocks for message sends
rodzic
72888f8cb5
commit
51a8b9e05b
|
@ -14,6 +14,7 @@
|
|||
* gui, blocks: fixed a bunch of typos and UI strings, thanks, Brian Broll!
|
||||
* colors library update, thanks, Brian H.!
|
||||
* German translation update
|
||||
* objects: also scan custom blocks for message sends
|
||||
|
||||
### 2020-08-31
|
||||
* Catalan translation update, thanks, Joan!
|
||||
|
|
|
@ -10,7 +10,7 @@
|
|||
<script src="src/widgets.js?version=2020-07-27"></script>
|
||||
<script src="src/blocks.js?version=2020-09-01"></script>
|
||||
<script src="src/threads.js?version=2020-08-05"></script>
|
||||
<script src="src/objects.js?version=2020-08-07"></script>
|
||||
<script src="src/objects.js?version=2020-09-01"></script>
|
||||
<script src="src/gui.js?version=2020-09-01"></script>
|
||||
<script src="src/paint.js?version=2020-05-17"></script>
|
||||
<script src="src/lists.js?version=2020-07-01"></script>
|
||||
|
|
|
@ -84,7 +84,7 @@ BlockEditorMorph, BlockDialogMorph, PrototypeHatBlockMorph, BooleanSlotMorph,
|
|||
localize, TableMorph, TableFrameMorph, normalizeCanvas, VectorPaintEditorMorph,
|
||||
HandleMorph, AlignmentMorph, Process, XML_Element, WorldMap, copyCanvas*/
|
||||
|
||||
modules.objects = '2020-August-07';
|
||||
modules.objects = '2020-September-01';
|
||||
|
||||
var SpriteMorph;
|
||||
var StageMorph;
|
||||
|
@ -5753,23 +5753,8 @@ SpriteMorph.prototype.yBottom = function () {
|
|||
// SpriteMorph message broadcasting
|
||||
|
||||
SpriteMorph.prototype.allMessageNames = function () {
|
||||
var msgs = [],
|
||||
all = this.scripts.children.slice();
|
||||
this.customBlocks.forEach(def => {
|
||||
if (def.body) {
|
||||
all.push(def.body.expression);
|
||||
}
|
||||
def.scripts.forEach(scr => all.push(scr));
|
||||
});
|
||||
if (this.globalBlocks) {
|
||||
this.globalBlocks.forEach(def => {
|
||||
if (def.body) {
|
||||
all.push(def.body.expression);
|
||||
}
|
||||
def.scripts.forEach(scr => all.push(scr));
|
||||
});
|
||||
}
|
||||
all.forEach(script => {
|
||||
var msgs = [];
|
||||
this.allScripts().forEach(script => {
|
||||
script.allChildren().forEach(morph => {
|
||||
var txt;
|
||||
if (morph instanceof InputSlotMorph && morph.choices && contains(
|
||||
|
@ -5789,25 +5774,30 @@ SpriteMorph.prototype.allMessageNames = function () {
|
|||
};
|
||||
|
||||
SpriteMorph.prototype.allSendersOf = function (message, receiverName) {
|
||||
if (typeof message === 'number') {message = message.toString(); }
|
||||
return this.scripts.allChildren().filter(morph => {
|
||||
var event, eventReceiver;
|
||||
if ((morph.selector) &&
|
||||
contains(
|
||||
['doBroadcast', 'doBroadcastAndWait', 'doSend'],
|
||||
morph.selector)
|
||||
) {
|
||||
event = morph.inputs()[0].evaluate();
|
||||
if (morph.selector === 'doSend') {
|
||||
eventReceiver = morph.inputs()[1].evaluate();
|
||||
if (typeof message === 'number') {
|
||||
message = message.toString();
|
||||
}
|
||||
return this.allScripts().filter(script =>
|
||||
script.allChildren().some(morph => {
|
||||
var event, eventReceiver;
|
||||
if ((morph.selector) &&
|
||||
contains(
|
||||
['doBroadcast', 'doBroadcastAndWait', 'doSend'],
|
||||
morph.selector)
|
||||
) {
|
||||
event = morph.inputs()[0].evaluate();
|
||||
if (morph.selector === 'doSend') {
|
||||
eventReceiver = morph.inputs()[1].evaluate();
|
||||
}
|
||||
return ((morph.selector !== 'doSend') ||
|
||||
(receiverName === eventReceiver)) &&
|
||||
((event === message) ||
|
||||
(message instanceof Array &&
|
||||
message[0] === 'any message'));
|
||||
}
|
||||
return ((morph.selector !== 'doSend') ||
|
||||
(receiverName === eventReceiver)) &&
|
||||
((event === message) ||
|
||||
(message instanceof Array && message[0] === 'any message'));
|
||||
}
|
||||
return false;
|
||||
});
|
||||
return false;
|
||||
})
|
||||
);
|
||||
};
|
||||
|
||||
SpriteMorph.prototype.allHatBlocksFor = function (message) {
|
||||
|
@ -5865,6 +5855,25 @@ SpriteMorph.prototype.allGenericHatBlocks = function () {
|
|||
});
|
||||
};
|
||||
|
||||
SpriteMorph.prototype.allScripts = function () {
|
||||
var all = this.scripts.children.slice();
|
||||
this.customBlocks.forEach(def => {
|
||||
if (def.body) {
|
||||
all.push(def.body.expression);
|
||||
}
|
||||
def.scripts.forEach(scr => all.push(scr));
|
||||
});
|
||||
if (this.globalBlocks) {
|
||||
this.globalBlocks.forEach(def => {
|
||||
if (def.body) {
|
||||
all.push(def.body.expression);
|
||||
}
|
||||
def.scripts.forEach(scr => all.push(scr));
|
||||
});
|
||||
}
|
||||
return all;
|
||||
};
|
||||
|
||||
// SpriteMorph events
|
||||
|
||||
SpriteMorph.prototype.mouseClickLeft = function () {
|
||||
|
@ -9210,6 +9219,9 @@ StageMorph.prototype.allHatBlocksForInteraction
|
|||
StageMorph.prototype.allGenericHatBlocks
|
||||
= SpriteMorph.prototype.allGenericHatBlocks;
|
||||
|
||||
StageMorph.prototype.allScripts
|
||||
= SpriteMorph.prototype.allScripts;
|
||||
|
||||
// StageMorph events
|
||||
|
||||
StageMorph.prototype.mouseClickLeft
|
||||
|
|
Ładowanie…
Reference in New Issue