pxt-common-packages 9.4.1 → 9.4.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.
Files changed (65) hide show
  1. package/built/common-sim.d.ts +8 -0
  2. package/built/common-sim.js +74 -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 +7126 -6975
  7. package/libs/controller---none/built/debug/binary.js +7105 -6954
  8. package/libs/core---esp32/pins.cpp +30 -4
  9. package/libs/core---esp32/shims.d.ts +15 -0
  10. package/libs/core---esp32s2/shims.d.ts +15 -0
  11. package/libs/datalogger/built/debug/binary.js +63 -63
  12. package/libs/edge-connector/built/debug/binary.js +8 -8
  13. package/libs/esp32/built/debug/binary.js +462 -462
  14. package/libs/game/_locales/game-jsdoc-strings.json +10 -1
  15. package/libs/game/_locales/game-strings.json +18 -2
  16. package/libs/game/assetTemplates.ts +2 -0
  17. package/libs/game/built/debug/binary.js +7018 -6867
  18. package/libs/game/docs/reference/scene/get-tile-location.md +96 -0
  19. package/libs/game/docs/reference/scene/get-tiles-by-type.md +64 -43
  20. package/libs/game/docs/reference/scene/is-hitting-tile.md +87 -0
  21. package/libs/game/docs/reference/scene/on-hit-wall.md +88 -0
  22. package/libs/game/docs/reference/scene/on-overlap-tile.md +88 -0
  23. package/libs/game/docs/reference/scene/place-on-random-tile.md +95 -41
  24. package/libs/game/docs/reference/scene/place-on-tile.md +88 -0
  25. package/libs/game/docs/reference/scene/set-tile-at.md +45 -41
  26. package/libs/game/docs/reference/scene/set-tilemap.md +89 -0
  27. package/libs/game/docs/reference/scene/set-wall-at.md +86 -0
  28. package/libs/game/docs/reference/scene/tile-at-location-equals.md +97 -0
  29. package/libs/game/docs/reference/scene/tile-kind-at.md +118 -0
  30. package/libs/game/docs/reference/scene.md +20 -16
  31. package/libs/game/docs/reference/sprites/sprite/ax.md +34 -3
  32. package/libs/game/docs/reference/sprites/sprite/ay.md +34 -3
  33. package/libs/game/docs/reference/sprites/sprite/fx.md +123 -0
  34. package/libs/game/docs/reference/sprites/sprite/fy.md +123 -0
  35. package/libs/game/docs/reference/sprites.md +2 -0
  36. package/libs/game/physics.ts +1 -1
  37. package/libs/game/renderText.ts +74 -11
  38. package/libs/game/scenes.ts +5 -1
  39. package/libs/game/sprite.ts +23 -6
  40. package/libs/game/spriteevents.ts +7 -7
  41. package/libs/game/sprites.ts +16 -0
  42. package/libs/game/spritesay.ts +204 -51
  43. package/libs/game/tilemap.ts +173 -27
  44. package/libs/lcd/built/debug/binary.js +8 -8
  45. package/libs/light-spectrum-sensor/built/debug/binary.js +8 -8
  46. package/libs/lora/built/debug/binary.js +8 -8
  47. package/libs/matrix-keypad/built/debug/binary.js +8 -8
  48. package/libs/mqtt/built/debug/binary.js +176 -176
  49. package/libs/net/built/debug/binary.js +176 -176
  50. package/libs/net-game/built/debug/binary.js +8802 -8651
  51. package/libs/palette/built/debug/binary.js +7017 -6866
  52. package/libs/pixel/built/debug/binary.js +8 -8
  53. package/libs/power/built/debug/binary.js +8 -8
  54. package/libs/proximity/built/debug/binary.js +8 -8
  55. package/libs/radio/built/debug/binary.js +8 -8
  56. package/libs/radio-broadcast/built/debug/binary.js +8 -8
  57. package/libs/rotary-encoder/built/debug/binary.js +8 -8
  58. package/libs/screen/built/debug/binary.js +50 -50
  59. package/libs/servo/built/debug/binary.js +8 -8
  60. package/libs/storyboard/built/debug/binary.js +7017 -6866
  61. package/libs/text-to-speech/pxt.json +14 -0
  62. package/libs/text-to-speech/shims.d.ts +47 -0
  63. package/libs/text-to-speech/sim/tts.ts +72 -0
  64. package/libs/text-to-speech/tts.ts +70 -0
  65. package/package.json +1 -1
