kopia lustrzana https://github.com/backface/turtlestitch
enable relabelling any loop prim to "forEach" and vice-versa
rodzic
deafbdd145
commit
482cf08cb3
|
|
@ -3275,7 +3275,11 @@ BlockMorph.prototype.restoreInputs = function (oldInputs, offset = 0) {
|
|||
this.inputs().forEach(inp => {
|
||||
old = oldInputs[offset];
|
||||
if (old instanceof ReporterBlockMorph) {
|
||||
this.replaceInput(inp, old.fullCopy());
|
||||
if (inp instanceof TemplateSlotMorph || inp.isStatic) {
|
||||
leftOver.push(old);
|
||||
} else {
|
||||
this.replaceInput(inp, old.fullCopy());
|
||||
}
|
||||
} else if (old && inp instanceof InputSlotMorph) {
|
||||
// original - turns empty numberslots to 0:
|
||||
// inp.setContents(old.evaluate());
|
||||
|
|
|
|||
|
|
@ -1525,6 +1525,10 @@ SpriteMorph.prototype.initBlockMigrations = function () {
|
|||
SpriteMorph.prototype.initBlockMigrations();
|
||||
|
||||
SpriteMorph.prototype.blockAlternatives = {
|
||||
// structure:
|
||||
// selector: [ersatz, ...]
|
||||
// ersatz can also be a 2-item array: [selector, input-offset]
|
||||
|
||||
// motion:
|
||||
turn: ['turnLeft'],
|
||||
turnLeft: ['turn'],
|
||||
|
|
@ -1581,10 +1585,13 @@ SpriteMorph.prototype.blockAlternatives = {
|
|||
doBroadcastAndWait: ['doBroadcast'],
|
||||
doIf: ['doIfElse', 'doUntil'],
|
||||
doIfElse: ['doIf', 'doUntil'],
|
||||
doRepeat: ['doUntil', ['doForever', -1], ['doFor', 2]],
|
||||
doUntil: ['doRepeat', 'doIf', ['doForever', -1], ['doFor', 2]],
|
||||
doForever: [['doUntil', 1], ['doRepeat', 1], ['doFor', 3]],
|
||||
doFor: [['doForever', -3], ['doRepeat', -2], ['doUntil', -2]],
|
||||
doRepeat: ['doUntil', ['doForever', -1], ['doFor', 2], ['doForEach', 1]],
|
||||
doUntil: ['doRepeat', 'doIf', ['doForever', -1], ['doFor', 2],
|
||||
['doForEach', 1]],
|
||||
doForever: [['doUntil', 1], ['doRepeat', 1], ['doFor', 3],
|
||||
['doForEach', 2]],
|
||||
doFor: [['doForever', -3], ['doRepeat', -2], ['doUntil', -2],
|
||||
['doForEach', -1]],
|
||||
|
||||
// sensing:
|
||||
doAsk: ['bubble', 'doThink', 'doSayFor', 'doThinkFor'],
|
||||
|
|
@ -1621,7 +1628,9 @@ SpriteMorph.prototype.blockAlternatives = {
|
|||
// lists - HOFs
|
||||
reportMap: ['reportKeep', 'reportFindFirst'],
|
||||
reportKeep: ['reportFindFirst', 'reportMap'],
|
||||
reportFindFirst: ['reportKeep', 'reportMap']
|
||||
reportFindFirst: ['reportKeep', 'reportMap'],
|
||||
doForEach: [['doFor', 1], ['doForever', -2], ['doRepeat', -1],
|
||||
['doUntil', -1]]
|
||||
};
|
||||
|
||||
// SpriteMorph instance creation
|
||||
|
|
|
|||
Ładowanie…
Reference in New Issue