@combos-fun/engine 0.0.33 → 0.0.34

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/agent-skill.md CHANGED
@@ -120,11 +120,7 @@ A Component holds data + self-contained behaviour for one concern on one entity.
120
120
 
121
121
  2D display objects must come through `plugin-renderer-`* systems or a custom `Renderer` subclass registered via `rendererManager.register(this)`. 3D objects must come through `plugin-renderer-3d-`* systems or a custom `Renderer3D` subclass. No raw `new PIXI.Sprite(...)` / `new THREE.Mesh(...)` in bootstrap or plain Components.
122
122
 
123
- ### Rule 6: One render Component per GameObject
124
-
125
- A GameObject may carry at most one visible render Component. Do not attach multiple render Components such as `Img` + `Text`, `Graphics` + `Sprite`, or multiple sprite renderers to the same GameObject. Create child or sibling GameObjects for additional visible elements and use the Transform hierarchy to compose them. This keeps renderer ownership, bounds, picking, ordering, and destruction deterministic.
126
-
127
- ### Rule 7: Component configuration via params, not imperative calls
123
+ ### Rule 6: Component configuration via params, not imperative calls
128
124
 
129
125
  Configure Components through constructor params (e.g. `autoPlay: true`). If behaviour must be triggered at runtime, do it from another Component's lifecycle hook, not from bootstrap code.
130
126
 
@@ -304,3 +300,4 @@ After modifying engine code:
304
300
  ## See also
305
301
 
306
302
  - `@combos-fun/engine/plugin-authoring` — full spec for writing a new `@combos-fun/plugin-*` package, including Component / System / Renderer / Renderer3D subclassing, manifest format, and publish requirements.
303
+
@@ -380,32 +380,69 @@ class Transform extends Component {
380
380
  }
381
381
  }
382
382
  tslib.__decorate([
383
- inspectorDecorator.type('vector2'),
384
- inspectorDecorator.step(1)
383
+ inspectorDecorator.Field({
384
+ type: 'vector2',
385
+ step: 1,
386
+ group: 'Transform',
387
+ label: 'Position',
388
+ description: 'Position on the design canvas (x right, y down).',
389
+ })
385
390
  ], Transform.prototype, "position", void 0);
386
391
  tslib.__decorate([
387
- inspectorDecorator.type('size'),
388
- inspectorDecorator.step(1)
392
+ inspectorDecorator.Field({
393
+ type: 'size',
394
+ step: 1,
395
+ min: 0,
396
+ group: 'Transform',
397
+ label: 'Size',
398
+ description: 'Width and height of the object in design pixels.',
399
+ })
389
400
  ], Transform.prototype, "size", void 0);
390
401
  tslib.__decorate([
391
- inspectorDecorator.type('vector2'),
392
- inspectorDecorator.step(0.1)
402
+ inspectorDecorator.Field({
403
+ type: 'vector2',
404
+ step: 0.1,
405
+ group: 'Transform',
406
+ label: 'Origin',
407
+ description: 'Local origin used for layout math.',
408
+ })
393
409
  ], Transform.prototype, "origin", void 0);
394
410
  tslib.__decorate([
395
- inspectorDecorator.type('vector2'),
396
- inspectorDecorator.step(0.1)
411
+ inspectorDecorator.Field({
412
+ type: 'vector2',
413
+ step: 0.1,
414
+ group: 'Transform',
415
+ label: 'Anchor',
416
+ description: 'Anchor point (0–1) used when positioning and scaling.',
417
+ })
397
418
  ], Transform.prototype, "anchor", void 0);
398
419
  tslib.__decorate([
399
- inspectorDecorator.type('vector2'),
400
- inspectorDecorator.step(0.1)
420
+ inspectorDecorator.Field({
421
+ type: 'vector2',
422
+ step: 0.1,
423
+ group: 'Transform',
424
+ label: 'Scale',
425
+ description: 'Scale multipliers on X and Y (1 = original size).',
426
+ })
401
427
  ], Transform.prototype, "scale", void 0);
402
428
  tslib.__decorate([
403
- inspectorDecorator.type('vector2'),
404
- inspectorDecorator.step(0.1)
429
+ inspectorDecorator.Field({
430
+ type: 'vector2',
431
+ step: 0.1,
432
+ group: 'Transform',
433
+ label: 'Skew',
434
+ description: 'Skew amounts on X and Y.',
435
+ })
405
436
  ], Transform.prototype, "skew", void 0);
406
437
  tslib.__decorate([
407
- inspectorDecorator.type('number'),
408
- inspectorDecorator.step(0.1)
438
+ inspectorDecorator.Field({
439
+ type: 'number',
440
+ step: 0.1,
441
+ group: 'Transform',
442
+ label: 'Rotation',
443
+ description: 'Rotation in radians.',
444
+ editor: 'number-stepper',
445
+ })
409
446
  ], Transform.prototype, "rotation", void 0);
410
447
 
411
448
  let _id = 0;
@@ -964,7 +1001,7 @@ class Scene extends GameObject {
964
1001
  }
965
1002
 
966
1003
  /** Generated at build from package.json */
967
- const version = "0.0.33";
1004
+ const version = "0.0.34";
968
1005
 
969
1006
  /**
970
1007
  * Sent to `window.parent` after each `System.init` completes during `Game.addSystem`