pxt-common-packages 10.2.4 → 10.2.5
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 -2
- package/built/common-sim.js +38 -19
- package/libs/azureiot/built/debug/binary.js +461 -461
- package/libs/color/built/debug/binary.js +8 -8
- package/libs/color-sensor/built/debug/binary.js +8 -8
- package/libs/controller/built/debug/binary.js +7386 -7294
- package/libs/controller---none/built/debug/binary.js +7365 -7273
- package/libs/datalogger/built/debug/binary.js +63 -63
- package/libs/edge-connector/built/debug/binary.js +8 -8
- package/libs/esp32/built/debug/binary.js +462 -462
- package/libs/game/built/debug/binary.js +7278 -7186
- package/libs/game/multiplayer.cpp +1 -4
- package/libs/game/multiplayer.ts +13 -0
- package/libs/game/scene.ts +2 -0
- package/libs/game/sim/multiplayer.ts +18 -17
- package/libs/lcd/built/debug/binary.js +8 -8
- package/libs/light-spectrum-sensor/built/debug/binary.js +8 -8
- package/libs/lora/built/debug/binary.js +8 -8
- package/libs/matrix-keypad/built/debug/binary.js +8 -8
- package/libs/mqtt/built/debug/binary.js +176 -176
- package/libs/net/built/debug/binary.js +176 -176
- package/libs/net-game/built/debug/binary.js +9066 -8974
- package/libs/palette/built/debug/binary.js +7277 -7185
- package/libs/pixel/built/debug/binary.js +8 -8
- package/libs/power/built/debug/binary.js +8 -8
- package/libs/proximity/built/debug/binary.js +8 -8
- package/libs/radio/built/debug/binary.js +8 -8
- package/libs/radio-broadcast/built/debug/binary.js +8 -8
- package/libs/rotary-encoder/built/debug/binary.js +8 -8
- package/libs/screen/built/debug/binary.js +50 -50
- package/libs/screen/sim/state.ts +27 -5
- package/libs/servo/built/debug/binary.js +8 -8
- package/libs/sprite-scaling/built/debug/binary.js +7277 -7185
- package/libs/storyboard/built/debug/binary.js +7277 -7185
- package/package.json +2 -2
|
@@ -2,18 +2,15 @@
|
|
|
2
2
|
|
|
3
3
|
namespace multiplayer {
|
|
4
4
|
//%
|
|
5
|
-
void postImage(Image_ im
|
|
6
|
-
// no support >:(
|
|
5
|
+
void postImage(Image_ im) {
|
|
7
6
|
}
|
|
8
7
|
|
|
9
8
|
//%
|
|
10
9
|
void setOrigin(String origin) {
|
|
11
|
-
// no
|
|
12
10
|
}
|
|
13
11
|
|
|
14
12
|
//%
|
|
15
13
|
Image_ getCurrentImage() {
|
|
16
|
-
// nah
|
|
17
14
|
return NULL;
|
|
18
15
|
}
|
|
19
16
|
|
package/libs/game/multiplayer.ts
CHANGED
|
@@ -2,6 +2,9 @@ namespace multiplayer {
|
|
|
2
2
|
//% shim=multiplayer::getCurrentImage
|
|
3
3
|
declare function getCurrentImage(): Image;
|
|
4
4
|
|
|
5
|
+
//% shim=multiplayer::postImage
|
|
6
|
+
declare function postImage(im: Image): void;
|
|
7
|
+
|
|
5
8
|
//% shim=multiplayer::setOrigin
|
|
6
9
|
declare function setOrigin(origin: string): void;
|
|
7
10
|
|
|
@@ -21,4 +24,14 @@ namespace multiplayer {
|
|
|
21
24
|
});
|
|
22
25
|
game.pushScene();
|
|
23
26
|
}
|
|
27
|
+
|
|
28
|
+
export function initServer() {
|
|
29
|
+
if (getOrigin() === "server") {
|
|
30
|
+
game.eventContext().registerFrameHandler(scene.MULTIPLAYER_POST_SCREEN_PRIORITY, () => {
|
|
31
|
+
if (getOrigin() === "server") {
|
|
32
|
+
postImage(screen);
|
|
33
|
+
}
|
|
34
|
+
})
|
|
35
|
+
}
|
|
36
|
+
}
|
|
24
37
|
}
|
package/libs/game/scene.ts
CHANGED
|
@@ -65,6 +65,7 @@ namespace scene {
|
|
|
65
65
|
export const RENDER_DIAGNOSTICS_PRIORITY = 150;
|
|
66
66
|
export const MULTIPLAYER_SCREEN_PRIORITY = 190;
|
|
67
67
|
export const UPDATE_SCREEN_PRIORITY = 200;
|
|
68
|
+
export const MULTIPLAYER_POST_SCREEN_PRIORITY = 210;
|
|
68
69
|
|
|
69
70
|
// default rendering z indices
|
|
70
71
|
export const ON_PAINT_Z = -20;
|
|
@@ -179,6 +180,7 @@ namespace scene {
|
|
|
179
180
|
});
|
|
180
181
|
// update screen
|
|
181
182
|
this.eventContext.registerFrameHandler(UPDATE_SCREEN_PRIORITY, control.__screen.update);
|
|
183
|
+
multiplayer.initServer();
|
|
182
184
|
// register additional components
|
|
183
185
|
Scene.initializers.forEach(f => f(this));
|
|
184
186
|
}
|
|
@@ -1,19 +1,28 @@
|
|
|
1
1
|
namespace pxsim.multiplayer {
|
|
2
|
-
|
|
2
|
+
const throttledImgPost = pxsim.U.throttle((msg: MultiplayerImageMessage) =>{
|
|
3
|
+
getMultiplayerState().send(msg);
|
|
4
|
+
}, 50, true);
|
|
5
|
+
|
|
6
|
+
export function postImage(im: pxsim.RefImage) {
|
|
7
|
+
if (getMultiplayerState().origin !== "server")
|
|
8
|
+
return;
|
|
3
9
|
const asBuf = pxsim.image.toBuffer(im);
|
|
4
|
-
|
|
10
|
+
const sb = board() as ScreenBoard;
|
|
11
|
+
throttledImgPost(<MultiplayerImageMessage>{
|
|
5
12
|
content: "Image",
|
|
6
13
|
image: asBuf,
|
|
7
|
-
|
|
14
|
+
palette: sb?.screenState?.paletteToUint8Array(),
|
|
8
15
|
});
|
|
9
16
|
}
|
|
10
17
|
|
|
18
|
+
|
|
11
19
|
export function getCurrentImage(): pxsim.RefImage {
|
|
12
20
|
return getMultiplayerState().backgroundImage;
|
|
13
21
|
}
|
|
14
22
|
|
|
15
23
|
export function setOrigin(origin: "client" | "server" | undefined) {
|
|
16
24
|
getMultiplayerState().origin = origin;
|
|
25
|
+
|
|
17
26
|
}
|
|
18
27
|
|
|
19
28
|
export function getOrigin(): string {
|
|
@@ -41,8 +50,9 @@ namespace pxsim {
|
|
|
41
50
|
|
|
42
51
|
export interface MultiplayerImageMessage extends SimulatorMultiplayerMessage {
|
|
43
52
|
content: "Image";
|
|
44
|
-
goal: string; // goal of message; e.g. "broadcast-screen"
|
|
45
53
|
image: RefBuffer;
|
|
54
|
+
// 48bytes, [r0,g0,b0,r1,g1,b1,...]
|
|
55
|
+
palette: Uint8Array;
|
|
46
56
|
}
|
|
47
57
|
|
|
48
58
|
export interface MultiplayerButtonEvent extends SimulatorMultiplayerMessage {
|
|
@@ -51,13 +61,11 @@ namespace pxsim {
|
|
|
51
61
|
state: "Pressed" | "Released" | "Held";
|
|
52
62
|
}
|
|
53
63
|
|
|
54
|
-
let postScreenInterval: any;
|
|
55
64
|
export class MultiplayerState {
|
|
56
65
|
lastMessageId: number;
|
|
57
66
|
origin: string;
|
|
58
67
|
backgroundImage: RefImage;
|
|
59
68
|
|
|
60
|
-
|
|
61
69
|
constructor() {
|
|
62
70
|
this.lastMessageId = 0;
|
|
63
71
|
}
|
|
@@ -76,17 +84,6 @@ namespace pxsim {
|
|
|
76
84
|
init(origin: string) {
|
|
77
85
|
this.origin = origin;
|
|
78
86
|
runtime.board.addMessageListener(msg => this.messageHandler(msg));
|
|
79
|
-
if (postScreenInterval) {
|
|
80
|
-
clearInterval(postScreenInterval)
|
|
81
|
-
}
|
|
82
|
-
postScreenInterval = setInterval(() => {
|
|
83
|
-
if (this.origin === "server") {
|
|
84
|
-
const b = board() as ScreenBoard;
|
|
85
|
-
const screenState = b && b.screenState;
|
|
86
|
-
const lastImage = screenState && screenState.lastImage;
|
|
87
|
-
lastImage && pxsim.multiplayer.postImage(lastImage, "broadcast-screen");
|
|
88
|
-
}
|
|
89
|
-
}, 50);
|
|
90
87
|
}
|
|
91
88
|
|
|
92
89
|
setButton(key: number, isPressed: boolean) {
|
|
@@ -111,6 +108,10 @@ namespace pxsim {
|
|
|
111
108
|
msg.image.data = new Uint8Array(msg.image.data);
|
|
112
109
|
}
|
|
113
110
|
this.backgroundImage = pxsim.image.ofBuffer(msg.image);
|
|
111
|
+
if (msg.palette?.length === 48) {
|
|
112
|
+
const palBuffer = new pxsim.RefBuffer(msg.palette)
|
|
113
|
+
pxsim.pxtcore.setPalette(palBuffer);
|
|
114
|
+
}
|
|
114
115
|
}
|
|
115
116
|
} else if (isButtonMessage(msg)) {
|
|
116
117
|
if (this.origin === "server") {
|
|
@@ -56,7 +56,7 @@ const pxsim_pxtrt = pxsim.pxtrt;
|
|
|
56
56
|
const pxsim_numops = pxsim.numops;
|
|
57
57
|
|
|
58
58
|
|
|
59
|
-
function
|
|
59
|
+
function _main___P48498(s) {
|
|
60
60
|
let r0 = s.r0, step = s.pc;
|
|
61
61
|
s.pc = -1;
|
|
62
62
|
|
|
@@ -66,19 +66,19 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re
|
|
|
66
66
|
switch (step) {
|
|
67
67
|
case 0:
|
|
68
68
|
|
|
69
|
-
globals.
|
|
70
|
-
globals.
|
|
69
|
+
globals._intervals___48741 = (undefined);
|
|
70
|
+
globals._pollEventQueue___48754 = (undefined);
|
|
71
71
|
r0 = undefined;
|
|
72
72
|
return leave(s, r0)
|
|
73
73
|
default: oops()
|
|
74
74
|
} } }
|
|
75
|
-
|
|
76
|
-
|
|
75
|
+
_main___P48498.info = {"start":0,"length":0,"line":0,"column":0,"endLine":0,"endColumn":0,"fileName":"characterlcd.ts","functionName":"<main>","argumentNames":[]}
|
|
76
|
+
_main___P48498.continuations = [ ]
|
|
77
77
|
|
|
78
|
-
function
|
|
78
|
+
function _main___P48498_mk(s) {
|
|
79
79
|
checkStack(s.depth);
|
|
80
80
|
return {
|
|
81
|
-
parent: s, fn:
|
|
81
|
+
parent: s, fn: _main___P48498, depth: s.depth + 1,
|
|
82
82
|
pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null,
|
|
83
83
|
} }
|
|
84
84
|
|
|
@@ -88,5 +88,5 @@ function _main___P48480_mk(s) {
|
|
|
88
88
|
|
|
89
89
|
const breakpoints = setupDebugger(1, [])
|
|
90
90
|
|
|
91
|
-
return
|
|
91
|
+
return _main___P48498
|
|
92
92
|
})
|
|
@@ -56,7 +56,7 @@ const pxsim_pxtrt = pxsim.pxtrt;
|
|
|
56
56
|
const pxsim_numops = pxsim.numops;
|
|
57
57
|
|
|
58
58
|
|
|
59
|
-
function
|
|
59
|
+
function _main___P97826(s) {
|
|
60
60
|
let r0 = s.r0, step = s.pc;
|
|
61
61
|
s.pc = -1;
|
|
62
62
|
|
|
@@ -66,19 +66,19 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re
|
|
|
66
66
|
switch (step) {
|
|
67
67
|
case 0:
|
|
68
68
|
|
|
69
|
-
globals.
|
|
70
|
-
globals.
|
|
69
|
+
globals._intervals___98069 = (undefined);
|
|
70
|
+
globals._pollEventQueue___98082 = (undefined);
|
|
71
71
|
r0 = undefined;
|
|
72
72
|
return leave(s, r0)
|
|
73
73
|
default: oops()
|
|
74
74
|
} } }
|
|
75
|
-
|
|
76
|
-
|
|
75
|
+
_main___P97826.info = {"start":0,"length":0,"line":0,"column":0,"endLine":0,"endColumn":0,"fileName":"tsl2591.ts","functionName":"<main>","argumentNames":[]}
|
|
76
|
+
_main___P97826.continuations = [ ]
|
|
77
77
|
|
|
78
|
-
function
|
|
78
|
+
function _main___P97826_mk(s) {
|
|
79
79
|
checkStack(s.depth);
|
|
80
80
|
return {
|
|
81
|
-
parent: s, fn:
|
|
81
|
+
parent: s, fn: _main___P97826, depth: s.depth + 1,
|
|
82
82
|
pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null,
|
|
83
83
|
} }
|
|
84
84
|
|
|
@@ -88,5 +88,5 @@ function _main___P97772_mk(s) {
|
|
|
88
88
|
|
|
89
89
|
const breakpoints = setupDebugger(1, [])
|
|
90
90
|
|
|
91
|
-
return
|
|
91
|
+
return _main___P97826
|
|
92
92
|
})
|
|
@@ -56,7 +56,7 @@ const pxsim_pxtrt = pxsim.pxtrt;
|
|
|
56
56
|
const pxsim_numops = pxsim.numops;
|
|
57
57
|
|
|
58
58
|
|
|
59
|
-
function
|
|
59
|
+
function _main___P59800(s) {
|
|
60
60
|
let r0 = s.r0, step = s.pc;
|
|
61
61
|
s.pc = -1;
|
|
62
62
|
|
|
@@ -66,19 +66,19 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re
|
|
|
66
66
|
switch (step) {
|
|
67
67
|
case 0:
|
|
68
68
|
|
|
69
|
-
globals.
|
|
70
|
-
globals.
|
|
69
|
+
globals._intervals___60043 = (undefined);
|
|
70
|
+
globals._pollEventQueue___60056 = (undefined);
|
|
71
71
|
r0 = undefined;
|
|
72
72
|
return leave(s, r0)
|
|
73
73
|
default: oops()
|
|
74
74
|
} } }
|
|
75
|
-
|
|
76
|
-
|
|
75
|
+
_main___P59800.info = {"start":0,"length":0,"line":0,"column":0,"endLine":0,"endColumn":0,"fileName":"lora.ts","functionName":"<main>","argumentNames":[]}
|
|
76
|
+
_main___P59800.continuations = [ ]
|
|
77
77
|
|
|
78
|
-
function
|
|
78
|
+
function _main___P59800_mk(s) {
|
|
79
79
|
checkStack(s.depth);
|
|
80
80
|
return {
|
|
81
|
-
parent: s, fn:
|
|
81
|
+
parent: s, fn: _main___P59800, depth: s.depth + 1,
|
|
82
82
|
pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null,
|
|
83
83
|
} }
|
|
84
84
|
|
|
@@ -88,5 +88,5 @@ function _main___P59782_mk(s) {
|
|
|
88
88
|
|
|
89
89
|
const breakpoints = setupDebugger(1, [])
|
|
90
90
|
|
|
91
|
-
return
|
|
91
|
+
return _main___P59800
|
|
92
92
|
})
|
|
@@ -56,7 +56,7 @@ const pxsim_pxtrt = pxsim.pxtrt;
|
|
|
56
56
|
const pxsim_numops = pxsim.numops;
|
|
57
57
|
|
|
58
58
|
|
|
59
|
-
function
|
|
59
|
+
function _main___P190006(s) {
|
|
60
60
|
let r0 = s.r0, step = s.pc;
|
|
61
61
|
s.pc = -1;
|
|
62
62
|
|
|
@@ -66,19 +66,19 @@ if (yieldSteps-- < 0 && maybeYield(s, step, r0) || runtime !== pxsim.runtime) re
|
|
|
66
66
|
switch (step) {
|
|
67
67
|
case 0:
|
|
68
68
|
|
|
69
|
-
globals.
|
|
70
|
-
globals.
|
|
69
|
+
globals._intervals___190249 = (undefined);
|
|
70
|
+
globals._pollEventQueue___190262 = (undefined);
|
|
71
71
|
r0 = undefined;
|
|
72
72
|
return leave(s, r0)
|
|
73
73
|
default: oops()
|
|
74
74
|
} } }
|
|
75
|
-
|
|
76
|
-
|
|
75
|
+
_main___P190006.info = {"start":0,"length":0,"line":0,"column":0,"endLine":0,"endColumn":0,"fileName":"keypad.ts","functionName":"<main>","argumentNames":[]}
|
|
76
|
+
_main___P190006.continuations = [ ]
|
|
77
77
|
|
|
78
|
-
function
|
|
78
|
+
function _main___P190006_mk(s) {
|
|
79
79
|
checkStack(s.depth);
|
|
80
80
|
return {
|
|
81
|
-
parent: s, fn:
|
|
81
|
+
parent: s, fn: _main___P190006, depth: s.depth + 1,
|
|
82
82
|
pc: 0, retval: undefined, r0: undefined, overwrittenPC: false, lambdaArgs: null,
|
|
83
83
|
} }
|
|
84
84
|
|
|
@@ -88,5 +88,5 @@ function _main___P189880_mk(s) {
|
|
|
88
88
|
|
|
89
89
|
const breakpoints = setupDebugger(1, [])
|
|
90
90
|
|
|
91
|
-
return
|
|
91
|
+
return _main___P190006
|
|
92
92
|
})
|