@combos-fun/plugin-renderer-mask 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 +25 -1
- package/agent-skill.md +51 -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-mask
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
@combos-fun/plugin-renderer-mask — part of the Combos Fun engine monorepo.
|
|
4
|
+
|
|
5
|
+
Keywords: `mask`, `clipping`, `circle`, `polygon`, `alpha`, `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-mask/plugin-manifest';
|
|
21
|
+
// or fetch the markdown directly:
|
|
22
|
+
// require.resolve('@combos-fun/plugin-renderer-mask/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-mask` — Agent notes
|
|
2
|
+
|
|
3
|
+
Pixi mask Component for the 2D pipeline. Adds a clipping mask of a chosen shape (or texture) to the GameObject's container.
|
|
4
|
+
|
|
5
|
+
## When to read
|
|
6
|
+
|
|
7
|
+
Read when you need to clip a sprite / sub-tree to a circular avatar, an ellipse, a rounded rect, a polygon, or a texture-based alpha mask.
|
|
8
|
+
|
|
9
|
+
## Public API
|
|
10
|
+
|
|
11
|
+
```ts
|
|
12
|
+
import { Mask, MaskSystem, MASK_TYPE, type MaskParams } from '@combos-fun/plugin-renderer-mask';
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
### `MASK_TYPE`
|
|
16
|
+
|
|
17
|
+
`Circle`, `Ellipse`, `Rect`, `RoundedRect`, `Polygon`, `Img`, `Sprite`.
|
|
18
|
+
|
|
19
|
+
### `MaskParams`
|
|
20
|
+
|
|
21
|
+
| Field | Type | Notes |
|
|
22
|
+
|-------|------|-------|
|
|
23
|
+
| `type` | `MASK_TYPE` | Mask shape |
|
|
24
|
+
| `style` | `{ x?, y?, radius?, width?, height?, paths? }` | Geometry parameters; `paths` is for `Polygon` |
|
|
25
|
+
| `resource` | `string?` | For `Img` / `Sprite` mask types |
|
|
26
|
+
| `spriteName` | `string?` | For `Sprite` mask type |
|
|
27
|
+
|
|
28
|
+
## Required setup
|
|
29
|
+
|
|
30
|
+
`RendererSystem` then `MaskSystem` (`Img` / `Sprite` mask types also require the matching `Img`/`Sprite` resource registered).
|
|
31
|
+
|
|
32
|
+
## Common pitfalls
|
|
33
|
+
|
|
34
|
+
| Symptom | Fix |
|
|
35
|
+
|---------|-----|
|
|
36
|
+
| Mask hides everything | `paths` for Polygon must be in local space; non-zero winding |
|
|
37
|
+
| Visual lost after adding mask | Check `style` size; a 0×0 RoundedRect mask hides everything |
|
|
38
|
+
| Texture mask all black | `Img`/`Sprite` mask requires the texture's alpha channel; use a PNG with alpha |
|
|
39
|
+
|
|
40
|
+
## Minimal example
|
|
41
|
+
|
|
42
|
+
```ts
|
|
43
|
+
go.addComponent(new Mask({
|
|
44
|
+
type: MASK_TYPE.Circle,
|
|
45
|
+
style: { x: 0, y: 0, radius: 50 },
|
|
46
|
+
}));
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## Verification
|
|
50
|
+
|
|
51
|
+
`pnpm --filter @combos-fun/plugin-renderer-mask run build`.
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@combos-fun/plugin-renderer-mask",
|
|
3
|
+
"pluginId": "renderer-mask",
|
|
4
|
+
"category": "rendering",
|
|
5
|
+
"dimension": "2d",
|
|
6
|
+
"isCore": false,
|
|
7
|
+
"keywords": ["mask", "clipping", "circle", "polygon", "alpha", "2d"],
|
|
8
|
+
"agentSkill": "./agent-skill.md",
|
|
9
|
+
"requires": ["@combos-fun/engine", "@combos-fun/plugin-renderer"],
|
|
10
|
+
"exports": ["Mask", "MaskSystem", "MASK_TYPE"]
|
|
11
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@combos-fun/plugin-renderer-mask",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.8",
|
|
4
4
|
"description": "@combos-fun/plugin-renderer-mask",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"module": "dist/plugin-renderer-mask.esm.js",
|
|
@@ -8,8 +8,22 @@
|
|
|
8
8
|
"unpkg": "dist/CombosFun.plugin.renderer.mask.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-mask.esm.js",
|
|
18
|
+
"require": "./index.js",
|
|
19
|
+
"types": "./dist/plugin-renderer-mask.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-mask.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/
|
|
23
|
-
"@combos-fun/
|
|
24
|
-
"@combos-fun/inspector-decorator": "0.0.
|
|
35
|
+
"@combos-fun/plugin-renderer": "0.0.8",
|
|
36
|
+
"@combos-fun/renderer-adapter": "0.0.8",
|
|
37
|
+
"@combos-fun/engine": "0.0.8",
|
|
38
|
+
"@combos-fun/inspector-decorator": "0.0.8"
|
|
25
39
|
},
|
|
26
40
|
"scripts": {
|
|
27
41
|
"build": "node ../../scripts/build-package.mjs"
|