sb-edit-custom 0.15.0
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.
- package/LICENSE.txt +9 -0
- package/README.md +0 -0
- package/lib/Block.d.ts +388 -0
- package/lib/Block.js +631 -0
- package/lib/BlockInput.d.ts +213 -0
- package/lib/BlockInput.js +3 -0
- package/lib/Costume.d.ts +25 -0
- package/lib/Costume.js +23 -0
- package/lib/Data.d.ts +50 -0
- package/lib/Data.js +44 -0
- package/lib/OpCode.d.ts +212 -0
- package/lib/OpCode.js +219 -0
- package/lib/Project.d.ts +29 -0
- package/lib/Project.js +66 -0
- package/lib/Script.d.ts +16 -0
- package/lib/Script.js +62 -0
- package/lib/Sound.d.ts +21 -0
- package/lib/Sound.js +21 -0
- package/lib/Target.d.ts +47 -0
- package/lib/Target.js +120 -0
- package/lib/cli/index.d.ts +2 -0
- package/lib/cli/index.js +511 -0
- package/lib/index.d.ts +10 -0
- package/lib/index.js +48 -0
- package/lib/io/leopard/toLeopard.d.ts +22 -0
- package/lib/io/leopard/toLeopard.js +2199 -0
- package/lib/io/sb2/fromSb2.d.ts +0 -0
- package/lib/io/sb2/fromSb2.js +2 -0
- package/lib/io/sb2/index.d.ts +48 -0
- package/lib/io/sb2/index.js +3 -0
- package/lib/io/sb2/toSb2.d.ts +0 -0
- package/lib/io/sb2/toSb2.js +2 -0
- package/lib/io/sb3/fromSb3.d.ts +16 -0
- package/lib/io/sb3/fromSb3.js +628 -0
- package/lib/io/sb3/interfaces.d.ts +624 -0
- package/lib/io/sb3/interfaces.js +336 -0
- package/lib/io/sb3/toSb3.d.ts +8 -0
- package/lib/io/sb3/toSb3.js +851 -0
- package/lib/io/scratchblocks/toScratchblocks.d.ts +7 -0
- package/lib/io/scratchblocks/toScratchblocks.js +606 -0
- package/lib/util/id.d.ts +1 -0
- package/lib/util/id.js +12 -0
- package/package.json +68 -0
package/lib/Block.js
ADDED
|
@@ -0,0 +1,631 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
|
|
3
|
+
if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
|
|
4
|
+
if (ar || !(i in from)) {
|
|
5
|
+
if (!ar) ar = Array.prototype.slice.call(from, 0, i);
|
|
6
|
+
ar[i] = from[i];
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
return to.concat(ar || Array.prototype.slice.call(from));
|
|
10
|
+
};
|
|
11
|
+
var _a;
|
|
12
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
|
+
exports.BlockBase = void 0;
|
|
14
|
+
var OpCode_1 = require("./OpCode");
|
|
15
|
+
var id_1 = require("./util/id");
|
|
16
|
+
var BlockBase = /** @class */ (function () {
|
|
17
|
+
function BlockBase(options) {
|
|
18
|
+
this.parent = null;
|
|
19
|
+
this.next = null;
|
|
20
|
+
Object.assign(this, options);
|
|
21
|
+
if (!options.id) {
|
|
22
|
+
this.id = (0, id_1.generateId)();
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
// TODO: fix signature to be more specific in what's returned
|
|
26
|
+
BlockBase.getDefaultInput = function (opcode, input) {
|
|
27
|
+
if (!(opcode in KnownBlockInputMap))
|
|
28
|
+
return;
|
|
29
|
+
return KnownBlockInputMap[opcode][input];
|
|
30
|
+
};
|
|
31
|
+
BlockBase.isKnownBlock = function (opcode) {
|
|
32
|
+
return opcode in KnownBlockInputMap;
|
|
33
|
+
};
|
|
34
|
+
// TODO: Can we reference MyInputs here?
|
|
35
|
+
BlockBase.prototype.getDefaultInput = function (input) {
|
|
36
|
+
if (this.isKnownBlock()) {
|
|
37
|
+
return BlockBase.getDefaultInput(this.opcode, input);
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
BlockBase.prototype.isKnownBlock = function () {
|
|
41
|
+
return BlockBase.isKnownBlock(this.opcode);
|
|
42
|
+
};
|
|
43
|
+
Object.defineProperty(BlockBase.prototype, "blocks", {
|
|
44
|
+
get: function () {
|
|
45
|
+
return __spreadArray([
|
|
46
|
+
this
|
|
47
|
+
], Object.values(this.inputs).flatMap(function (input) {
|
|
48
|
+
if (input.type === "block") {
|
|
49
|
+
return input.value;
|
|
50
|
+
}
|
|
51
|
+
else if (input.type === "blocks" && input.value) {
|
|
52
|
+
return input.value;
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
return [];
|
|
56
|
+
}
|
|
57
|
+
}), true);
|
|
58
|
+
},
|
|
59
|
+
enumerable: false,
|
|
60
|
+
configurable: true
|
|
61
|
+
});
|
|
62
|
+
Object.defineProperty(BlockBase.prototype, "isHat", {
|
|
63
|
+
get: function () {
|
|
64
|
+
var hatTypes = [
|
|
65
|
+
OpCode_1.OpCode.event_whenflagclicked,
|
|
66
|
+
OpCode_1.OpCode.event_whenkeypressed,
|
|
67
|
+
OpCode_1.OpCode.event_whenthisspriteclicked,
|
|
68
|
+
OpCode_1.OpCode.event_whenstageclicked,
|
|
69
|
+
OpCode_1.OpCode.event_whenbackdropswitchesto,
|
|
70
|
+
OpCode_1.OpCode.event_whengreaterthan,
|
|
71
|
+
OpCode_1.OpCode.event_whenbroadcastreceived,
|
|
72
|
+
OpCode_1.OpCode.control_start_as_clone,
|
|
73
|
+
OpCode_1.OpCode.procedures_definition
|
|
74
|
+
];
|
|
75
|
+
return hatTypes.includes(this.opcode);
|
|
76
|
+
},
|
|
77
|
+
enumerable: false,
|
|
78
|
+
configurable: true
|
|
79
|
+
});
|
|
80
|
+
return BlockBase;
|
|
81
|
+
}());
|
|
82
|
+
exports.BlockBase = BlockBase;
|
|
83
|
+
// TODO: This is largely a copy of the above data, formatted as a runtime
|
|
84
|
+
// constant instead of as type information. Is it possible to construct a type
|
|
85
|
+
// from the value of this mapping? I don't know enough ts-fu to risk doing so
|
|
86
|
+
// in some way that seems to function as it's supposed to but actually isn't
|
|
87
|
+
// carrying type information correctly.
|
|
88
|
+
var KnownBlockInputMap = (_a = {},
|
|
89
|
+
// Motion
|
|
90
|
+
_a[OpCode_1.OpCode.motion_movesteps] = {
|
|
91
|
+
STEPS: { type: "number", initial: 10 }
|
|
92
|
+
},
|
|
93
|
+
_a[OpCode_1.OpCode.motion_turnright] = {
|
|
94
|
+
DEGREES: { type: "number", initial: 15 }
|
|
95
|
+
},
|
|
96
|
+
_a[OpCode_1.OpCode.motion_turnleft] = {
|
|
97
|
+
DEGREES: { type: "number", initial: 15 }
|
|
98
|
+
},
|
|
99
|
+
_a[OpCode_1.OpCode.motion_goto] = {
|
|
100
|
+
TO: { type: "goToTarget", initial: "_random_" }
|
|
101
|
+
},
|
|
102
|
+
_a[OpCode_1.OpCode.motion_gotoxy] = {
|
|
103
|
+
X: { type: "number", initial: 0 },
|
|
104
|
+
Y: { type: "number", initial: 0 }
|
|
105
|
+
},
|
|
106
|
+
_a[OpCode_1.OpCode.motion_glideto] = {
|
|
107
|
+
SECS: { type: "number", initial: 1 },
|
|
108
|
+
TO: { type: "goToTarget", initial: "_random_" }
|
|
109
|
+
},
|
|
110
|
+
_a[OpCode_1.OpCode.motion_glidesecstoxy] = {
|
|
111
|
+
SECS: { type: "number", initial: 1 },
|
|
112
|
+
X: { type: "number", initial: 0 },
|
|
113
|
+
Y: { type: "number", initial: 0 }
|
|
114
|
+
},
|
|
115
|
+
_a[OpCode_1.OpCode.motion_pointindirection] = {
|
|
116
|
+
DIRECTION: { type: "angle", initial: 90 }
|
|
117
|
+
},
|
|
118
|
+
_a[OpCode_1.OpCode.motion_pointtowards] = {
|
|
119
|
+
TOWARDS: { type: "pointTowardsTarget", initial: "_mouse_" }
|
|
120
|
+
},
|
|
121
|
+
_a[OpCode_1.OpCode.motion_changexby] = {
|
|
122
|
+
DX: { type: "number", initial: 10 }
|
|
123
|
+
},
|
|
124
|
+
_a[OpCode_1.OpCode.motion_setx] = {
|
|
125
|
+
X: { type: "number", initial: 0 }
|
|
126
|
+
},
|
|
127
|
+
_a[OpCode_1.OpCode.motion_changeyby] = {
|
|
128
|
+
DY: { type: "number", initial: 10 }
|
|
129
|
+
},
|
|
130
|
+
_a[OpCode_1.OpCode.motion_sety] = {
|
|
131
|
+
Y: { type: "number", initial: 0 }
|
|
132
|
+
},
|
|
133
|
+
_a[OpCode_1.OpCode.motion_ifonedgebounce] = {},
|
|
134
|
+
_a[OpCode_1.OpCode.motion_setrotationstyle] = {
|
|
135
|
+
STYLE: { type: "rotationStyle", initial: "left-right" }
|
|
136
|
+
},
|
|
137
|
+
_a[OpCode_1.OpCode.motion_xposition] = {},
|
|
138
|
+
_a[OpCode_1.OpCode.motion_yposition] = {},
|
|
139
|
+
_a[OpCode_1.OpCode.motion_direction] = {},
|
|
140
|
+
_a[OpCode_1.OpCode.motion_scroll_right] = {
|
|
141
|
+
DISTANCE: { type: "number", initial: 10 }
|
|
142
|
+
},
|
|
143
|
+
_a[OpCode_1.OpCode.motion_scroll_up] = {
|
|
144
|
+
DISTANCE: { type: "number", initial: 10 }
|
|
145
|
+
},
|
|
146
|
+
_a[OpCode_1.OpCode.motion_align_scene] = {
|
|
147
|
+
ALIGNMENT: { type: "scrollAlignment", initial: "middle" }
|
|
148
|
+
},
|
|
149
|
+
// Looks
|
|
150
|
+
_a[OpCode_1.OpCode.looks_sayforsecs] = {
|
|
151
|
+
MESSAGE: { type: "string", initial: "Hello!" },
|
|
152
|
+
SECS: { type: "number", initial: 2 }
|
|
153
|
+
},
|
|
154
|
+
_a[OpCode_1.OpCode.looks_say] = {
|
|
155
|
+
MESSAGE: { type: "string", initial: "Hello!" }
|
|
156
|
+
},
|
|
157
|
+
_a[OpCode_1.OpCode.looks_thinkforsecs] = {
|
|
158
|
+
MESSAGE: { type: "string", initial: "Hmm..." },
|
|
159
|
+
SECS: { type: "number", initial: 2 }
|
|
160
|
+
},
|
|
161
|
+
_a[OpCode_1.OpCode.looks_think] = {
|
|
162
|
+
MESSAGE: { type: "string", initial: "Hmmm..." }
|
|
163
|
+
},
|
|
164
|
+
_a[OpCode_1.OpCode.looks_switchcostumeto] = {
|
|
165
|
+
COSTUME: { type: "costume", initial: "costume1" }
|
|
166
|
+
},
|
|
167
|
+
_a[OpCode_1.OpCode.looks_nextcostume] = {},
|
|
168
|
+
_a[OpCode_1.OpCode.looks_switchbackdropto] = {
|
|
169
|
+
BACKDROP: { type: "backdrop", initial: "backdrop1" }
|
|
170
|
+
},
|
|
171
|
+
_a[OpCode_1.OpCode.looks_nextbackdrop] = {},
|
|
172
|
+
_a[OpCode_1.OpCode.looks_changesizeby] = {
|
|
173
|
+
CHANGE: { type: "number", initial: 10 }
|
|
174
|
+
},
|
|
175
|
+
_a[OpCode_1.OpCode.looks_setsizeto] = {
|
|
176
|
+
SIZE: { type: "number", initial: 100 }
|
|
177
|
+
},
|
|
178
|
+
_a[OpCode_1.OpCode.looks_changeeffectby] = {
|
|
179
|
+
EFFECT: { type: "graphicEffect", initial: "COLOR" },
|
|
180
|
+
CHANGE: { type: "number", initial: 25 }
|
|
181
|
+
},
|
|
182
|
+
_a[OpCode_1.OpCode.looks_seteffectto] = {
|
|
183
|
+
EFFECT: { type: "graphicEffect", initial: "COLOR" },
|
|
184
|
+
VALUE: { type: "number", initial: 0 }
|
|
185
|
+
},
|
|
186
|
+
_a[OpCode_1.OpCode.looks_cleargraphiceffects] = {},
|
|
187
|
+
_a[OpCode_1.OpCode.looks_show] = {},
|
|
188
|
+
_a[OpCode_1.OpCode.looks_hide] = {},
|
|
189
|
+
_a[OpCode_1.OpCode.looks_gotofrontback] = {
|
|
190
|
+
FRONT_BACK: { type: "frontBackMenu", initial: "front" }
|
|
191
|
+
},
|
|
192
|
+
_a[OpCode_1.OpCode.looks_goforwardbackwardlayers] = {
|
|
193
|
+
FORWARD_BACKWARD: { type: "forwardBackwardMenu", initial: "forward" },
|
|
194
|
+
NUM: { type: "number", initial: 1 }
|
|
195
|
+
},
|
|
196
|
+
_a[OpCode_1.OpCode.looks_costumenumbername] = {
|
|
197
|
+
NUMBER_NAME: { type: "costumeNumberName", initial: "number" }
|
|
198
|
+
},
|
|
199
|
+
_a[OpCode_1.OpCode.looks_backdropnumbername] = {
|
|
200
|
+
NUMBER_NAME: { type: "costumeNumberName", initial: "number" }
|
|
201
|
+
},
|
|
202
|
+
_a[OpCode_1.OpCode.looks_size] = {},
|
|
203
|
+
_a[OpCode_1.OpCode.looks_hideallsprites] = {},
|
|
204
|
+
_a[OpCode_1.OpCode.looks_switchbackdroptoandwait] = {
|
|
205
|
+
BACKDROP: { type: "backdrop", initial: "backdrop1" }
|
|
206
|
+
},
|
|
207
|
+
_a[OpCode_1.OpCode.looks_changestretchby] = {
|
|
208
|
+
CHANGE: { type: "number", initial: 10 }
|
|
209
|
+
},
|
|
210
|
+
_a[OpCode_1.OpCode.looks_setstretchto] = {
|
|
211
|
+
STRETCH: { type: "number", initial: 0 }
|
|
212
|
+
},
|
|
213
|
+
// Sound
|
|
214
|
+
_a[OpCode_1.OpCode.sound_playuntildone] = {
|
|
215
|
+
SOUND_MENU: { type: "sound", initial: "pop" }
|
|
216
|
+
},
|
|
217
|
+
_a[OpCode_1.OpCode.sound_play] = {
|
|
218
|
+
SOUND_MENU: { type: "sound", initial: "sound" }
|
|
219
|
+
},
|
|
220
|
+
_a[OpCode_1.OpCode.sound_stopallsounds] = {},
|
|
221
|
+
_a[OpCode_1.OpCode.sound_changeeffectby] = {
|
|
222
|
+
EFFECT: { type: "soundEffect", initial: "PITCH" },
|
|
223
|
+
VALUE: { type: "number", initial: 10 }
|
|
224
|
+
},
|
|
225
|
+
_a[OpCode_1.OpCode.sound_seteffectto] = {
|
|
226
|
+
EFFECT: { type: "soundEffect", initial: "PITCH" },
|
|
227
|
+
VALUE: { type: "number", initial: 0 }
|
|
228
|
+
},
|
|
229
|
+
_a[OpCode_1.OpCode.sound_cleareffects] = {},
|
|
230
|
+
_a[OpCode_1.OpCode.sound_changevolumeby] = {
|
|
231
|
+
VOLUME: { type: "number", initial: -10 }
|
|
232
|
+
},
|
|
233
|
+
_a[OpCode_1.OpCode.sound_setvolumeto] = {
|
|
234
|
+
VOLUME: { type: "number", initial: 100 }
|
|
235
|
+
},
|
|
236
|
+
_a[OpCode_1.OpCode.sound_volume] = {},
|
|
237
|
+
// Events
|
|
238
|
+
_a[OpCode_1.OpCode.event_whenflagclicked] = {},
|
|
239
|
+
_a[OpCode_1.OpCode.event_whenkeypressed] = {
|
|
240
|
+
KEY_OPTION: { type: "key", initial: "space" }
|
|
241
|
+
},
|
|
242
|
+
_a[OpCode_1.OpCode.event_whenthisspriteclicked] = {},
|
|
243
|
+
_a[OpCode_1.OpCode.event_whenstageclicked] = {},
|
|
244
|
+
_a[OpCode_1.OpCode.event_whenbackdropswitchesto] = {
|
|
245
|
+
BACKDROP: { type: "backdrop", initial: "backdrop1" }
|
|
246
|
+
},
|
|
247
|
+
_a[OpCode_1.OpCode.event_whengreaterthan] = {
|
|
248
|
+
WHENGREATERTHANMENU: { type: "greaterThanMenu", initial: "LOUDNESS" },
|
|
249
|
+
VALUE: { type: "number", initial: 10 }
|
|
250
|
+
},
|
|
251
|
+
_a[OpCode_1.OpCode.event_whenbroadcastreceived] = {
|
|
252
|
+
BROADCAST_OPTION: { type: "broadcast", initial: "message1" }
|
|
253
|
+
},
|
|
254
|
+
_a[OpCode_1.OpCode.event_broadcast] = {
|
|
255
|
+
BROADCAST_INPUT: { type: "broadcast", initial: "message1" }
|
|
256
|
+
},
|
|
257
|
+
_a[OpCode_1.OpCode.event_broadcastandwait] = {
|
|
258
|
+
BROADCAST_INPUT: { type: "broadcast", initial: "message1" }
|
|
259
|
+
},
|
|
260
|
+
// Control
|
|
261
|
+
_a[OpCode_1.OpCode.control_wait] = {
|
|
262
|
+
DURATION: { type: "number", initial: 1 }
|
|
263
|
+
},
|
|
264
|
+
_a[OpCode_1.OpCode.control_repeat] = {
|
|
265
|
+
TIMES: { type: "number", initial: 10 },
|
|
266
|
+
SUBSTACK: { type: "blocks", initial: null }
|
|
267
|
+
},
|
|
268
|
+
_a[OpCode_1.OpCode.control_forever] = {
|
|
269
|
+
SUBSTACK: { type: "blocks", initial: null }
|
|
270
|
+
},
|
|
271
|
+
_a[OpCode_1.OpCode.control_if] = {
|
|
272
|
+
CONDITION: { type: "boolean", initial: false },
|
|
273
|
+
SUBSTACK: { type: "blocks", initial: null }
|
|
274
|
+
},
|
|
275
|
+
_a[OpCode_1.OpCode.control_if_else] = {
|
|
276
|
+
CONDITION: { type: "boolean", initial: false },
|
|
277
|
+
SUBSTACK: { type: "blocks", initial: null },
|
|
278
|
+
SUBSTACK2: { type: "blocks", initial: null }
|
|
279
|
+
},
|
|
280
|
+
_a[OpCode_1.OpCode.control_wait_until] = {
|
|
281
|
+
CONDITION: { type: "boolean", initial: false }
|
|
282
|
+
},
|
|
283
|
+
_a[OpCode_1.OpCode.control_repeat_until] = {
|
|
284
|
+
CONDITION: { type: "boolean", initial: false },
|
|
285
|
+
SUBSTACK: { type: "blocks", initial: null }
|
|
286
|
+
},
|
|
287
|
+
_a[OpCode_1.OpCode.control_stop] = {
|
|
288
|
+
STOP_OPTION: { type: "stopMenu", initial: "all" }
|
|
289
|
+
},
|
|
290
|
+
_a[OpCode_1.OpCode.control_start_as_clone] = {},
|
|
291
|
+
_a[OpCode_1.OpCode.control_create_clone_of] = {
|
|
292
|
+
CLONE_OPTION: { type: "cloneTarget", initial: "_myself_" }
|
|
293
|
+
},
|
|
294
|
+
_a[OpCode_1.OpCode.control_delete_this_clone] = {},
|
|
295
|
+
_a[OpCode_1.OpCode.control_all_at_once] = {
|
|
296
|
+
SUBSTACK: { type: "blocks", initial: null }
|
|
297
|
+
},
|
|
298
|
+
_a[OpCode_1.OpCode.control_for_each] = {
|
|
299
|
+
VARIABLE: { type: "variable", initial: { id: "i", name: "i" } },
|
|
300
|
+
VALUE: { type: "number", initial: 10 },
|
|
301
|
+
SUBSTACK: { type: "blocks", initial: null }
|
|
302
|
+
},
|
|
303
|
+
_a[OpCode_1.OpCode.control_while] = {
|
|
304
|
+
CONDITION: { type: "boolean", initial: false },
|
|
305
|
+
SUBSTACK: { type: "blocks", initial: null }
|
|
306
|
+
},
|
|
307
|
+
// Sensing
|
|
308
|
+
_a[OpCode_1.OpCode.sensing_touchingobject] = {
|
|
309
|
+
TOUCHINGOBJECTMENU: { type: "touchingTarget", initial: "_mouse_" }
|
|
310
|
+
},
|
|
311
|
+
_a[OpCode_1.OpCode.sensing_touchingcolor] = {
|
|
312
|
+
COLOR: { type: "color", initial: { r: 0x99, g: 0x66, b: 0xff } }
|
|
313
|
+
},
|
|
314
|
+
_a[OpCode_1.OpCode.sensing_coloristouchingcolor] = {
|
|
315
|
+
COLOR: { type: "color", initial: { r: 0x99, g: 0x66, b: 0xff } },
|
|
316
|
+
COLOR2: { type: "color", initial: { r: 0xff, g: 0xab, b: 0x19 } }
|
|
317
|
+
},
|
|
318
|
+
_a[OpCode_1.OpCode.sensing_distanceto] = {
|
|
319
|
+
DISTANCETOMENU: { type: "distanceToMenu", initial: "_mouse_" }
|
|
320
|
+
},
|
|
321
|
+
_a[OpCode_1.OpCode.sensing_askandwait] = {
|
|
322
|
+
QUESTION: { type: "string", initial: "What's your name?" }
|
|
323
|
+
},
|
|
324
|
+
_a[OpCode_1.OpCode.sensing_answer] = {},
|
|
325
|
+
_a[OpCode_1.OpCode.sensing_keypressed] = {
|
|
326
|
+
KEY_OPTION: { type: "key", initial: "space" }
|
|
327
|
+
},
|
|
328
|
+
_a[OpCode_1.OpCode.sensing_mousedown] = {},
|
|
329
|
+
_a[OpCode_1.OpCode.sensing_mousex] = {},
|
|
330
|
+
_a[OpCode_1.OpCode.sensing_mousey] = {},
|
|
331
|
+
_a[OpCode_1.OpCode.sensing_setdragmode] = {
|
|
332
|
+
DRAG_MODE: { type: "dragModeMenu", initial: "draggable" }
|
|
333
|
+
},
|
|
334
|
+
_a[OpCode_1.OpCode.sensing_loudness] = {},
|
|
335
|
+
_a[OpCode_1.OpCode.sensing_loud] = {},
|
|
336
|
+
_a[OpCode_1.OpCode.sensing_timer] = {},
|
|
337
|
+
_a[OpCode_1.OpCode.sensing_resettimer] = {},
|
|
338
|
+
_a[OpCode_1.OpCode.sensing_of] = {
|
|
339
|
+
PROPERTY: { type: "propertyOfMenu", initial: "backdrop #" },
|
|
340
|
+
OBJECT: { type: "target", initial: "_stage_" }
|
|
341
|
+
},
|
|
342
|
+
_a[OpCode_1.OpCode.sensing_current] = {
|
|
343
|
+
CURRENTMENU: { type: "currentMenu", initial: "YEAR" }
|
|
344
|
+
},
|
|
345
|
+
_a[OpCode_1.OpCode.sensing_dayssince2000] = {},
|
|
346
|
+
_a[OpCode_1.OpCode.sensing_username] = {},
|
|
347
|
+
_a[OpCode_1.OpCode.sensing_userid] = {},
|
|
348
|
+
// Operators
|
|
349
|
+
_a[OpCode_1.OpCode.operator_add] = {
|
|
350
|
+
NUM1: { type: "number", initial: "" },
|
|
351
|
+
NUM2: { type: "number", initial: "" }
|
|
352
|
+
},
|
|
353
|
+
_a[OpCode_1.OpCode.operator_subtract] = {
|
|
354
|
+
NUM1: { type: "number", initial: "" },
|
|
355
|
+
NUM2: { type: "number", initial: "" }
|
|
356
|
+
},
|
|
357
|
+
_a[OpCode_1.OpCode.operator_multiply] = {
|
|
358
|
+
NUM1: { type: "number", initial: "" },
|
|
359
|
+
NUM2: { type: "number", initial: "" }
|
|
360
|
+
},
|
|
361
|
+
_a[OpCode_1.OpCode.operator_divide] = {
|
|
362
|
+
NUM1: { type: "number", initial: "" },
|
|
363
|
+
NUM2: { type: "number", initial: "" }
|
|
364
|
+
},
|
|
365
|
+
_a[OpCode_1.OpCode.operator_random] = {
|
|
366
|
+
FROM: { type: "number", initial: 1 },
|
|
367
|
+
TO: { type: "number", initial: 10 }
|
|
368
|
+
},
|
|
369
|
+
_a[OpCode_1.OpCode.operator_gt] = {
|
|
370
|
+
OPERAND1: { type: "number", initial: "" },
|
|
371
|
+
OPERAND2: { type: "number", initial: 50 }
|
|
372
|
+
},
|
|
373
|
+
_a[OpCode_1.OpCode.operator_lt] = {
|
|
374
|
+
OPERAND1: { type: "number", initial: "" },
|
|
375
|
+
OPERAND2: { type: "number", initial: 50 }
|
|
376
|
+
},
|
|
377
|
+
_a[OpCode_1.OpCode.operator_equals] = {
|
|
378
|
+
OPERAND1: { type: "number", initial: "" },
|
|
379
|
+
OPERAND2: { type: "number", initial: 50 }
|
|
380
|
+
},
|
|
381
|
+
_a[OpCode_1.OpCode.operator_and] = {
|
|
382
|
+
OPERAND1: { type: "boolean", initial: false },
|
|
383
|
+
OPERAND2: { type: "boolean", initial: false }
|
|
384
|
+
},
|
|
385
|
+
_a[OpCode_1.OpCode.operator_or] = {
|
|
386
|
+
OPERAND1: { type: "boolean", initial: false },
|
|
387
|
+
OPERAND2: { type: "boolean", initial: false }
|
|
388
|
+
},
|
|
389
|
+
_a[OpCode_1.OpCode.operator_not] = {
|
|
390
|
+
OPERAND: { type: "boolean", initial: false }
|
|
391
|
+
},
|
|
392
|
+
_a[OpCode_1.OpCode.operator_join] = {
|
|
393
|
+
STRING1: { type: "string", initial: "apple " },
|
|
394
|
+
STRING2: { type: "string", initial: "banana" }
|
|
395
|
+
},
|
|
396
|
+
_a[OpCode_1.OpCode.operator_letter_of] = {
|
|
397
|
+
LETTER: { type: "number", initial: 1 },
|
|
398
|
+
STRING: { type: "string", initial: "apple" }
|
|
399
|
+
},
|
|
400
|
+
_a[OpCode_1.OpCode.operator_length] = {
|
|
401
|
+
STRING: { type: "string", initial: "apple" }
|
|
402
|
+
},
|
|
403
|
+
_a[OpCode_1.OpCode.operator_contains] = {
|
|
404
|
+
STRING1: { type: "string", initial: "apple" },
|
|
405
|
+
STRING2: { type: "string", initial: "a" }
|
|
406
|
+
},
|
|
407
|
+
_a[OpCode_1.OpCode.operator_mod] = {
|
|
408
|
+
NUM1: { type: "number", initial: "" },
|
|
409
|
+
NUM2: { type: "number", initial: "" }
|
|
410
|
+
},
|
|
411
|
+
_a[OpCode_1.OpCode.operator_round] = {
|
|
412
|
+
NUM: { type: "number", initial: "" }
|
|
413
|
+
},
|
|
414
|
+
_a[OpCode_1.OpCode.operator_mathop] = {
|
|
415
|
+
OPERATOR: { type: "mathopMenu", initial: "abs" },
|
|
416
|
+
NUM: { type: "number", initial: "" }
|
|
417
|
+
},
|
|
418
|
+
// Data
|
|
419
|
+
_a[OpCode_1.OpCode.data_variable] = {
|
|
420
|
+
VARIABLE: { type: "variable", initial: { id: "NONEXISTENT_ID", name: "my variable" } }
|
|
421
|
+
},
|
|
422
|
+
_a[OpCode_1.OpCode.data_setvariableto] = {
|
|
423
|
+
VARIABLE: { type: "variable", initial: { id: "NONEXISTENT_ID", name: "my variable" } },
|
|
424
|
+
VALUE: { type: "string", initial: "0" }
|
|
425
|
+
},
|
|
426
|
+
_a[OpCode_1.OpCode.data_changevariableby] = {
|
|
427
|
+
VARIABLE: { type: "variable", initial: { id: "NONEXISTENT_ID", name: "my variable" } },
|
|
428
|
+
VALUE: { type: "number", initial: 1 }
|
|
429
|
+
},
|
|
430
|
+
_a[OpCode_1.OpCode.data_showvariable] = {
|
|
431
|
+
VARIABLE: { type: "variable", initial: { id: "NONEXISTENT_ID", name: "my variable" } }
|
|
432
|
+
},
|
|
433
|
+
_a[OpCode_1.OpCode.data_hidevariable] = {
|
|
434
|
+
VARIABLE: { type: "variable", initial: { id: "NONEXISTENT_ID", name: "my variable" } }
|
|
435
|
+
},
|
|
436
|
+
_a[OpCode_1.OpCode.data_listcontents] = {
|
|
437
|
+
LIST: { type: "list", initial: { id: "NONEXISTENT_ID", name: "my list" } }
|
|
438
|
+
},
|
|
439
|
+
_a[OpCode_1.OpCode.data_addtolist] = {
|
|
440
|
+
ITEM: { type: "string", initial: "thing" },
|
|
441
|
+
LIST: { type: "list", initial: { id: "NONEXISTENT_ID", name: "my list" } }
|
|
442
|
+
},
|
|
443
|
+
_a[OpCode_1.OpCode.data_deleteoflist] = {
|
|
444
|
+
INDEX: { type: "number", initial: 1 },
|
|
445
|
+
LIST: { type: "list", initial: { id: "NONEXISTENT_ID", name: "my list" } }
|
|
446
|
+
},
|
|
447
|
+
_a[OpCode_1.OpCode.data_deletealloflist] = {
|
|
448
|
+
LIST: { type: "list", initial: { id: "NONEXISTENT_ID", name: "my list" } }
|
|
449
|
+
},
|
|
450
|
+
_a[OpCode_1.OpCode.data_insertatlist] = {
|
|
451
|
+
ITEM: { type: "string", initial: "thing" },
|
|
452
|
+
INDEX: { type: "number", initial: 1 },
|
|
453
|
+
LIST: { type: "list", initial: { id: "NONEXISTENT_ID", name: "my list" } }
|
|
454
|
+
},
|
|
455
|
+
_a[OpCode_1.OpCode.data_replaceitemoflist] = {
|
|
456
|
+
INDEX: { type: "number", initial: 1 },
|
|
457
|
+
LIST: { type: "list", initial: { id: "NONEXISTENT_ID", name: "my list" } },
|
|
458
|
+
ITEM: { type: "string", initial: "thing" }
|
|
459
|
+
},
|
|
460
|
+
_a[OpCode_1.OpCode.data_itemoflist] = {
|
|
461
|
+
INDEX: { type: "number", initial: 1 },
|
|
462
|
+
LIST: { type: "list", initial: { id: "NONEXISTENT_ID", name: "my list" } }
|
|
463
|
+
},
|
|
464
|
+
_a[OpCode_1.OpCode.data_itemnumoflist] = {
|
|
465
|
+
ITEM: { type: "string", initial: "thing" },
|
|
466
|
+
LIST: { type: "list", initial: { id: "NONEXISTENT_ID", name: "my list" } }
|
|
467
|
+
},
|
|
468
|
+
_a[OpCode_1.OpCode.data_lengthoflist] = {
|
|
469
|
+
LIST: { type: "list", initial: { id: "NONEXISTENT_ID", name: "my list" } }
|
|
470
|
+
},
|
|
471
|
+
_a[OpCode_1.OpCode.data_listcontainsitem] = {
|
|
472
|
+
LIST: { type: "list", initial: { id: "NONEXISTENT_ID", name: "my list" } },
|
|
473
|
+
ITEM: { type: "string", initial: "thing" }
|
|
474
|
+
},
|
|
475
|
+
_a[OpCode_1.OpCode.data_showlist] = {
|
|
476
|
+
LIST: { type: "list", initial: { id: "NONEXISTENT_ID", name: "my list" } }
|
|
477
|
+
},
|
|
478
|
+
_a[OpCode_1.OpCode.data_hidelist] = {
|
|
479
|
+
LIST: { type: "list", initial: { id: "NONEXISTENT_ID", name: "my list" } }
|
|
480
|
+
},
|
|
481
|
+
// Custom Blocks
|
|
482
|
+
_a[OpCode_1.OpCode.procedures_definition] = {
|
|
483
|
+
PROCCODE: { type: "string", initial: "hello" },
|
|
484
|
+
ARGUMENTS: {
|
|
485
|
+
type: "customBlockArguments",
|
|
486
|
+
initial: [
|
|
487
|
+
{ type: "label", name: "hello" },
|
|
488
|
+
{ type: "numberOrString", name: "who", defaultValue: "me" },
|
|
489
|
+
{ type: "boolean", name: "casually", defaultValue: false }
|
|
490
|
+
]
|
|
491
|
+
},
|
|
492
|
+
WARP: { type: "boolean", initial: false }
|
|
493
|
+
},
|
|
494
|
+
_a[OpCode_1.OpCode.procedures_call] = {
|
|
495
|
+
PROCCODE: { type: "string", initial: "hello" },
|
|
496
|
+
INPUTS: {
|
|
497
|
+
type: "customBlockInputValues",
|
|
498
|
+
initial: [
|
|
499
|
+
{ type: "string", value: "world" },
|
|
500
|
+
{ type: "boolean", value: true }
|
|
501
|
+
]
|
|
502
|
+
}
|
|
503
|
+
},
|
|
504
|
+
_a[OpCode_1.OpCode.argument_reporter_string_number] = {
|
|
505
|
+
VALUE: { type: "string", initial: "who" }
|
|
506
|
+
},
|
|
507
|
+
_a[OpCode_1.OpCode.argument_reporter_boolean] = {
|
|
508
|
+
VALUE: { type: "string", initial: "casually" }
|
|
509
|
+
},
|
|
510
|
+
// Extension: Music
|
|
511
|
+
_a[OpCode_1.OpCode.music_playDrumForBeats] = {
|
|
512
|
+
DRUM: { type: "musicDrum", initial: "1" },
|
|
513
|
+
BEATS: { type: "number", initial: 0.25 }
|
|
514
|
+
},
|
|
515
|
+
_a[OpCode_1.OpCode.music_restForBeats] = {
|
|
516
|
+
BEATS: { type: "number", initial: 0.25 }
|
|
517
|
+
},
|
|
518
|
+
_a[OpCode_1.OpCode.music_playNoteForBeats] = {
|
|
519
|
+
NOTE: { type: "number", initial: 60 },
|
|
520
|
+
BEATS: { type: "number", initial: 0.25 }
|
|
521
|
+
},
|
|
522
|
+
_a[OpCode_1.OpCode.music_setInstrument] = {
|
|
523
|
+
INSTRUMENT: { type: "musicInstrument", initial: "1" }
|
|
524
|
+
},
|
|
525
|
+
_a[OpCode_1.OpCode.music_setTempo] = {
|
|
526
|
+
TEMPO: { type: "number", initial: 60 }
|
|
527
|
+
},
|
|
528
|
+
_a[OpCode_1.OpCode.music_changeTempo] = {
|
|
529
|
+
TEMPO: { type: "number", initial: 20 }
|
|
530
|
+
},
|
|
531
|
+
_a[OpCode_1.OpCode.music_getTempo] = {},
|
|
532
|
+
// Deprecated:
|
|
533
|
+
_a[OpCode_1.OpCode.music_midiPlayDrumForBeats] = {
|
|
534
|
+
DRUM: { type: "number", initial: 1 },
|
|
535
|
+
BEATS: { type: "number", initial: 0.25 }
|
|
536
|
+
},
|
|
537
|
+
_a[OpCode_1.OpCode.music_midiSetInstrument] = {
|
|
538
|
+
INSTRUMENT: { type: "number", initial: 1 }
|
|
539
|
+
},
|
|
540
|
+
// Extension: Pen
|
|
541
|
+
_a[OpCode_1.OpCode.pen_clear] = {},
|
|
542
|
+
_a[OpCode_1.OpCode.pen_stamp] = {},
|
|
543
|
+
_a[OpCode_1.OpCode.pen_penDown] = {},
|
|
544
|
+
_a[OpCode_1.OpCode.pen_penUp] = {},
|
|
545
|
+
_a[OpCode_1.OpCode.pen_setPenColorToColor] = {
|
|
546
|
+
COLOR: { type: "color", initial: { r: 0x99, g: 0x66, b: 0xff } }
|
|
547
|
+
},
|
|
548
|
+
_a[OpCode_1.OpCode.pen_changePenColorParamBy] = {
|
|
549
|
+
COLOR_PARAM: { type: "penColorParam", initial: "color" },
|
|
550
|
+
VALUE: { type: "number", initial: 10 }
|
|
551
|
+
},
|
|
552
|
+
_a[OpCode_1.OpCode.pen_setPenColorParamTo] = {
|
|
553
|
+
COLOR_PARAM: { type: "penColorParam", initial: "color" },
|
|
554
|
+
VALUE: { type: "number", initial: 50 }
|
|
555
|
+
},
|
|
556
|
+
_a[OpCode_1.OpCode.pen_changePenSizeBy] = {
|
|
557
|
+
SIZE: { type: "number", initial: 1 }
|
|
558
|
+
},
|
|
559
|
+
_a[OpCode_1.OpCode.pen_setPenSizeTo] = {
|
|
560
|
+
SIZE: { type: "number", initial: 1 }
|
|
561
|
+
},
|
|
562
|
+
// Deprecated:
|
|
563
|
+
_a[OpCode_1.OpCode.pen_setPenShadeToNumber] = {
|
|
564
|
+
SHADE: { type: "number", initial: 50 }
|
|
565
|
+
},
|
|
566
|
+
_a[OpCode_1.OpCode.pen_changePenShadeBy] = {
|
|
567
|
+
SHADE: { type: "number", initial: 10 }
|
|
568
|
+
},
|
|
569
|
+
_a[OpCode_1.OpCode.pen_setPenHueToNumber] = {
|
|
570
|
+
HUE: { type: "number", initial: 0 }
|
|
571
|
+
},
|
|
572
|
+
_a[OpCode_1.OpCode.pen_changePenHueBy] = {
|
|
573
|
+
HUE: { type: "number", initial: 10 }
|
|
574
|
+
},
|
|
575
|
+
// Extension: WeDo 2.0
|
|
576
|
+
_a[OpCode_1.OpCode.wedo2_motorOnFor] = {
|
|
577
|
+
MOTOR_ID: { type: "wedo2MotorId", initial: "motor" },
|
|
578
|
+
DURATION: { type: "number", initial: 1 }
|
|
579
|
+
},
|
|
580
|
+
_a[OpCode_1.OpCode.wedo2_motorOn] = {
|
|
581
|
+
MOTOR_ID: { type: "wedo2MotorId", initial: "motor" }
|
|
582
|
+
},
|
|
583
|
+
_a[OpCode_1.OpCode.wedo2_motorOff] = {
|
|
584
|
+
MOTOR_ID: { type: "wedo2MotorId", initial: "motor" }
|
|
585
|
+
},
|
|
586
|
+
_a[OpCode_1.OpCode.wedo2_startMotorPower] = {
|
|
587
|
+
MOTOR_ID: { type: "wedo2MotorId", initial: "motor" },
|
|
588
|
+
POWER: { type: "number", initial: 100 }
|
|
589
|
+
},
|
|
590
|
+
_a[OpCode_1.OpCode.wedo2_setMotorDirection] = {
|
|
591
|
+
MOTOR_ID: { type: "wedo2MotorId", initial: "motor" },
|
|
592
|
+
MOTOR_DIRECTION: { type: "wedo2MotorDirection", initial: "this way" }
|
|
593
|
+
},
|
|
594
|
+
_a[OpCode_1.OpCode.wedo2_setLightHue] = {
|
|
595
|
+
HUE: { type: "number", initial: 50 }
|
|
596
|
+
},
|
|
597
|
+
_a[OpCode_1.OpCode.wedo2_whenDistance] = {
|
|
598
|
+
OP: { type: "wedo2Op", initial: "<" },
|
|
599
|
+
REFERENCE: { type: "number", initial: 50 }
|
|
600
|
+
},
|
|
601
|
+
_a[OpCode_1.OpCode.wedo2_whenTilted] = {
|
|
602
|
+
TILT_DIRECTION_ANY: { type: "wedo2TiltDirectionAny", initial: "any" }
|
|
603
|
+
},
|
|
604
|
+
_a[OpCode_1.OpCode.wedo2_getDistance] = {},
|
|
605
|
+
_a[OpCode_1.OpCode.wedo2_isTilted] = {
|
|
606
|
+
TILT_DIRECTION_ANY: { type: "wedo2TiltDirectionAny", initial: "any" }
|
|
607
|
+
},
|
|
608
|
+
_a[OpCode_1.OpCode.wedo2_getTiltAngle] = {
|
|
609
|
+
TILT_DIRECTION: { type: "wedo2TiltDirection", initial: "up" }
|
|
610
|
+
},
|
|
611
|
+
// Deprecated:
|
|
612
|
+
_a[OpCode_1.OpCode.wedo2_playNoteFor] = {
|
|
613
|
+
NOTE: { type: "number", initial: 60 },
|
|
614
|
+
DURATION: { type: "number", initial: 0.5 }
|
|
615
|
+
},
|
|
616
|
+
// Extension: Video Sensing
|
|
617
|
+
_a[OpCode_1.OpCode.videoSensing_whenMotionGreaterThan] = {
|
|
618
|
+
REFERENCE: { type: "number", initial: 10 }
|
|
619
|
+
},
|
|
620
|
+
_a[OpCode_1.OpCode.videoSensing_videoOn] = {
|
|
621
|
+
ATTRIBUTE: { type: "videoSensingAttribute", initial: "motion" },
|
|
622
|
+
SUBJECT: { type: "videoSensingSubject", initial: "this sprite" }
|
|
623
|
+
},
|
|
624
|
+
_a[OpCode_1.OpCode.videoSensing_videoToggle] = {
|
|
625
|
+
VIDEO_STATE: { type: "videoSensingVideoState", initial: "on" }
|
|
626
|
+
},
|
|
627
|
+
_a[OpCode_1.OpCode.videoSensing_setVideoTransparency] = {
|
|
628
|
+
TRANSPARENCY: { type: "number", initial: 50 }
|
|
629
|
+
},
|
|
630
|
+
_a);
|
|
631
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmxvY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvQmxvY2sudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUNBLG1DQUFrQztBQUNsQyxnQ0FBdUM7QUFPdkM7SUFtQkUsbUJBQVksT0FRWDtRQVhNLFdBQU0sR0FBa0IsSUFBSSxDQUFDO1FBQzdCLFNBQUksR0FBa0IsSUFBSSxDQUFDO1FBV2hDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRTdCLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFFO1lBQ2YsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFBLGVBQVUsR0FBRSxDQUFDO1NBQ3hCO0lBQ0gsQ0FBQztJQWhDRCw2REFBNkQ7SUFDL0MseUJBQWUsR0FBN0IsVUFBOEIsTUFBNEIsRUFBRSxLQUFhO1FBQ3ZFLElBQUksQ0FBQyxDQUFDLE1BQU0sSUFBSSxrQkFBa0IsQ0FBQztZQUFFLE9BQU87UUFDNUMsT0FBTyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUF5RCxDQUFDLENBQUM7SUFDL0YsQ0FBQztJQUVhLHNCQUFZLEdBQTFCLFVBQTJCLE1BQWM7UUFDdkMsT0FBTyxNQUFNLElBQUksa0JBQWtCLENBQUM7SUFDdEMsQ0FBQztJQTBCRCx3Q0FBd0M7SUFDakMsbUNBQWUsR0FBdEIsVUFBdUIsS0FBYTtRQUNsQyxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsRUFBRTtZQUN2QixPQUFPLFNBQVMsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztTQUN0RDtJQUNILENBQUM7SUFFTSxnQ0FBWSxHQUFuQjtRQUNFLE9BQU8sU0FBUyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELHNCQUFJLDZCQUFNO2FBQVY7WUFDRTtnQkFDRSxJQUFhO2VBQ1YsTUFBTSxDQUFD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
|