pxt-common-packages 9.5.7 → 9.5.10

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.
Files changed (39) hide show
  1. package/built/common-sim.d.ts +44 -0
  2. package/built/common-sim.js +139 -0
  3. package/libs/azureiot/built/debug/binary.js +461 -461
  4. package/libs/color/built/debug/binary.js +8 -8
  5. package/libs/color-sensor/built/debug/binary.js +8 -8
  6. package/libs/controller/built/debug/binary.js +8030 -7818
  7. package/libs/controller---none/built/debug/binary.js +8009 -7797
  8. package/libs/datalogger/built/debug/binary.js +63 -63
  9. package/libs/edge-connector/built/debug/binary.js +8 -8
  10. package/libs/esp32/built/debug/binary.js +462 -462
  11. package/libs/game/_locales/game-jsdoc-strings.json +19 -0
  12. package/libs/game/_locales/game-strings.json +2 -0
  13. package/libs/game/built/debug/binary.js +7922 -7710
  14. package/libs/game/extendableSprite.ts +80 -0
  15. package/libs/game/hitbox.ts +2 -2
  16. package/libs/game/keymap.cpp +12 -0
  17. package/libs/game/keymap.ts +169 -0
  18. package/libs/game/pxt.json +4 -1
  19. package/libs/game/sim/keymap.ts +167 -0
  20. package/libs/game/sprite.ts +68 -57
  21. package/libs/lcd/built/debug/binary.js +8 -8
  22. package/libs/light-spectrum-sensor/built/debug/binary.js +8 -8
  23. package/libs/lora/built/debug/binary.js +8 -8
  24. package/libs/matrix-keypad/built/debug/binary.js +8 -8
  25. package/libs/mqtt/built/debug/binary.js +176 -176
  26. package/libs/net/built/debug/binary.js +176 -176
  27. package/libs/net-game/built/debug/binary.js +9710 -9498
  28. package/libs/palette/built/debug/binary.js +7921 -7709
  29. package/libs/pixel/built/debug/binary.js +8 -8
  30. package/libs/power/built/debug/binary.js +8 -8
  31. package/libs/proximity/built/debug/binary.js +8 -8
  32. package/libs/radio/built/debug/binary.js +8 -8
  33. package/libs/radio-broadcast/built/debug/binary.js +8 -8
  34. package/libs/rotary-encoder/built/debug/binary.js +8 -8
  35. package/libs/screen/built/debug/binary.js +50 -50
  36. package/libs/servo/built/debug/binary.js +8 -8
  37. package/libs/sprite-scaling/built/debug/binary.js +7921 -7709
  38. package/libs/storyboard/built/debug/binary.js +7921 -7709
  39. package/package.json +1 -1
@@ -728,6 +728,50 @@ declare namespace pxsim {
728
728
  }
729
729
  declare namespace pxsim.info {
730
730
  }
731
+ declare namespace pxsim.keymap {
732
+ enum Key {
733
+ None = 0,
734
+ Left = 1,
735
+ Up = 2,
736
+ Right = 3,
737
+ Down = 4,
738
+ A = 5,
739
+ B = 6,
740
+ Menu = 7,
741
+ Screenshot = -1,
742
+ Gif = -2,
743
+ Reset = -3,
744
+ TogglePause = -4
745
+ }
746
+ function _setPlayerKeys(player: number, // player number is 1-based
747
+ up: number, down: number, left: number, right: number, A: number, B: number): void;
748
+ function _setSystemKeys(screenshot: number, gif: number, menu: number, reset: number): void;
749
+ }
750
+ declare namespace pxsim {
751
+ import Key = pxsim.keymap.Key;
752
+ interface KeymapBoard extends EventBusBoard {
753
+ keymapState: KeymapState;
754
+ }
755
+ function getKeymapState(): KeymapState;
756
+ class KeymapState {
757
+ keymap: {
758
+ [keyCode: number]: Key;
759
+ };
760
+ altmap: {
761
+ [keyCode: number]: Key;
762
+ };
763
+ mappings: {
764
+ [name: string]: number[];
765
+ };
766
+ constructor();
767
+ setPlayerKeys(player: number, // player number is 1-based
768
+ up: number, down: number, left: number, right: number, A: number, B: number): void;
769
+ setSystemKeys(screenshot: number, gif: number, menu: number, reset: number): void;
770
+ getKey(keyCode: number): Key;
771
+ private saveMap;
772
+ private clearMap;
773
+ }
774
+ }
731
775
  declare namespace pxsim.multiplayer {
732
776
  function postImage(im: pxsim.RefImage, goal: string): void;
733
777
  function getCurrentImage(): pxsim.RefImage;
@@ -2395,6 +2395,145 @@ var pxsim;
2395
2395
  pxsim.ToggleState = ToggleState;
2396
2396
  })(pxsim || (pxsim = {}));
