pxt-common-packages 9.5.5 → 9.5.8
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 +40 -0
- package/built/common-sim.js +93 -1
- package/libs/azureiot/built/debug/binary.js +461 -461
- package/libs/base/sim/core.ts +1 -1
- 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 +7659 -7665
- package/libs/controller---none/built/debug/binary.js +7638 -7644
- 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/_locales/game-strings.json +1 -0
- package/libs/game/built/debug/binary.js +7551 -7557
- package/libs/game/docs/reference/sprites/sprite-kind.md +70 -0
- package/libs/game/docs/reference/tiles/get-neighboring-location.md +123 -0
- package/libs/game/docs/reference/tiles/get-tile-location.md +71 -30
- package/libs/game/docs/reference/tiles/get-tiles-by-type.md +66 -32
- package/libs/game/docs/reference/tiles/location.md +246 -0
- package/libs/game/docs/reference/tiles/place-on-random-tile.md +54 -21
- package/libs/game/docs/reference/tiles/place-on-tile.md +88 -0
- package/libs/game/docs/reference/tiles/set-current-tilemap.md +90 -0
- package/libs/game/docs/reference/tiles/set-tile-at.md +47 -30
- package/libs/game/docs/reference/tiles/set-tilemap.md +90 -0
- package/libs/game/docs/reference/tiles/set-wall-at.md +67 -68
- package/libs/game/docs/reference/tiles/tile-at-location-equals.md +97 -0
- package/libs/game/docs/reference/tiles/tile-at-location-is-wall.md +98 -0
- package/libs/game/docs/reference/tiles/tilemap.md +145 -0
- package/libs/game/hitbox.ts +2 -2
- package/libs/game/multiplayer.cpp +25 -0
- package/libs/game/multiplayer.ts +24 -0
- package/libs/game/pxt.json +3 -1
- package/libs/game/scene.ts +1 -0
- package/libs/game/sim/multiplayer.ts +132 -0
- package/libs/game/sprite.ts +1 -1
- package/libs/game/spritekind.ts +1 -0
- package/libs/game/tilemap.ts +12 -11
- 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 +9339 -9345
- package/libs/palette/built/debug/binary.js +7550 -7556
- 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/servo/built/debug/binary.js +8 -8
- package/libs/sprite-scaling/built/debug/binary.js +7550 -7556
- package/libs/storyboard/built/debug/binary.js +7550 -7556
- package/package.json +2 -2
package/built/common-sim.d.ts
CHANGED
|
@@ -728,6 +728,46 @@ declare namespace pxsim {
|
|
|
728
728
|
}
|
|
729
729
|
declare namespace pxsim.info {
|
|
730
730
|
}
|
|
731
|
+
declare namespace pxsim.multiplayer {
|
|
732
|
+
function postImage(im: pxsim.RefImage, goal: string): void;
|
|
733
|
+
function getCurrentImage(): pxsim.RefImage;
|
|
734
|
+
function setOrigin(origin: "client" | "server" | undefined): void;
|
|
735
|
+
function getOrigin(): string;
|
|
736
|
+
}
|
|
737
|
+
declare namespace pxsim {
|
|
738
|
+
interface MultiplayerBoard extends EventBusBoard {
|
|
739
|
+
multiplayerState: MultiplayerState;
|
|
740
|
+
}
|
|
741
|
+
function getMultiplayerState(): MultiplayerState;
|
|
742
|
+
interface SimulatorMultiplayerMessage extends SimulatorBroadcastMessage {
|
|
743
|
+
broadcast: true;
|
|
744
|
+
type: "multiplayer";
|
|
745
|
+
content: string;
|
|
746
|
+
origin?: "server" | "client";
|
|
747
|
+
clientNumber?: number;
|
|
748
|
+
id?: number;
|
|
749
|
+
}
|
|
750
|
+
interface MultiplayerImageMessage extends SimulatorMultiplayerMessage {
|
|
751
|
+
content: "Image";
|
|
752
|
+
goal: string;
|
|
753
|
+
image: RefImage;
|
|
754
|
+
}
|
|
755
|
+
interface MultiplayerButtonEvent extends SimulatorMultiplayerMessage {
|
|
756
|
+
content: "Button";
|
|
757
|
+
button: number;
|
|
758
|
+
state: "Pressed" | "Released" | "Held";
|
|
759
|
+
}
|
|
760
|
+
class MultiplayerState {
|
|
761
|
+
lastMessageId: number;
|
|
762
|
+
origin: string;
|
|
763
|
+
backgroundImage: RefImage;
|
|
764
|
+
constructor();
|
|
765
|
+
send(msg: SimulatorMultiplayerMessage): void;
|
|
766
|
+
init(origin: string): void;
|
|
767
|
+
setButton(key: number, isPressed: boolean): void;
|
|
768
|
+
protected messageHandler(msg: SimulatorMessage): void;
|
|
769
|
+
}
|
|
770
|
+
}
|
|
731
771
|
declare namespace pxsim.gamepad {
|
|
732
772
|
function setButton(index: number, up: boolean): void;
|
|
733
773
|
function move(index: number, x: number, y: number): void;
|
package/built/common-sim.js
CHANGED
|
@@ -699,7 +699,7 @@ var pxsim;
|
|
|
699
699
|
var pxsim;
|
|
700
700
|
(function (pxsim) {
|
|
701
701
|
function board() {
|
|
702
|
-
return pxsim.runtime.board;
|
|
702
|
+
return pxsim.runtime && pxsim.runtime.board;
|
|
703
703
|
}
|
|
704
704
|
pxsim.board = board;
|
|
705
705
|
})(pxsim || (pxsim = {}));
|
|
@@ -2395,6 +2395,98 @@ var pxsim;
|
|
|
2395
2395
|
pxsim.ToggleState = ToggleState;
|
|
2396
2396
|
})(pxsim || (pxsim = {}));
|
|
2397
2397
|
var pxsim;
|
|
2398
|
+
(function (pxsim) {
|
|
2399
|
+
var multiplayer;
|
|
2400
|
+
(function (multiplayer) {
|
|
2401
|
+
function postImage(im, goal) {
|
|
2402
|
+
const asBuf = pxsim.image.toBuffer(im);
|
|
2403
|
+
pxsim.getMultiplayerState().send({
|
|
2404
|
+
content: "Image",
|
|
2405
|
+
image: asBuf,
|
|
2406
|
+
goal
|
|
2407
|
+
});
|
|
2408
|
+
}
|
|
2409
|
+
multiplayer.postImage = postImage;
|
|
2410
|
+
function getCurrentImage() {
|
|
2411
|
+
return pxsim.getMultiplayerState().backgroundImage;
|
|
2412
|
+
}
|
|
2413
|
+
multiplayer.getCurrentImage = getCurrentImage;
|
|
2414
|
+
function setOrigin(origin) {
|
|
2415
|
+
pxsim.getMultiplayerState().origin = origin;
|
|
2416
|
+
}
|
|
2417
|
+
multiplayer.setOrigin = setOrigin;
|
|
2418
|
+
function getOrigin() {
|
|
2419
|
+
return pxsim.getMultiplayerState().origin;
|
|
2420
|
+
}
|
|
2421
|
+
multiplayer.getOrigin = getOrigin;
|
|
2422
|
+
})(multiplayer = pxsim.multiplayer || (pxsim.multiplayer = {}));
|
|
2423
|
+
})(pxsim || (pxsim = {}));
|
|
2424
|
+
(function (pxsim) {
|
|
2425
|
+
function getMultiplayerState() {
|
|
2426
|
+
return pxsim.board().multiplayerState;
|
|
2427
|
+
}
|
|
2428
|
+
pxsim.getMultiplayerState = getMultiplayerState;
|
|
2429
|
+
class MultiplayerState {
|
|
2430
|
+
constructor() {
|
|
2431
|
+
this.lastMessageId = 0;
|
|
2432
|
+
}
|
|
2433
|
+
send(msg) {
|
|
2434
|
+
pxsim.Runtime.postMessage(Object.assign(Object.assign({}, msg), { broadcast: true, toParentIFrameOnly: true, type: "multiplayer", origin: this.origin, id: this.lastMessageId++ }));
|
|
2435
|
+
}
|
|
2436
|
+
init(origin) {
|
|
2437
|
+
this.origin = origin;
|
|
2438
|
+
pxsim.runtime.board.addMessageListener(msg => this.messageHandler(msg));
|
|
2439
|
+
setInterval(() => {
|
|
2440
|
+
if (this.origin === "server") {
|
|
2441
|
+
const b = pxsim.board();
|
|
2442
|
+
const screenState = b && b.screenState;
|
|
2443
|
+
const lastImage = screenState && screenState.lastImage;
|
|
2444
|
+
lastImage && pxsim.multiplayer.postImage(lastImage, "broadcast-screen");
|
|
2445
|
+
}
|
|
2446
|
+
}, 50);
|
|
2447
|
+
}
|
|
2448
|
+
setButton(key, isPressed) {
|
|
2449
|
+
if (this.origin === "client") {
|
|
2450
|
+
this.send({
|
|
2451
|
+
content: "Button",
|
|
2452
|
+
button: key,
|
|
2453
|
+
state: isPressed ? "Pressed" : "Released"
|
|
2454
|
+
});
|
|
2455
|
+
}
|
|
2456
|
+
}
|
|
2457
|
+
messageHandler(msg) {
|
|
2458
|
+
if (!isMultiplayerMessage(msg)) {
|
|
2459
|
+
return;
|
|
2460
|
+
}
|
|
2461
|
+
if (isImageMessage(msg)) {
|
|
2462
|
+
if (this.origin === "client") {
|
|
2463
|
+
// HACK: peer js can convert Uint8Array into ArrayBuffer when transmitting; fix this.
|
|
2464
|
+
if (!ArrayBuffer.isView(msg.image.data)) {
|
|
2465
|
+
msg.image.data = new Uint8Array(msg.image.data);
|
|
2466
|
+
}
|
|
2467
|
+
this.backgroundImage = pxsim.image.ofBuffer(msg.image);
|
|
2468
|
+
}
|
|
2469
|
+
}
|
|
2470
|
+
else if (isButtonMessage(msg)) {
|
|
2471
|
+
if (this.origin === "server") {
|
|
2472
|
+
pxsim.board().setButton(msg.button + (7 * (msg.clientNumber || 1)), // + 7 to make it player 2 controls,
|
|
2473
|
+
msg.state === "Pressed" || msg.state === "Held");
|
|
2474
|
+
}
|
|
2475
|
+
}
|
|
2476
|
+
}
|
|
2477
|
+
}
|
|
2478
|
+
pxsim.MultiplayerState = MultiplayerState;
|
|
2479
|
+
function isMultiplayerMessage(msg) {
|
|
2480
|
+
return msg && msg.type === "multiplayer";
|
|
2481
|
+
}
|
|
2482
|
+
function isImageMessage(msg) {
|
|
2483
|
+
return msg && msg.content === "Image";
|
|
2484
|
+
}
|
|
2485
|
+
function isButtonMessage(msg) {
|
|
2486
|
+
return msg && msg.content === "Button";
|
|
2487
|
+
}
|
|
2488
|
+
})(pxsim || (pxsim = {}));
|
|
2489
|
+
var pxsim;
|
|
2398
2490
|
(function (pxsim) {
|
|
2399
2491
|
var gamepad;
|
|
2400
2492
|
(function (gamepad) {
|