pxt-arcade 1.11.21 → 1.11.22
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 +5 -0
- package/built/common-sim.js +28 -4
- package/built/sim.js +35 -6
- package/built/target.js +628 -315
- package/built/target.json +628 -315
- package/built/targetlight.json +5 -5
- package/docs/static/skillmap/assets/gallery.png +0 -0
- package/docs/static/skillmap/backgrounds/dino-comp.png +0 -0
- package/docs/static/skillmap/backgrounds/story-comp.png +0 -0
- package/docs/test/skillmap/balloon/balloon4.md +73 -50
- package/docs/test/skillmap/dino/collectort1.md +334 -0
- package/docs/test/skillmap/dino/collectort2.md +272 -0
- package/docs/test/skillmap/dino/collectort3.md +304 -0
- package/docs/test/skillmap/dino/collectort4.md +330 -0
- package/docs/test/skillmap/dino/collectort4old.md +433 -0
- package/docs/test/skillmap/dino/collectort5.md +499 -0
- package/docs/test/skillmap/dino/scroller.ts +54 -0
- package/docs/test/skillmap/mole/mole1.md +3 -3
- package/docs/test/skillmap/mole/mole2.md +8 -8
- package/docs/test/skillmap/mole/mole3.md +12 -12
- package/docs/test/skillmap/mole/mole4.md +5 -5
- package/docs/test/skillmap/star/star1.md +270 -0
- package/docs/test/skillmap/star/star2.md +262 -0
- package/docs/test/skillmap/star/star3.md +186 -0
- package/docs/test/skillmap/star/star4.md +162 -0
- package/docs/test/skillmap/star.md +86 -0
- package/docs/test/skillmap/story/joke-examples.md +41 -0
- package/docs/test/skillmap/story/story1.md +275 -0
- package/docs/test/skillmap/story/story2.md +289 -0
- package/docs/test/skillmap/story/story3.md +626 -0
- package/docs/test/skillmap/story/story4.md +1774 -0
- package/docs/test/skillmap/story.md +90 -0
- package/docs/test/tutorials/wakanda.md +417 -0
- package/package.json +4 -4
- package/targetconfig.json +2 -1
package/built/common-sim.d.ts
CHANGED
|
@@ -801,6 +801,11 @@ declare namespace pxsim {
|
|
|
801
801
|
button: number;
|
|
802
802
|
state: "Pressed" | "Released" | "Held";
|
|
803
803
|
}
|
|
804
|
+
interface MultiplayerAudioEvent extends SimulatorMultiplayerMessage {
|
|
805
|
+
content: "Audio";
|
|
806
|
+
instruction: "playinstructions" | "muteallchannels";
|
|
807
|
+
soundbuf?: Uint8Array;
|
|
808
|
+
}
|
|
804
809
|
class MultiplayerState {
|
|
805
810
|
lastMessageId: number;
|
|
806
811
|
origin: string;
|
package/built/common-sim.js
CHANGED
|
@@ -2541,15 +2541,15 @@ var pxsim;
|
|
|
2541
2541
|
pxsim.getMultiplayerState().send(msg);
|
|
2542
2542
|
}, 50, true);
|
|
2543
2543
|
function postImage(im) {
|
|
2544
|
-
var _a;
|
|
2545
2544
|
if (pxsim.getMultiplayerState().origin !== "server")
|
|
2546
2545
|
return;
|
|
2547
2546
|
const asBuf = pxsim.image.toBuffer(im);
|
|
2548
2547
|
const sb = pxsim.board();
|
|
2548
|
+
const screenState = sb && sb.screenState;
|
|
2549
2549
|
throttledImgPost({
|
|
2550
2550
|
content: "Image",
|
|
2551
2551
|
image: asBuf,
|
|
2552
|
-
palette:
|
|
2552
|
+
palette: screenState && screenState.paletteToUint8Array(),
|
|
2553
2553
|
});
|
|
2554
2554
|
}
|
|
2555
2555
|
multiplayer.postImage = postImage;
|
|
@@ -2582,6 +2582,18 @@ var pxsim;
|
|
|
2582
2582
|
init(origin) {
|
|
2583
2583
|
this.origin = origin;
|
|
2584
2584
|
pxsim.runtime.board.addMessageListener(msg => this.messageHandler(msg));
|
|
2585
|
+
if (this.origin === "server") {
|
|
2586
|
+
pxsim.AudioContextManager.soundEventCallback = (ev, data) => {
|
|
2587
|
+
this.send({
|
|
2588
|
+
content: "Audio",
|
|
2589
|
+
instruction: ev,
|
|
2590
|
+
soundbuf: data,
|
|
2591
|
+
});
|
|
2592
|
+
};
|
|
2593
|
+
}
|
|
2594
|
+
else {
|
|
2595
|
+
pxsim.AudioContextManager.soundEventCallback = undefined;
|
|
2596
|
+
}
|
|
2585
2597
|
}
|
|
2586
2598
|
setButton(key, isPressed) {
|
|
2587
2599
|
if (this.origin === "client") {
|
|
@@ -2593,7 +2605,6 @@ var pxsim;
|
|
|
2593
2605
|
}
|
|
2594
2606
|
}
|
|
2595
2607
|
messageHandler(msg) {
|
|
2596
|
-
var _a;
|
|
2597
2608
|
if (!isMultiplayerMessage(msg)) {
|
|
2598
2609
|
return;
|
|
2599
2610
|
}
|
|
@@ -2604,7 +2615,7 @@ var pxsim;
|
|
|
2604
2615
|
msg.image.data = new Uint8Array(msg.image.data);
|
|
2605
2616
|
}
|
|
2606
2617
|
this.backgroundImage = pxsim.image.ofBuffer(msg.image);
|
|
2607
|
-
if (
|
|
2618
|
+
if (msg.palette && msg.palette.length === 48) {
|
|
2608
2619
|
const palBuffer = new pxsim.RefBuffer(msg.palette);
|
|
2609
2620
|
pxsim.pxtcore.setPalette(palBuffer);
|
|
2610
2621
|
}
|
|
@@ -2616,6 +2627,16 @@ var pxsim;
|
|
|
2616
2627
|
msg.state === "Pressed" || msg.state === "Held");
|
|
2617
2628
|
}
|
|
2618
2629
|
}
|
|
2630
|
+
else if (isAudioMessage(msg)) {
|
|
2631
|
+
if (this.origin === "client") {
|
|
2632
|
+
if (msg.instruction === "playinstructions") {
|
|
2633
|
+
pxsim.AudioContextManager.playInstructionsAsync(msg.soundbuf);
|
|
2634
|
+
}
|
|
2635
|
+
else if (msg.instruction === "muteallchannels") {
|
|
2636
|
+
pxsim.AudioContextManager.muteAllChannels();
|
|
2637
|
+
}
|
|
2638
|
+
}
|
|
2639
|
+
}
|
|
2619
2640
|
}
|
|
2620
2641
|
}
|
|
2621
2642
|
pxsim.MultiplayerState = MultiplayerState;
|
|
@@ -2628,6 +2649,9 @@ var pxsim;
|
|
|
2628
2649
|
function isButtonMessage(msg) {
|
|
2629
2650
|
return msg && msg.content === "Button";
|
|
2630
2651
|
}
|
|
2652
|
+
function isAudioMessage(msg) {
|
|
2653
|
+
return msg && msg.content === "Audio";
|
|
2654
|
+
}
|
|
2631
2655
|
})(pxsim || (pxsim = {}));
|
|
2632
2656
|
var pxsim;
|
|
2633
2657
|
(function (pxsim) {
|
package/built/sim.js
CHANGED
|
@@ -500,8 +500,13 @@ var pxsim;
|
|
|
500
500
|
indicateFocus(document.hasFocus());
|
|
501
501
|
this.accelerometerState.attachEvents(document.body);
|
|
502
502
|
if (this.runOptions && this.runOptions.options) {
|
|
503
|
-
|
|
504
|
-
|
|
503
|
+
const mpRole = this.runOptions.options.mpRole;
|
|
504
|
+
if (mpRole) {
|
|
505
|
+
this.multiplayerState.init(mpRole);
|
|
506
|
+
if (mpRole === "client") {
|
|
507
|
+
const wrapper = document.getElementById("wrap");
|
|
508
|
+
wrapper && wrapper.classList.add("mp-client");
|
|
509
|
+
}
|
|
505
510
|
}
|
|
506
511
|
}
|
|
507
512
|
this.updateStats();
|
|
@@ -2750,15 +2755,15 @@ var pxsim;
|
|
|
2750
2755
|
pxsim.getMultiplayerState().send(msg);
|
|
2751
2756
|
}, 50, true);
|
|
2752
2757
|
function postImage(im) {
|
|
2753
|
-
var _a;
|
|
2754
2758
|
if (pxsim.getMultiplayerState().origin !== "server")
|
|
2755
2759
|
return;
|
|
2756
2760
|
const asBuf = pxsim.image.toBuffer(im);
|
|
2757
2761
|
const sb = pxsim.board();
|
|
2762
|
+
const screenState = sb && sb.screenState;
|
|
2758
2763
|
throttledImgPost({
|
|
2759
2764
|
content: "Image",
|
|
2760
2765
|
image: asBuf,
|
|
2761
|
-
palette:
|
|
2766
|
+
palette: screenState && screenState.paletteToUint8Array(),
|
|
2762
2767
|
});
|
|
2763
2768
|
}
|
|
2764
2769
|
multiplayer.postImage = postImage;
|
|
@@ -2791,6 +2796,18 @@ var pxsim;
|
|
|
2791
2796
|
init(origin) {
|
|
2792
2797
|
this.origin = origin;
|
|
2793
2798
|
pxsim.runtime.board.addMessageListener(msg => this.messageHandler(msg));
|
|
2799
|
+
if (this.origin === "server") {
|
|
2800
|
+
pxsim.AudioContextManager.soundEventCallback = (ev, data) => {
|
|
2801
|
+
this.send({
|
|
2802
|
+
content: "Audio",
|
|
2803
|
+
instruction: ev,
|
|
2804
|
+
soundbuf: data,
|
|
2805
|
+
});
|
|
2806
|
+
};
|
|
2807
|
+
}
|
|
2808
|
+
else {
|
|
2809
|
+
pxsim.AudioContextManager.soundEventCallback = undefined;
|
|
2810
|
+
}
|
|
2794
2811
|
}
|
|
2795
2812
|
setButton(key, isPressed) {
|
|
2796
2813
|
if (this.origin === "client") {
|
|
@@ -2802,7 +2819,6 @@ var pxsim;
|
|
|
2802
2819
|
}
|
|
2803
2820
|
}
|
|
2804
2821
|
messageHandler(msg) {
|
|
2805
|
-
var _a;
|
|
2806
2822
|
if (!isMultiplayerMessage(msg)) {
|
|
2807
2823
|
return;
|
|
2808
2824
|
}
|
|
@@ -2813,7 +2829,7 @@ var pxsim;
|
|
|
2813
2829
|
msg.image.data = new Uint8Array(msg.image.data);
|
|
2814
2830
|
}
|
|
2815
2831
|
this.backgroundImage = pxsim.image.ofBuffer(msg.image);
|
|
2816
|
-
if (
|
|
2832
|
+
if (msg.palette && msg.palette.length === 48) {
|
|
2817
2833
|
const palBuffer = new pxsim.RefBuffer(msg.palette);
|
|
2818
2834
|
pxsim.pxtcore.setPalette(palBuffer);
|
|
2819
2835
|
}
|
|
@@ -2825,6 +2841,16 @@ var pxsim;
|
|
|
2825
2841
|
msg.state === "Pressed" || msg.state === "Held");
|
|
2826
2842
|
}
|
|
2827
2843
|
}
|
|
2844
|
+
else if (isAudioMessage(msg)) {
|
|
2845
|
+
if (this.origin === "client") {
|
|
2846
|
+
if (msg.instruction === "playinstructions") {
|
|
2847
|
+
pxsim.AudioContextManager.playInstructionsAsync(msg.soundbuf);
|
|
2848
|
+
}
|
|
2849
|
+
else if (msg.instruction === "muteallchannels") {
|
|
2850
|
+
pxsim.AudioContextManager.muteAllChannels();
|
|
2851
|
+
}
|
|
2852
|
+
}
|
|
2853
|
+
}
|
|
2828
2854
|
}
|
|
2829
2855
|
}
|
|
2830
2856
|
pxsim.MultiplayerState = MultiplayerState;
|
|
@@ -2837,6 +2863,9 @@ var pxsim;
|
|
|
2837
2863
|
function isButtonMessage(msg) {
|
|
2838
2864
|
return msg && msg.content === "Button";
|
|
2839
2865
|
}
|
|
2866
|
+
function isAudioMessage(msg) {
|
|
2867
|
+
return msg && msg.content === "Audio";
|
|
2868
|
+
}
|
|
2840
2869
|
})(pxsim || (pxsim = {}));
|
|
2841
2870
|
var pxsim;
|
|
2842
2871
|
(function (pxsim) {
|