2397
2397
  var pxsim;
2398
+ (function (pxsim) {
2399
+ var keymap;
2400
+ (function (keymap) {
2401
+ // Keep in sync with pxt-arcade-sim/api.ts
2402
+ let Key;
2403
+ (function (Key) {
2404
+ Key[Key["None"] = 0] = "None";
2405
+ // Player 1
2406
+ Key[Key["Left"] = 1] = "Left";
2407
+ Key[Key["Up"] = 2] = "Up";
2408
+ Key[Key["Right"] = 3] = "Right";
2409
+ Key[Key["Down"] = 4] = "Down";
2410
+ Key[Key["A"] = 5] = "A";
2411
+ Key[Key["B"] = 6] = "B";
2412
+ Key[Key["Menu"] = 7] = "Menu";
2413
+ // Player 2 = Player 1 + 7
2414
+ // Player 3 = Player 2 + 7
2415
+ // Player 4 = Player 3 + 7
2416
+ // system keys
2417
+ Key[Key["Screenshot"] = -1] = "Screenshot";
2418
+ Key[Key["Gif"] = -2] = "Gif";
2419
+ Key[Key["Reset"] = -3] = "Reset";
2420
+ Key[Key["TogglePause"] = -4] = "TogglePause";
2421
+ })(Key = keymap.Key || (keymap.Key = {}));
2422
+ function _setPlayerKeys(player, // player number is 1-based
2423
+ up, down, left, right, A, B) {
2424
+ pxsim.getKeymapState().setPlayerKeys(player, up, down, left, right, A, B);
2425
+ }
2426
+ keymap._setPlayerKeys = _setPlayerKeys;
2427
+ function _setSystemKeys(screenshot, gif, menu, reset) {
2428
+ pxsim.getKeymapState().setSystemKeys(screenshot, gif, menu, reset);
2429
+ }
2430
+ keymap._setSystemKeys = _setSystemKeys;
2431
+ })(keymap = pxsim.keymap || (pxsim.keymap = {}));
2432
+ })(pxsim || (pxsim = {}));
2433
+ (function (pxsim) {
2434
+ var Key = pxsim.keymap.Key;
2435
+ function getKeymapState() {
2436
+ return pxsim.board().keymapState;
2437
+ }
2438
+ pxsim.getKeymapState = getKeymapState;
2439
+ const reservedKeyCodes = [
2440
+ 27,
2441
+ 9 // Tab
2442
+ ];
2443
+ class KeymapState {
2444
+ constructor() {
2445
+ this.keymap = {};
2446
+ this.altmap = {};
2447
+ this.mappings = {};
2448
+ // Player 1 keymap
2449
+ this.setPlayerKeys(1, // Player 1
2450
+ 87, // W - Up
2451
+ 83, // D - Down
2452
+ 65, // A - Left
2453
+ 83, // S - Right
2454
+ 32, // Space - A
2455
+ 13 // Enter - B
2456
+ );
2457
+ // Player 2 keymap
2458
+ this.setPlayerKeys(2, // Player 2
2459
+ 73, // I - Up
2460
+ 75, // K - Down
2461
+ 74, // J - Left
2462
+ 75, // K - Right
2463
+ 85, // U - A
2464
+ 79 // O - B
2465
+ );
2466
+ // Note: Player 3 and 4 have no default keyboard mapping
2467
+ // System keymap
2468
+ this.setSystemKeys(80, // P - Screenshot
2469
+ 82, // R - Gif
2470
+ 0, // Menu - not mapped
2471
+ 0 // Reset - not mapped
2472
+ );
2473
+ // Player 1 alternate mapping. This is cleared when the game sets any player keys explicitly
2474
+ this.altmap[38] = Key.Up; // UpArrow
2475
+ this.altmap[37] = Key.Left; // LeftArrow
2476
+ this.altmap[40] = Key.Down; // DownArrow
2477
+ this.altmap[39] = Key.Right; // RightArrow
2478
+ this.altmap[81] = Key.A; // Q
2479
+ this.altmap[90] = Key.A; // Z
2480
+ this.altmap[88] = Key.B; // X
2481
+ this.altmap[69] = Key.B; // E
2482
+ }
2483
+ setPlayerKeys(player, // player number is 1-based
2484
+ up, down, left, right, A, B) {
2485
+ // We only support four players
2486
+ if (player < 1 || player > 4)
2487
+ return;
2488
+ const keyCodes = [up, down, left, right, A, B];
2489
+ // Check for reserved key codes
2490
+ // TODO: How to surface this runtime error to the user?
2491
+ // TODO: Send message to UI: "Keyboard mapping contains a reserved key code"
2492
+ const filtered = keyCodes.filter(keyCode => reservedKeyCodes.includes(keyCode));
2493
+ if (filtered.length)
2494
+ return;
2495
+ // Clear existing mapped keys for player
2496
+ const mapName = `player-${player}`;
2497
+ this.clearMap(mapName);
2498
+ // Clear altmap When explicitly setting the player keys
2499
+ this.altmap = {};
2500
+ // Map the new keys
2501
+ const offset = (player - 1) * 7; // +7 for player 2's keys
2502
+ this.keymap[up] = Key.Up + offset;
2503
+ this.keymap[down] = Key.Down + offset;
2504
+ this.keymap[left] = Key.Left + offset;
2505
+ this.keymap[right] = Key.Right + offset;
2506
+ this.keymap[A] = Key.A + offset;
2507
+ this.keymap[B] = Key.B + offset;
2508
+ // Remember this mapping
2509
+ this.saveMap(mapName, keyCodes);
2510
+ }
2511
+ setSystemKeys(screenshot, gif, menu, reset) {
2512
+ const mapName = "system";
2513
+ // Clear existing mapped keys for system
2514
+ this.clearMap(mapName);
2515
+ this.keymap[screenshot] = Key.Screenshot;
2516
+ this.keymap[gif] = Key.Gif;
2517
+ this.keymap[menu] = Key.Menu;
2518
+ this.keymap[reset] = Key.Reset;
2519
+ // Remember this mapping
2520
+ this.saveMap(mapName, [screenshot, gif, menu, reset]);
2521
+ }
2522
+ getKey(keyCode) {
2523
+ return keyCode ? this.keymap[keyCode] || this.altmap[keyCode] || Key.None : Key.None;
2524
+ }
2525
+ saveMap(name, keyCodes) {
2526
+ this.mappings[name] = keyCodes;
2527
+ }
2528
+ clearMap(name) {
2529
+ const keyCodes = this.mappings[name];
2530
+ keyCodes === null || keyCodes === void 0 ? void 0 : keyCodes.forEach(keyCode => delete this.keymap[keyCode]);
2531
+ delete this.mappings[name];
2532
+ }
2533
+ }
2534
+ pxsim.KeymapState = KeymapState;
2535
+ })(pxsim || (pxsim = {}));
2536
+ var pxsim;
2398
2537
  (function (pxsim) {
2399
2538
  var multiplayer;
2400
2539
  (function (multiplayer) {