excalibur 0.26.0-alpha.338 → 0.26.0-alpha.339

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/CHANGELOG.md CHANGED
@@ -36,6 +36,7 @@ This project adheres to [Semantic Versioning](http://semver.org/).
36
36
 
37
37
  ### Fixed
38
38
 
39
+ - Fixed unreleased issue where SpriteFonts log every frame they detect a misconfigured font.
39
40
  - Fixed unreleased issue where clock when constraining fps would pass larger than expected elapsed times to the simulation causing things to "speed up" bizarrely
40
41
  - Fixed unreleased issue where games with no resources would crash
41
42
  - Fixed issue [#2152] where shared state in `ex.Font` and `ex.SpriteFont` prevented text from aligning properly when re-used
@@ -42,6 +42,8 @@ export declare class SpriteFont extends Graphic implements FontRenderer {
42
42
  private _logger;
43
43
  static fromLegacySpriteFont(spriteFont: LegacySpriteFont): SpriteFont;
44
44
  constructor(options: SpriteFontOptions & GraphicOptions);
45
+ private _alreadyWarnedAlphabet;
46
+ private _alreadyWarnedSpriteSheet;
45
47
  private _getCharacterSprites;
46
48
  measureText(text: string): BoundingBox;
47
49
  protected _drawImage(ex: ExcaliburGraphicsContext, x: number, y: number): void;
@@ -13,6 +13,8 @@ export class SpriteFont extends Graphic {
13
13
  this.caseInsensitive = false;
14
14
  this.spacing = 0;
15
15
  this._logger = Logger.getInstance();
16
+ this._alreadyWarnedAlphabet = false;
17
+ this._alreadyWarnedSpriteSheet = false;
16
18
  const { alphabet, spriteSheet, caseInsensitive, spacing, shadow } = options;
17
19
  this.alphabet = alphabet;
18
20
  this.spriteSheet = spriteSheet;
@@ -43,14 +45,22 @@ export class SpriteFont extends Graphic {
43
45
  let spriteIndex = alphabet.indexOf(letter);
44
46
  if (spriteIndex === -1) {
45
47
  spriteIndex = 0;
46
- this._logger.warn(`SpriteFont - Cannot find letter '${letter}' in configured alphabet '${alphabet}'`);
48
+ if (!this._alreadyWarnedAlphabet) {
49
+ this._logger.warn(`SpriteFont - Cannot find letter '${letter}' in configured alphabet '${alphabet}'.`);
50
+ this._logger.warn('There maybe be more issues in the SpriteFont configuration. No additional warnings will be logged.');
51
+ this._alreadyWarnedAlphabet = true;
52
+ }
47
53
  }
48
54
  const letterSprite = this.spriteSheet.sprites[spriteIndex];
49
55
  if (letterSprite) {
50
56
  results.push(letterSprite);
51
57
  }
52
58
  else {
53
- this._logger.warn(`SpriteFont - Cannot find sprite for '${letter}' at index '${spriteIndex}' in configured SpriteSheet`);
59
+ if (!this._alreadyWarnedSpriteSheet) {
60
+ this._logger.warn(`SpriteFont - Cannot find sprite for '${letter}' at index '${spriteIndex}' in configured SpriteSheet`);
61
+ this._logger.warn('There maybe be more issues in the SpriteFont configuration. No additional warnings will be logged.');
62
+ this._alreadyWarnedSpriteSheet = true;
63
+ }
54
64
  }
55
65
  }
56
66
  return results;
@@ -1 +1 @@
1
- {"version":3,"file":"SpriteFont.js","sourceRoot":"","sources":["../../../src/engine/Graphics/SpriteFont.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SpriteFont.js","sourceRoot":"","sources":["../../../src/engine/Graphics/SpriteFont.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * excalibur - 0.26.0-alpha.338+da0895f - 2021-12-18
2
+ * excalibur - 0.26.0-alpha.339+0b74c3d - 2021-12-18
3
3
  * https://github.com/excaliburjs/Excalibur
4
4
  * Copyright (c) 2021 Excalibur.js <https://github.com/excaliburjs/Excalibur/graphs/contributors>
5
5
  * Licensed BSD-2-Clause
@@ -9192,6 +9192,8 @@ class SpriteFont_SpriteFont extends Graphic {
9192
9192
  this.caseInsensitive = false;
9193
9193
  this.spacing = 0;
9194
9194
  this._logger = Logger.getInstance();
9195
+ this._alreadyWarnedAlphabet = false;
9196
+ this._alreadyWarnedSpriteSheet = false;
9195
9197
  const { alphabet, spriteSheet, caseInsensitive, spacing, shadow } = options;
9196
9198
  this.alphabet = alphabet;
9197
9199
  this.spriteSheet = spriteSheet;
@@ -9222,14 +9224,22 @@ class SpriteFont_SpriteFont extends Graphic {
9222
9224
  let spriteIndex = alphabet.indexOf(letter);
9223
9225
  if (spriteIndex === -1) {
9224
9226
  spriteIndex = 0;
9225
- this._logger.warn(`SpriteFont - Cannot find letter '${letter}' in configured alphabet '${alphabet}'`);
9227
+ if (!this._alreadyWarnedAlphabet) {
9228
+ this._logger.warn(`SpriteFont - Cannot find letter '${letter}' in configured alphabet '${alphabet}'.`);
9229
+ this._logger.warn('There maybe be more issues in the SpriteFont configuration. No additional warnings will be logged.');
9230
+ this._alreadyWarnedAlphabet = true;
9231
+ }
9226
9232
  }
9227
9233
  const letterSprite = this.spriteSheet.sprites[spriteIndex];
9228
9234
  if (letterSprite) {
9229
9235
  results.push(letterSprite);
9230
9236
  }
9231
9237
  else {
9232
- this._logger.warn(`SpriteFont - Cannot find sprite for '${letter}' at index '${spriteIndex}' in configured SpriteSheet`);
9238
+ if (!this._alreadyWarnedSpriteSheet) {
9239
+ this._logger.warn(`SpriteFont - Cannot find sprite for '${letter}' at index '${spriteIndex}' in configured SpriteSheet`);
9240
+ this._logger.warn('There maybe be more issues in the SpriteFont configuration. No additional warnings will be logged.');
9241
+ this._alreadyWarnedSpriteSheet = true;
9242
+ }
9233
9243
  }
9234
9244
  }
9235
9245
  return results;
@@ -29033,7 +29043,7 @@ Promises_Promise = Promise_1 = Promises_decorate([
29033
29043
  * The current Excalibur version string
29034
29044
  * @description `process.env.__EX_VERSION` gets replaced by Webpack on build
29035
29045
  */
29036
- const EX_VERSION = "0.26.0-alpha.338+da0895f";
29046
+ const EX_VERSION = "0.26.0-alpha.339+0b74c3d";
29037
29047
 
29038
29048
  polyfill();
29039
29049
  // This file is used as the bundle entry point and exports everything