@combos-fun/plugin-renderer-sprite 0.0.6 → 0.0.7
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 +25 -1
- package/agent-skill.md +62 -0
- package/combos-plugin.json +11 -0
- package/package.json +20 -6
package/README.md
CHANGED
|
@@ -1,3 +1,27 @@
|
|
|
1
1
|
# @combos-fun/plugin-renderer-sprite
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
@combos-fun/plugin-renderer-sprite — part of the Combos Fun engine monorepo.
|
|
4
|
+
|
|
5
|
+
Keywords: `sprite`, `atlas`, `spritesheet`, `frame`, `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-sprite/plugin-manifest';
|
|
21
|
+
// or fetch the markdown directly:
|
|
22
|
+
// require.resolve('@combos-fun/plugin-renderer-sprite/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,62 @@
|
|
|
1
|
+
# `@combos-fun/plugin-renderer-sprite` — Agent notes
|
|
2
|
+
|
|
3
|
+
Sprite atlas rendering for the 2D pipeline. Renders a single named sprite
|
|
4
|
+
out of a packed atlas (Texture Packer JSON + image sheet).
|
|
5
|
+
|
|
6
|
+
## When to read
|
|
7
|
+
|
|
8
|
+
Read when you have a packed sprite atlas and need to draw a single named
|
|
9
|
+
frame (UI icons grouped in a sheet, character portraits, item icons).
|
|
10
|
+
|
|
11
|
+
## Public API
|
|
12
|
+
|
|
13
|
+
```ts
|
|
14
|
+
import { Sprite, SpriteSystem, type SpriteParams } from '@combos-fun/plugin-renderer-sprite';
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
`componentName = 'Sprite'`, `systemName = 'SpriteSystem'`.
|
|
18
|
+
|
|
19
|
+
### `SpriteParams`
|
|
20
|
+
|
|
21
|
+
| Field | Type | Notes |
|
|
22
|
+
|-------|------|-------|
|
|
23
|
+
| `resource` | `string` | Engine resource name registered with `RESOURCE_TYPE.SPRITE`. Source must include both `image` and `json`. |
|
|
24
|
+
| `spriteName` | `string` | Frame name from the atlas JSON |
|
|
25
|
+
|
|
26
|
+
Side effect: importing this package registers `SPRITE` resource handlers
|
|
27
|
+
on the engine `resource` singleton.
|
|
28
|
+
|
|
29
|
+
Internal cache key: `resource + '_s|r|c_' + spriteName`.
|
|
30
|
+
|
|
31
|
+
## Required setup
|
|
32
|
+
|
|
33
|
+
`RendererSystem` then `SpriteSystem`. Resource must be registered with
|
|
34
|
+
both `image` and `json` URLs:
|
|
35
|
+
|
|
36
|
+
```ts
|
|
37
|
+
resource.addResource([{
|
|
38
|
+
name: 'icons',
|
|
39
|
+
src: { image: 'icons.png', json: 'icons.json' },
|
|
40
|
+
preload: true,
|
|
41
|
+
}]);
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## Common pitfalls
|
|
45
|
+
|
|
46
|
+
| Symptom | Fix |
|
|
47
|
+
|---------|-----|
|
|
48
|
+
| Resource not found | Both `image` and `json` are required for `RESOURCE_TYPE.SPRITE` |
|
|
49
|
+
| Wrong frame | `spriteName` must exactly match a key in the atlas JSON |
|
|
50
|
+
| Tearing / wrong size | Atlas frame may have padding; trim padding in the export tool |
|
|
51
|
+
|
|
52
|
+
## Minimal example
|
|
53
|
+
|
|
54
|
+
```ts
|
|
55
|
+
const icon = new GameObject('coin-icon');
|
|
56
|
+
icon.addComponent(new Transform({ position: { x: 50, y: 50 } }));
|
|
57
|
+
icon.addComponent(new Sprite({ resource: 'icons', spriteName: 'coin' }));
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## Verification
|
|
61
|
+
|
|
62
|
+
`pnpm --filter @combos-fun/plugin-renderer-sprite run build`.
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@combos-fun/plugin-renderer-sprite",
|
|
3
|
+
"pluginId": "renderer-sprite",
|
|
4
|
+
"category": "rendering",
|
|
5
|
+
"dimension": "2d",
|
|
6
|
+
"isCore": false,
|
|
7
|
+
"keywords": ["sprite", "atlas", "spritesheet", "frame", "2d"],
|
|
8
|
+
"agentSkill": "./agent-skill.md",
|
|
9
|
+
"requires": ["@combos-fun/engine", "@combos-fun/plugin-renderer"],
|
|
10
|
+
"exports": ["Sprite", "SpriteSystem"]
|
|
11
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@combos-fun/plugin-renderer-sprite",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.7",
|
|
4
4
|
"description": "@combos-fun/plugin-renderer-sprite",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"module": "dist/plugin-renderer-sprite.esm.js",
|
|
@@ -8,8 +8,22 @@
|
|
|
8
8
|
"unpkg": "dist/CombosFun.plugin.renderer.sprite.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-sprite.esm.js",
|
|
18
|
+
"require": "./index.js",
|
|
19
|
+
"types": "./dist/plugin-renderer-sprite.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-sprite.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/
|
|
22
|
-
"@combos-fun/renderer
|
|
23
|
-
"@combos-fun/
|
|
24
|
-
"@combos-fun/
|
|
35
|
+
"@combos-fun/renderer-adapter": "0.0.7",
|
|
36
|
+
"@combos-fun/plugin-renderer": "0.0.7",
|
|
37
|
+
"@combos-fun/engine": "0.0.7",
|
|
38
|
+
"@combos-fun/inspector-decorator": "0.0.7"
|
|
25
39
|
},
|
|
26
40
|
"scripts": {
|
|
27
41
|
"build": "node ../../scripts/build-package.mjs"
|