@combos-fun/plugin-renderer-text 0.0.6 → 0.0.8

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/README.md CHANGED
@@ -1,3 +1,27 @@
1
1
  # @combos-fun/plugin-renderer-text
2
2
 
3
- Internal workspace package (Combos Fun monorepo).
3
+ @combos-fun/plugin-renderer-text part of the Combos Fun engine monorepo.
4
+
5
+ Keywords: `text`, `label`, `font`, `string`, `2d`.
6
+
7
+ ## Documentation
8
+
9
+ - Per-package agent / developer notes: [`agent-skill.md`](./agent-skill.md)
10
+ - Machine-readable manifest: [`combos-plugin.json`](./combos-plugin.json)
11
+ (validated against `schemas/combos-plugin.schema.json` in the repo
12
+ root)
13
+ - Entry skill (single source of truth for AI agents working with this
14
+ monorepo): `skills/combos-engine-development/SKILL.md`
15
+
16
+ When consumed from npm, the manifest and agent notes are exposed as
17
+ stable subpaths:
18
+
19
+ ```ts
20
+ import manifest from '@combos-fun/plugin-renderer-text/plugin-manifest';
21
+ // or fetch the markdown directly:
22
+ // require.resolve('@combos-fun/plugin-renderer-text/agent-skill')
23
+ ```
24
+
25
+ ## License
26
+
27
+ Internal workspace package, part of the Combos Fun engine monorepo.
package/agent-skill.md ADDED
@@ -0,0 +1,51 @@
1
+ # `@combos-fun/plugin-renderer-text` — Agent notes
2
+
3
+ Text rendering for the 2D pipeline. Wraps Pixi v8 `Text` and auto-syncs `Transform.size` so other components see the rendered text bounds.
4
+
5
+ ## When to read
6
+
7
+ Read for any 2D text label, score display, dialog text, or HUD title.
8
+
9
+ ## Public API
10
+
11
+ ```ts
12
+ import { Text, TextSystem, type TextParams } from '@combos-fun/plugin-renderer-text';
13
+ ```
14
+
15
+ `componentName = 'Text'`, `systemName = 'TextSystem'`.
16
+
17
+ ### `TextParams`
18
+
19
+ | Field | Type | Default |
20
+ |-------|------|---------|
21
+ | `text` | `string` | — (required) |
22
+ | `style` | `Partial<TextStyle>` | `{ fontSize: 20 }` |
23
+
24
+ `style` accepts the full Pixi `TextStyle` surface (`fill`, `fontFamily`, `fontSize`, `fontWeight`, `wordWrap`, `wordWrapWidth`, `align`, `stroke`, `dropShadow`, `lineHeight`, ...).
25
+
26
+ `Transform.size` is updated automatically after rendering so layout components downstream can position around the actual bounds.
27
+
28
+ ## Required setup
29
+
30
+ `RendererSystem` then `TextSystem`.
31
+
32
+ ## Common pitfalls
33
+
34
+ | Symptom | Fix |
35
+ |---------|-----|
36
+ | Text invisible on dark background | Set `style.fill: 0xffffff` (default fill is dark) |
37
+ | Wrap not working | Set `style.wordWrap: true` AND `style.wordWrapWidth: <px>` |
38
+ | Custom font not loading | Load the webfont before adding the component (e.g. `document.fonts.load(...)`) |
39
+ | Updating `text` doesn't refresh | The system observes the Component — make sure you assign via the component instance, not via Pixi internals |
40
+
41
+ ## Minimal example
42
+
43
+ ```ts
44
+ const score = new GameObject('score');
45
+ score.addComponent(new Transform({ position: { x: 20, y: 20 } }));
46
+ score.addComponent(new Text({ text: 'Score: 0', style: { fontSize: 32, fill: 0xffffff } }));
47
+ ```
48
+
49
+ ## Verification
50
+
51
+ `pnpm --filter @combos-fun/plugin-renderer-text run build`.
@@ -0,0 +1,11 @@
1
+ {
2
+ "name": "@combos-fun/plugin-renderer-text",
3
+ "pluginId": "renderer-text",
4
+ "category": "rendering",
5
+ "dimension": "2d",
6
+ "isCore": false,
7
+ "keywords": ["text", "label", "font", "string", "2d"],
8
+ "agentSkill": "./agent-skill.md",
9
+ "requires": ["@combos-fun/engine", "@combos-fun/plugin-renderer"],
10
+ "exports": ["Text", "TextSystem"]
11
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@combos-fun/plugin-renderer-text",
3
- "version": "0.0.6",
3
+ "version": "0.0.8",
4
4
  "description": "@combos-fun/plugin-renderer-text",
5
5
  "main": "index.js",
6
6
  "module": "dist/plugin-renderer-text.esm.js",
@@ -8,8 +8,22 @@
8
8
  "unpkg": "dist/CombosFun.plugin.renderer.text.min.js",
9
9
  "files": [
10
10
  "index.js",
11
- "dist"
11
+ "dist",
12
+ "agent-skill.md",
13
+ "combos-plugin.json"
12
14
  ],
15
+ "exports": {
16
+ ".": {
17
+ "import": "./dist/plugin-renderer-text.esm.js",
18
+ "require": "./index.js",
19
+ "types": "./dist/plugin-renderer-text.d.ts"
20
+ },
21
+ "./plugin-manifest": "./combos-plugin.json",
22
+ "./agent-skill": "./agent-skill.md"
23
+ },
24
+ "combos": {
25
+ "pluginManifest": "./combos-plugin.json"
26
+ },
13
27
  "types": "dist/plugin-renderer-text.d.ts",
14
28
  "keywords": [
15
29
  "combos-fun",
@@ -18,10 +32,10 @@
18
32
  "author": "sun668 <q947692259@gmail.com>",
19
33
  "dependencies": {
20
34
  "pixi.js": "^8.18.1",
21
- "@combos-fun/renderer-adapter": "0.0.6",
22
- "@combos-fun/engine": "0.0.6",
23
- "@combos-fun/plugin-renderer": "0.0.6",
24
- "@combos-fun/inspector-decorator": "0.0.6"
35
+ "@combos-fun/plugin-renderer": "0.0.8",
36
+ "@combos-fun/inspector-decorator": "0.0.8",
37
+ "@combos-fun/engine": "0.0.8",
38
+ "@combos-fun/renderer-adapter": "0.0.8"
25
39
  },
26
40
  "scripts": {
27
41
  "build": "node ../../scripts/build-package.mjs"