@bloopjs/toodle 0.0.103 → 0.0.104

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/dist/Toodle.d.ts CHANGED
@@ -211,7 +211,7 @@ export declare class Toodle {
211
211
  Text(fontId: string, text: string, textOpts?: TextOptions): TextNode;
212
212
  shapes: {
213
213
  Rect: (options?: QuadOptions) => QuadNode;
214
- Circle: (options?: QuadOptions) => QuadNode;
214
+ Circle: (options?: CircleOptions) => QuadNode;
215
215
  Line: (options: LineOptions) => QuadNode;
216
216
  };
217
217
  /**
@@ -271,6 +271,14 @@ export type ToodleOptions = {
271
271
  filter?: "nearest" | "linear";
272
272
  limits?: LimitsOptions;
273
273
  };
274
+ export type CircleOptions = Omit<QuadOptions, "size"> & {
275
+ /**
276
+ * The radius of the circle in pixels.
277
+ * The diameter will be radius * 2.
278
+ * @default 50
279
+ */
280
+ radius?: number;
281
+ };
274
282
  export type LineOptions = {
275
283
  /**
276
284
  * The start position of the line.
@@ -1 +1 @@
1
- {"version":3,"file":"Toodle.d.ts","sourceRoot":"","sources":["../src/Toodle.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Toodle.d.ts","sourceRoot":"","sources":["../src/Toodle.ts"],"names":[],"mappings":"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"}
package/dist/mod.js CHANGED
@@ -3611,7 +3611,7 @@ class SceneNode {
3611
3611
  #transform;
3612
3612
  #matrix = mat3.identity();
3613
3613
  #renderComponent = null;
3614
- #idealSize = null;
3614
+ #size = null;
3615
3615
  #positionProxy;
3616
3616
  #scaleProxy;
3617
3617
  #cache = null;
@@ -3623,7 +3623,7 @@ class SceneNode {
3623
3623
  this.#transform = {
3624
3624
  position: opts?.position ?? { x: 0, y: 0 },
3625
3625
  scale: { x: 1, y: 1 },
3626
- size: opts?.idealSize ?? { width: 1, height: 1 },
3626
+ size: opts?.size ?? { width: 1, height: 1 },
3627
3627
  rotation: opts?.rotationRadians ?? 0
3628
3628
  };
3629
3629
  if (opts?.scale)
@@ -3635,7 +3635,7 @@ class SceneNode {
3635
3635
  this.#layer = opts?.layer ?? null;
3636
3636
  this.#isActive = opts?.isActive ?? true;
3637
3637
  this.label = opts?.label ?? undefined;
3638
- this.#idealSize = opts?.idealSize ?? null;
3638
+ this.#size = opts?.size ?? null;
3639
3639
  this.#key = opts?.key ?? null;
3640
3640
  for (const kid of opts?.kids ?? []) {
3641
3641
  this.add(kid);
@@ -3745,19 +3745,19 @@ class SceneNode {
3745
3745
  }
3746
3746
  this.setDirty();
3747
3747
  }
3748
- set idealSize(value) {
3749
- this.#idealSize = value;
3748
+ set size(value) {
3749
+ this.#size = value;
3750
3750
  this.setDirty();
3751
3751
  }
3752
3752
  get size() {
3753
- return this.#idealSize;
3753
+ return this.#size;
3754
3754
  }
3755
3755
  get aspectRatio() {
3756
- if (!this.#idealSize) {
3756
+ if (!this.#size) {
3757
3757
  console.warn("Attempted to get aspect ratio of a node with no ideal size");
3758
3758
  return 1;
3759
3759
  }
3760
- return this.#idealSize.width / this.#idealSize.height;
3760
+ return this.#size.width / this.#size.height;
3761
3761
  }
3762
3762
  get isActive() {
3763
3763
  if (!this.#cache?.isActive) {
@@ -3964,7 +3964,7 @@ class QuadNode extends SceneNode {
3964
3964
  #writeInstance;
3965
3965
  constructor(options, matrixPool) {
3966
3966
  assert(options.shader, "QuadNode requires a shader to be explicitly provided");
3967
- assert(options.idealSize, "QuadNode requires an ideal size to be explicitly provided");
3967
+ assert(options.size, "QuadNode requires a size to be explicitly provided");
3968
3968
  assert(options.atlasCoords, "QuadNode requires atlas coords to be explicitly provided");
3969
3969
  options.render ??= {
3970
3970
  shader: options.shader,
@@ -17570,8 +17570,8 @@ class TextNode extends SceneNode {
17570
17570
  throw new Error(`Text: ${text} exceeds ${shader.maxCharCount} characters. Try using fewer characters or increase the limit in Toodle.attach.`);
17571
17571
  }
17572
17572
  const em2px = shader.font.lineHeight / (opts.fontSize ?? DEFAULT_FONT_SIZE);
17573
- if (!opts.shrinkToFit && !opts.idealSize) {
17574
- opts.idealSize = { width: width / em2px, height: height / em2px };
17573
+ if (!opts.shrinkToFit && !opts.size) {
17574
+ opts.size = { width: width / em2px, height: height / em2px };
17575
17575
  }
17576
17576
  super({
17577
17577
  ...opts,
@@ -19012,7 +19012,8 @@ class AssetManager {
19012
19012
  } else {
19013
19013
  await this.#registerBundleFromAtlases(bundleId, opts);
19014
19014
  }
19015
- if (opts.autoLoad) {
19015
+ const autoLoad = opts.autoLoad ?? true;
19016
+ if (autoLoad) {
19016
19017
  await this.loadBundle(bundleId);
19017
19018
  }
19018
19019
  return bundleId;
@@ -19401,7 +19402,7 @@ class Toodle {
19401
19402
  }
19402
19403
  Quad(assetId, options = {}) {
19403
19404
  const assetManager = options.assetManager ?? this.assets;
19404
- options.idealSize ??= assetManager.getSize(assetId);
19405
+ options.size ??= assetManager.getSize(assetId);
19405
19406
  options.shader ??= this.#defaultQuadShader();
19406
19407
  options.atlasCoords ??= assetManager.extra.getAtlasCoords(assetId)[0];
19407
19408
  options.textureId ??= assetId;
@@ -19450,7 +19451,7 @@ class Toodle {
19450
19451
  width: originalSize.width,
19451
19452
  height: originalSize.height
19452
19453
  };
19453
- options.idealSize ??= {
19454
+ options.size ??= {
19454
19455
  width: originalSize.width,
19455
19456
  height: originalSize.height
19456
19457
  };
@@ -19467,7 +19468,7 @@ class Toodle {
19467
19468
  }
19468
19469
  shapes = {
19469
19470
  Rect: (options = {}) => {
19470
- options.idealSize ??= { width: 1, height: 1 };
19471
+ options.size ??= { width: 1, height: 1 };
19471
19472
  options.shader ??= this.#defaultQuadShader();
19472
19473
  options.atlasCoords ??= {
19473
19474
  atlasIndex: 1000,
@@ -19489,18 +19490,23 @@ class Toodle {
19489
19490
  }
19490
19491
  return quad;
19491
19492
  },
19492
- Circle: (options = {}) => {
19493
- options.idealSize ??= { width: 1, height: 1 };
19494
- options.shader ??= this.#defaultQuadShader();
19495
- options.atlasCoords ??= {
19496
- atlasIndex: 1001,
19497
- uvOffset: { x: 0, y: 0 },
19498
- uvScale: { width: 0, height: 0 },
19499
- cropOffset: { x: 0, y: 0 },
19500
- originalSize: { width: 1, height: 1 }
19493
+ Circle: (options = { radius: 50 }) => {
19494
+ const radius = options.radius ?? 50;
19495
+ const diameter = radius * 2;
19496
+ const quadOptions = {
19497
+ ...options,
19498
+ size: { width: diameter, height: diameter },
19499
+ shader: options.shader ?? this.#defaultQuadShader(),
19500
+ atlasCoords: options.atlasCoords ?? {
19501
+ atlasIndex: 1001,
19502
+ uvOffset: { x: 0, y: 0 },
19503
+ uvScale: { width: 0, height: 0 },
19504
+ cropOffset: { x: 0, y: 0 },
19505
+ originalSize: { width: 1, height: 1 }
19506
+ },
19507
+ assetManager: this.assets
19501
19508
  };
19502
- options.assetManager = this.assets;
19503
- const quad = new QuadNode(options, this.#matrixPool);
19509
+ const quad = new QuadNode(quadOptions, this.#matrixPool);
19504
19510
  if (options?.position) {
19505
19511
  quad.position = options.position;
19506
19512
  }
@@ -19529,7 +19535,7 @@ class Toodle {
19529
19535
  originalSize: { width: 1, height: 1 }
19530
19536
  },
19531
19537
  shader: options.shader ?? this.#defaultQuadShader(),
19532
- idealSize: { width: 1, height: 1 },
19538
+ size: { width: 1, height: 1 },
19533
19539
  layer: options.layer,
19534
19540
  key: options.key,
19535
19541
  rotationRadians: angle,
@@ -19836,5 +19842,5 @@ export {
19836
19842
  AssetManager
19837
19843
  };
19838
19844
 
19839
- //# debugId=9F2329B11FF4504E64756E2164756E21
19845
+ //# debugId=70898D8E4A9F02C164756E2164756E21
19840
19846
  //# sourceMappingURL=mod.js.map