@@ -1119,6 +1119,14 @@ declare namespace pxsim.input {
1119
1119
  function onSwitchMoved(direction: number, body: RefAction): void;
1120
1120
  function switchRight(): boolean;
1121
1121
  }
1122
+ declare namespace pxsim.tts {
1123
+ function _getLanguageCode(): string;
1124
+ function _speakAsync(text: string, pitch?: number, rate?: number, volume?: number, language?: string, onStart?: RefAction, onBoundary?: RefAction): Promise<void>;
1125
+ function _pause(): void;
1126
+ function _isPaused(): boolean;
1127
+ function _resume(): void;
1128
+ function _cancel(): void;
1129
+ }
1122
1130
  declare namespace pxsim {
1123
1131
  interface TemperatureBoard extends CommonBoard {
1124
1132
  thermometerState: AnalogSensorState;
@@ -4568,6 +4568,80 @@ var pxsim;
4568
4568
  })(input = pxsim.input || (pxsim.input = {}));
4569
4569
  })(pxsim || (pxsim = {}));
4570
4570
  var pxsim;
4571
+ (function (pxsim) {
4572
+ var tts;
4573
+ (function (tts) {
4574
+ function _getLanguageCode() {
4575
+ return window.navigator.language;
4576
+ }
4577
+ tts._getLanguageCode = _getLanguageCode;
4578
+ function _speakAsync(text, pitch, rate, volume, language, onStart, onBoundary) {
4579
+ return new Promise((resolve, reject) => {
4580
+ const utterance = new SpeechSynthesisUtterance(text);
4581
+ utterance.voice = getVoiceForLanguage(language || _getLanguageCode());
4582
+ if (pitch != undefined)
4583
+ utterance.pitch = pitch;
4584
+ if (rate != undefined)
4585
+ utterance.rate = rate;
4586
+ if (volume != undefined)
4587
+ utterance.volume = volume;
4588
+ utterance.onend = () => resolve();
4589
+ utterance.onerror = reject;
4590
+ if (onStart) {
4591
+ utterance.onstart = () => pxsim.runtime.runFiberAsync(onStart);
4592
+ }
4593
+ if (onBoundary) {
4594
+ utterance.onboundary = event => {
4595
+ const offset = event.charIndex;
4596
+ const nextWord = text.substring(offset).split(/\s/).shift();
4597
+ pxsim.runtime.runFiberAsync(onBoundary, offset, nextWord, text);
4598
+ };
4599
+ }
4600
+ speechSynthesis.speak(utterance);
4601
+ });
4602
+ }
4603
+ tts._speakAsync = _speakAsync;
4604
+ function _pause() {
4605
+ speechSynthesis.pause();
4606
+ }
4607
+ tts._pause = _pause;
4608
+ function _isPaused() {
4609
+ return speechSynthesis.paused;
4610
+ }
4611
+ tts._isPaused = _isPaused;
4612
+ function _resume() {
4613
+ speechSynthesis.resume();
4614
+ }
4615
+ tts._resume = _resume;
4616
+ function _cancel() {
4617
+ speechSynthesis.cancel();
4618
+ }
4619
+ tts._cancel = _cancel;
4620
+ function getVoiceForLanguage(language) {
4621
+ language = language.toLowerCase();
4622
+ const generalCode = language.substring(0, 2);
4623
+ let bestMatch;
4624
+ let bestNonlocalMatch;
4625
+ for (const voice of speechSynthesis.getVoices()) {
4626
+ const current = voice.lang.toLowerCase();
4627
+ if (current === language) {
4628
+ if (voice.localService)
4629
+ return voice;
4630
+ else
4631
+ bestNonlocalMatch = voice;
4632
+ }
4633
+ else if (current.substring(0, 2) === generalCode) {
4634
+ if (!bestMatch && voice.localService)
4635
+ bestMatch = voice;
4636
+ if (!bestNonlocalMatch && !voice.localService)
4637
+ bestNonlocalMatch = voice;
4638
+ }
4639
+ }
4640
+ return bestMatch || bestNonlocalMatch || (language !== "en-us" ? getVoiceForLanguage("en-US") : undefined);
4641
+ }
4642
+ })(tts = pxsim.tts || (pxsim.tts = {}));
4643
+ })(pxsim || (pxsim = {}));
4644
+ var pxsim;
4571
4645
  (function (pxsim) {
4572
4646
  function thermometerState() {
4573
4647
  return pxsim.board().thermometerState;