pxt-microbit 5.1.14 → 5.1.16
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/built/common-sim.d.ts +4 -0
- package/built/common-sim.js +187 -0
- package/built/sim.d.ts +2 -0
- package/built/sim.js +7 -0
- package/built/target.js +1 -1
- package/built/target.json +1 -1
- package/built/targetlight.json +1 -1
- package/built/web/react-common-authcode.css +1 -1
- package/built/web/react-common-multiplayer.css +1 -1
- package/built/web/react-common-skillmap.css +1 -1
- package/built/web/rtlreact-common-authcode.css +1 -1
- package/built/web/rtlreact-common-multiplayer.css +1 -1
- package/built/web/rtlreact-common-skillmap.css +1 -1
- package/built/web/rtlsemantic.css +1 -1
- package/built/web/semantic.css +1 -1
- package/docs/extensions.md +4 -0
- package/package.json +3 -3
- package/targetconfig.json +3 -0
package/built/common-sim.d.ts
CHANGED
|
@@ -1131,6 +1131,10 @@ declare namespace pxsim.ImageMethods {
|
|
|
1131
1131
|
function _drawIcon(img: RefImage, icon: RefBuffer, xy: number, color: number): void;
|
|
1132
1132
|
function fillCircle(img: RefImage, cx: number, cy: number, r: number, c: number): void;
|
|
1133
1133
|
function _fillCircle(img: RefImage, cxy: number, r: number, c: number): void;
|
|
1134
|
+
function fillTriangle(img: RefImage, x0: number, y0: number, x1: number, y1: number, x2: number, y2: number, c: number): void;
|
|
1135
|
+
function _fillTriangle(img: RefImage, args: RefCollection): void;
|
|
1136
|
+
function fillPolygon4(img: RefImage, x0: number, y0: number, x1: number, y1: number, x2: number, y2: number, x3: number, y3: number, c: number): void;
|
|
1137
|
+
function _fillPolygon4(img: RefImage, args: RefCollection): void;
|
|
1134
1138
|
function _blitRow(img: RefImage, xy: number, from: RefImage, xh: number): void;
|
|
1135
1139
|
function blitRow(img: RefImage, x: number, y: number, from: RefImage, fromX: number, fromH: number): void;
|
|
1136
1140
|
function _blit(img: RefImage, src: RefImage, args: RefCollection): boolean;
|
package/built/common-sim.js
CHANGED
|
@@ -4301,6 +4301,193 @@ var pxsim;
|
|
|
4301
4301
|
fillCircle(img, XX(cxy), YY(cxy), r, c);
|
|
4302
4302
|
}
|
|
4303
4303
|
ImageMethods._fillCircle = _fillCircle;
|
|
4304
|
+
function nextYRange_Low(x, line, yRange) {
|
|
4305
|
+
while (line.x === x && line.x <= line.x1 && line.x < line.W) {
|
|
4306
|
+
if (0 <= line.x) {
|
|
4307
|
+
if (line.y < yRange.min)
|
|
4308
|
+
yRange.min = line.y;
|
|
4309
|
+
if (line.y > yRange.max)
|
|
4310
|
+
yRange.max = line.y;
|
|
4311
|
+
}
|
|
4312
|
+
if (line.D > 0) {
|
|
4313
|
+
line.y += line.yi;
|
|
4314
|
+
line.D -= line.dx;
|
|
4315
|
+
}
|
|
4316
|
+
line.D += line.dy;
|
|
4317
|
+
++line.x;
|
|
4318
|
+
}
|
|
4319
|
+
}
|
|
4320
|
+
function nextYRange_HighUp(x, line, yRange) {
|
|
4321
|
+
while (line.x == x && line.y >= line.y1 && line.x < line.W) {
|
|
4322
|
+
if (0 <= line.x) {
|
|
4323
|
+
if (line.y < yRange.min)
|
|
4324
|
+
yRange.min = line.y;
|
|
4325
|
+
if (line.y > yRange.max)
|
|
4326
|
+
yRange.max = line.y;
|
|
4327
|
+
}
|
|
4328
|
+
if (line.D > 0) {
|
|
4329
|
+
line.x += line.xi;
|
|
4330
|
+
line.D += line.dy;
|
|
4331
|
+
}
|
|
4332
|
+
line.D += line.dx;
|
|
4333
|
+
--line.y;
|
|
4334
|
+
}
|
|
4335
|
+
}
|
|
4336
|
+
function nextYRange_HighDown(x, line, yRange) {
|
|
4337
|
+
while (line.x == x && line.y <= line.y1 && line.x < line.W) {
|
|
4338
|
+
if (0 <= line.x) {
|
|
4339
|
+
if (line.y < yRange.min)
|
|
4340
|
+
yRange.min = line.y;
|
|
4341
|
+
if (line.y > yRange.max)
|
|
4342
|
+
yRange.max = line.y;
|
|
4343
|
+
}
|
|
4344
|
+
if (line.D > 0) {
|
|
4345
|
+
line.x += line.xi;
|
|
4346
|
+
line.D -= line.dy;
|
|
4347
|
+
}
|
|
4348
|
+
line.D += line.dx;
|
|
4349
|
+
++line.y;
|
|
4350
|
+
}
|
|
4351
|
+
}
|
|
4352
|
+
function initYRangeGenerator(X0, Y0, X1, Y1) {
|
|
4353
|
+
const line = {
|
|
4354
|
+
x: X0,
|
|
4355
|
+
y: Y0,
|
|
4356
|
+
x0: X0,
|
|
4357
|
+
y0: Y0,
|
|
4358
|
+
x1: X1,
|
|
4359
|
+
y1: Y1,
|
|
4360
|
+
W: 0,
|
|
4361
|
+
H: 0,
|
|
4362
|
+
dx: X1 - X0,
|
|
4363
|
+
dy: Y1 - Y0,
|
|
4364
|
+
yi: 0,
|
|
4365
|
+
xi: 0,
|
|
4366
|
+
D: 0,
|
|
4367
|
+
nextFuncIndex: 0,
|
|
4368
|
+
};
|
|
4369
|
+
if ((line.dy < 0 ? -line.dy : line.dy) < line.dx) {
|
|
4370
|
+
line.yi = 1;
|
|
4371
|
+
if (line.dy < 0) {
|
|
4372
|
+
line.yi = -1;
|
|
4373
|
+
line.dy = -line.dy;
|
|
4374
|
+
}
|
|
4375
|
+
line.D = 2 * line.dy - line.dx;
|
|
4376
|
+
line.dx = line.dx << 1;
|
|
4377
|
+
line.dy = line.dy << 1;
|
|
4378
|
+
line.nextFuncIndex = 0;
|
|
4379
|
+
return line;
|
|
4380
|
+
}
|
|
4381
|
+
else {
|
|
4382
|
+
line.xi = 1;
|
|
4383
|
+
if (line.dy < 0) {
|
|
4384
|
+
line.D = 2 * line.dx + line.dy;
|
|
4385
|
+
line.dx = line.dx << 1;
|
|
4386
|
+
line.dy = line.dy << 1;
|
|
4387
|
+
line.nextFuncIndex = 1;
|
|
4388
|
+
return line;
|
|
4389
|
+
}
|
|
4390
|
+
else {
|
|
4391
|
+
line.D = 2 * line.dx - line.dy;
|
|
4392
|
+
line.dx = line.dx << 1;
|
|
4393
|
+
line.dy = line.dy << 1;
|
|
4394
|
+
line.nextFuncIndex = 2;
|
|
4395
|
+
return line;
|
|
4396
|
+
}
|
|
4397
|
+
}
|
|
4398
|
+
}
|
|
4399
|
+
function fillTriangle(img, x0, y0, x1, y1, x2, y2, c) {
|
|
4400
|
+
if (x1 < x0) {
|
|
4401
|
+
[x1, x0] = [x0, x1];
|
|
4402
|
+
[y1, y0] = [y0, y1];
|
|
4403
|
+
}
|
|
4404
|
+
if (x2 < x1) {
|
|
4405
|
+
[x2, x1] = [x1, x2];
|
|
4406
|
+
[y2, y1] = [y1, y2];
|
|
4407
|
+
}
|
|
4408
|
+
if (x1 < x0) {
|
|
4409
|
+
[x1, x0] = [x0, x1];
|
|
4410
|
+
[y1, y0] = [y0, y1];
|
|
4411
|
+
}
|
|
4412
|
+
const lines = [
|
|
4413
|
+
initYRangeGenerator(x0, y0, x2, y2),
|
|
4414
|
+
initYRangeGenerator(x0, y0, x1, y1),
|
|
4415
|
+
initYRangeGenerator(x1, y1, x2, y2)
|
|
4416
|
+
];
|
|
4417
|
+
lines[0].W = lines[1].W = lines[2].W = width(img);
|
|
4418
|
+
lines[0].H = lines[1].H = lines[2].H = height(img);
|
|
4419
|
+
const nextFuncList = [
|
|
4420
|
+
nextYRange_Low,
|
|
4421
|
+
nextYRange_HighUp,
|
|
4422
|
+
nextYRange_HighDown
|
|
4423
|
+
];
|
|
4424
|
+
const fpNext0 = nextFuncList[lines[0].nextFuncIndex];
|
|
4425
|
+
const fpNext1 = nextFuncList[lines[1].nextFuncIndex];
|
|
4426
|
+
const fpNext2 = nextFuncList[lines[2].nextFuncIndex];
|
|
4427
|
+
const yRange = {
|
|
4428
|
+
min: lines[0].H,
|
|
4429
|
+
max: -1
|
|
4430
|
+
};
|
|
4431
|
+
for (let x = lines[1].x0; x <= lines[1].x1; x++) {
|
|
4432
|
+
yRange.min = lines[0].H;
|
|
4433
|
+
yRange.max = -1;
|
|
4434
|
+
fpNext0(x, lines[0], yRange);
|
|
4435
|
+
fpNext1(x, lines[1], yRange);
|
|
4436
|
+
fillRect(img, x, yRange.min, 1, yRange.max - yRange.min + 1, c);
|
|
4437
|
+
}
|
|
4438
|
+
fpNext2(lines[2].x0, lines[2], yRange);
|
|
4439
|
+
for (let x = lines[2].x0 + 1; x <= lines[2].x1; x++) {
|
|
4440
|
+
yRange.min = lines[0].H;
|
|
4441
|
+
yRange.max = -1;
|
|
4442
|
+
fpNext0(x, lines[0], yRange);
|
|
4443
|
+
fpNext2(x, lines[2], yRange);
|
|
4444
|
+
fillRect(img, x, yRange.min, 1, yRange.max - yRange.min + 1, c);
|
|
4445
|
+
}
|
|
4446
|
+
}
|
|
4447
|
+
ImageMethods.fillTriangle = fillTriangle;
|
|
4448
|
+
function _fillTriangle(img, args) {
|
|
4449
|
+
fillTriangle(img, args.getAt(0) | 0, args.getAt(1) | 0, args.getAt(2) | 0, args.getAt(3) | 0, args.getAt(4) | 0, args.getAt(5) | 0, args.getAt(6) | 0);
|
|
4450
|
+
}
|
|
4451
|
+
ImageMethods._fillTriangle = _fillTriangle;
|
|
4452
|
+
function fillPolygon4(img, x0, y0, x1, y1, x2, y2, x3, y3, c) {
|
|
4453
|
+
const lines = [
|
|
4454
|
+
(x0 < x1) ? initYRangeGenerator(x0, y0, x1, y1) : initYRangeGenerator(x1, y1, x0, y0),
|
|
4455
|
+
(x1 < x2) ? initYRangeGenerator(x1, y1, x2, y2) : initYRangeGenerator(x2, y2, x1, y1),
|
|
4456
|
+
(x2 < x3) ? initYRangeGenerator(x2, y2, x3, y3) : initYRangeGenerator(x3, y3, x2, y2),
|
|
4457
|
+
(x0 < x3) ? initYRangeGenerator(x0, y0, x3, y3) : initYRangeGenerator(x3, y3, x0, y0)
|
|
4458
|
+
];
|
|
4459
|
+
lines[0].W = lines[1].W = lines[2].W = lines[3].W = width(img);
|
|
4460
|
+
lines[0].H = lines[1].H = lines[2].H = lines[3].H = height(img);
|
|
4461
|
+
let minX = Math.min(Math.min(x0, x1), Math.min(x2, x3));
|
|
4462
|
+
let maxX = Math.min(Math.max(Math.max(x0, x1), Math.max(x2, x3)), lines[0].W - 1);
|
|
4463
|
+
const nextFuncList = [
|
|
4464
|
+
nextYRange_Low,
|
|
4465
|
+
nextYRange_HighUp,
|
|
4466
|
+
nextYRange_HighDown
|
|
4467
|
+
];
|
|
4468
|
+
const fpNext0 = nextFuncList[lines[0].nextFuncIndex];
|
|
4469
|
+
const fpNext1 = nextFuncList[lines[1].nextFuncIndex];
|
|
4470
|
+
const fpNext2 = nextFuncList[lines[2].nextFuncIndex];
|
|
4471
|
+
const fpNext3 = nextFuncList[lines[3].nextFuncIndex];
|
|
4472
|
+
const yRange = {
|
|
4473
|
+
min: lines[0].H,
|
|
4474
|
+
max: -1
|
|
4475
|
+
};
|
|
4476
|
+
for (let x = minX; x <= maxX; x++) {
|
|
4477
|
+
yRange.min = lines[0].H;
|
|
4478
|
+
yRange.max = -1;
|
|
4479
|
+
fpNext0(x, lines[0], yRange);
|
|
4480
|
+
fpNext1(x, lines[1], yRange);
|
|
4481
|
+
fpNext2(x, lines[2], yRange);
|
|
4482
|
+
fpNext3(x, lines[3], yRange);
|
|
4483
|
+
fillRect(img, x, yRange.min, 1, yRange.max - yRange.min + 1, c);
|
|
4484
|
+
}
|
|
4485
|
+
}
|
|
4486
|
+
ImageMethods.fillPolygon4 = fillPolygon4;
|
|
4487
|
+
function _fillPolygon4(img, args) {
|
|
4488
|
+
fillPolygon4(img, args.getAt(0) | 0, args.getAt(1) | 0, args.getAt(2) | 0, args.getAt(3) | 0, args.getAt(4) | 0, args.getAt(5) | 0, args.getAt(6) | 0, args.getAt(7) | 0, args.getAt(8) | 0);
|
|
4489
|
+
}
|
|
4490
|
+
ImageMethods._fillPolygon4 = _fillPolygon4;
|
|
4304
4491
|
function _blitRow(img, xy, from, xh) {
|
|
4305
4492
|
blitRow(img, XX(xy), YY(xy), from, XX(xh), YY(xh));
|
|
4306
4493
|
}
|
package/built/sim.d.ts
CHANGED
|
@@ -570,6 +570,8 @@ declare namespace pxsim.record {
|
|
|
570
570
|
function audioIsPlaying(): boolean;
|
|
571
571
|
function audioIsRecording(): boolean;
|
|
572
572
|
function audioIsStopped(): boolean;
|
|
573
|
+
function setSampleRate(rate: number): void;
|
|
574
|
+
function getSampleRate(): number;
|
|
573
575
|
}
|
|
574
576
|
declare namespace pxsim {
|
|
575
577
|
class SerialState {
|
package/built/sim.js
CHANGED
|
@@ -2309,6 +2309,13 @@ var pxsim;
|
|
|
2309
2309
|
return false;
|
|
2310
2310
|
}
|
|
2311
2311
|
record_1.audioIsStopped = audioIsStopped;
|
|
2312
|
+
function setSampleRate(rate) {
|
|
2313
|
+
}
|
|
2314
|
+
record_1.setSampleRate = setSampleRate;
|
|
2315
|
+
function getSampleRate() {
|
|
2316
|
+
return 0;
|
|
2317
|
+
}
|
|
2318
|
+
record_1.getSampleRate = getSampleRate;
|
|
2312
2319
|
})(record = pxsim.record || (pxsim.record = {}));
|
|
2313
2320
|
})(pxsim || (pxsim = {}));
|
|
2314
2321
|
var pxsim;
|