pelican-engine 0.3.9 → 0.3.10
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/AGENTS.md +18 -0
- package/distribution.json +14 -12
- package/docs/STATUS.md +2 -2
- package/docs/api/REFERENCE.md +154 -88
- package/docs/api/index.json +149 -90
- package/docs/npm/GAME-AUTHOR.md +18 -0
- package/engine.manifest.json +1 -1
- package/lib/renderer/gameplay.js +2 -0
- package/lib/runtime/host.js +4 -0
- package/lib/sdk/index.d.ts +68 -1
- package/lib/sdk/index.js +1 -1
- package/lib/simulation/rope-plugin.js +89 -0
- package/lib/simulation/rope.js +318 -0
- package/package.json +1 -1
package/AGENTS.md
CHANGED
|
@@ -118,6 +118,24 @@ batch, and the last update wins if a cell appears more than once. Entity and
|
|
|
118
118
|
transform changes are separate from this grid-only batch. This API is new and
|
|
119
119
|
has not been runtime or browser validated under the current project policy.
|
|
120
120
|
|
|
121
|
+
### Development-stage rope particles
|
|
122
|
+
|
|
123
|
+
`ctx.ropes.create({ id, points, mass })` creates a CPU particle rope. Call
|
|
124
|
+
`ctx.ropes.step(id)` **once per game fixed tick** when movement is desired;
|
|
125
|
+
the host does not advance it automatically. The first particle is pinned by
|
|
126
|
+
default; `anchors: []` creates a free rope. `setAnchor`, `releaseAnchor`,
|
|
127
|
+
`applyForce` (next tick only), `applyImpulse`, `inspect`, and `destroy` manage
|
|
128
|
+
it. `setColliders` accepts sampled planes and spheres; contacts affect only
|
|
129
|
+
particles, not rigid bodies. Host snapshots include rope state. An example in
|
|
130
|
+
the source checkout is `examples/rope-particles`.
|
|
131
|
+
|
|
132
|
+
This is an unverified development-stage increment, not complete rope physics:
|
|
133
|
+
there is no built-in rope mesh, automatic fixed-tick scheduling, rigid-body
|
|
134
|
+
reaction, segment or self collision, or tearing. Game code may use `positions`
|
|
135
|
+
to move entities but this is not a substitute for a rope renderer or coupled
|
|
136
|
+
physics. Plane normals must be unit length; `offset` is the plane's signed
|
|
137
|
+
normal distance from the origin. The host interval must be 1/1000?1/30 seconds.
|
|
138
|
+
|
|
121
139
|
Keyboard bindings use the browser's `KeyboardEvent.key` values, not physical
|
|
122
140
|
`KeyboardEvent.code` values. For example, use `input: { up: ["w", "W", "ArrowUp"],
|
|
123
141
|
restart: ["r", "R"] }`, not `"KeyW"` or `"KeyR"`. Letter case depends on the
|
package/distribution.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"format": "pelican.npm-distribution",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.10",
|
|
4
4
|
"files": {
|
|
5
|
-
"AGENTS.md": "
|
|
5
|
+
"AGENTS.md": "a6a0affd49645bb24f4207b8a0b2ca5db09a54bb265cd56cb8d898a11f72289b",
|
|
6
6
|
"CONTRIBUTING.md": "0ffad5d841d90f319fc50a75b81d3c0ad6dab8d5d9bec2846c65c7f8358d5a50",
|
|
7
7
|
"docs/AI-WORKFLOW.md": "aa992686df93f791795f6f3fce01713d812eea6a1b9556f07411ac5847278efa",
|
|
8
|
-
"docs/api/index.json": "
|
|
9
|
-
"docs/api/REFERENCE.md": "
|
|
8
|
+
"docs/api/index.json": "5c7e92ebd4c9c5c45fb05c9da6dcf890bc7372ae1ea97ca185dae290c6797628",
|
|
9
|
+
"docs/api/REFERENCE.md": "fb73f68a548c45933e94eaffcea53217897a6edd27ad6130383c61ee4f1f878b",
|
|
10
10
|
"docs/ARCHITECTURE.md": "3184b73592d466390e7793b1cf39bbb80d6052b523fba7e7cb377b5207074627",
|
|
11
11
|
"docs/assets/pelican-mark.svg": "407b10cd7e292ea83cf5dba4046fb2f01c7d566a14014c55deda3a2984562b4d",
|
|
12
12
|
"docs/CAPABILITIES.md": "92950817497d8c63db07830db96dc93c877befa8d038320feed1ae1f1a053cb1",
|
|
@@ -14,14 +14,14 @@
|
|
|
14
14
|
"docs/GETTING-STARTED.md": "5519ebe4e513e8ae4517c04948ee9dc70bcb1e3d04a65d468a6537c838502663",
|
|
15
15
|
"docs/GRAPHICS-GUIDE.md": "e3d0f7df6189ca3f88d81af5ffaf393f5d6bf39b9e66167bb2f64b39194b514c",
|
|
16
16
|
"docs/npm/DISTRIBUTION.md": "ff25e039921a85ba253c27608c77ed614a036117d7a04f908a78d1e3ed3f19ef",
|
|
17
|
-
"docs/npm/GAME-AUTHOR.md": "
|
|
17
|
+
"docs/npm/GAME-AUTHOR.md": "a6a0affd49645bb24f4207b8a0b2ca5db09a54bb265cd56cb8d898a11f72289b",
|
|
18
18
|
"docs/PELICAN-MIGRATION.md": "c5d6ab8e5186f4d36720a0a01d1a7e4157a5d386c5400e2db99571a7d10a1e49",
|
|
19
19
|
"docs/PHYSICS-LIFECYCLE-ISSUE.md": "cc78917462de4e7e9b68e77c742192ce213b4be5b516d2ba943251fff46977ac",
|
|
20
20
|
"docs/RENDER-BACKENDS.md": "d981ea94742a835d028db37d536fb7fba05102e37bc6274a37baf74f5034b954",
|
|
21
21
|
"docs/ROADMAP.md": "29ac1c54f36064e23c17cfe7f549d6860889257a57d1227e322958aa9c281568",
|
|
22
|
-
"docs/STATUS.md": "
|
|
22
|
+
"docs/STATUS.md": "8797614fc42dda9c175d964077a1f1287bd0bc6ecbf4cd1b10e86cedc6f9b432",
|
|
23
23
|
"docs/THIRD-PARTY-NOTICES.md": "58f9b72e2b4dfaaaf2a4c08b9bde9ecef3d2b7e7d65fccd782ed54f39fa76fdc",
|
|
24
|
-
"engine.manifest.json": "
|
|
24
|
+
"engine.manifest.json": "a0a984e172d67fd47b99d018e67b50d515a611533c515c1f61a7bfc73a74ed71",
|
|
25
25
|
"lib/assets/audio.js": "6facdce4e053afd172af5b9407569b035169844ea17b49f93f8b67f72b78895f",
|
|
26
26
|
"lib/assets/errors.js": "70572678655c6e53179d31920d71f29882d373a0e12d560220bb0fc2cd74f2cc",
|
|
27
27
|
"lib/assets/glb.js": "b808479a36299c154db97f50c16863a3b5a2c61f725e66bf01d01a5f62a288a5",
|
|
@@ -66,7 +66,7 @@
|
|
|
66
66
|
"lib/renderer/emissive-lights.js": "93ee4442cb1eb9a075c5a7a02560bb0e9af2b99d4e55d9f46d73e477e725a599",
|
|
67
67
|
"lib/renderer/environment-importance.js": "b192af1173eb8235ab3f8cbe34fe7de92fe35bf970c214d7d3a122a5c77006d9",
|
|
68
68
|
"lib/renderer/environment.js": "e7eff454f49e969f188d58e936cb41c217413902af5de4d9fefa3212c3394692",
|
|
69
|
-
"lib/renderer/gameplay.js": "
|
|
69
|
+
"lib/renderer/gameplay.js": "e77b116413339af97d1e24f59b77035eeea8297ddc29963bbe21173c10077673",
|
|
70
70
|
"lib/renderer/geometry.js": "262674d0b8c45f71a937ef5f8fde023287e14f985bd80ffcf11aa778523ba4bc",
|
|
71
71
|
"lib/renderer/graph-expressions.js": "3cc20d472f3894976b6c8e503b915c3eaf12de9c6d93bae45edb12b0f7e0dc4e",
|
|
72
72
|
"lib/renderer/graph-tsl.js": "d698d22fd2977aabd3f7331e8f3d46d8cbf80695ea503b9326cff470859e84b4",
|
|
@@ -104,7 +104,7 @@
|
|
|
104
104
|
"lib/runtime/error.js": "544d52d5426c53266c902e7b5afda1ea76a84ac12b6027879aed647423acbbad",
|
|
105
105
|
"lib/runtime/events.js": "e1d8fd5005be19d7a26d51023b97245318bce4b777748562d5e453b10f0faefe",
|
|
106
106
|
"lib/runtime/game-services.js": "a026966789aca4c45a5303950f7bc757cc6c12f223cbeaba13f6d514cac8575b",
|
|
107
|
-
"lib/runtime/host.js": "
|
|
107
|
+
"lib/runtime/host.js": "2b73d5e753f9ac555abb435ad7c857c54ff935d36feb7cc2225eef81b0edc0f8",
|
|
108
108
|
"lib/runtime/material-parameters.js": "c535afa5ff3d92f399da142a45f22541598e374b6a8e4051a65f8f20dd8fb970",
|
|
109
109
|
"lib/runtime/plugins.js": "8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881",
|
|
110
110
|
"lib/runtime/postprocess-contract.js": "8e609bb71c20b858c77f0e9f90bb1319db8477b13f9f965f1a1e18524bf50881",
|
|
@@ -123,8 +123,10 @@
|
|
|
123
123
|
"lib/runtime/world.js": "c43621fbaca8bd2b0d6477a96e60e895312f0f7b1eb97614b6e4f9b716129ea1",
|
|
124
124
|
"lib/schema/index.js": "594429eecb4494c4af2f3d04537be3211f2c9297a1fc555bbba5d028d8627965",
|
|
125
125
|
"lib/sdk/graph-values.js": "a58c00f127cb82aba5fd2824981942844e06d9a59a88a05e35d1d3df2fc7ed2f",
|
|
126
|
-
"lib/sdk/index.d.ts": "
|
|
127
|
-
"lib/sdk/index.js": "
|
|
126
|
+
"lib/sdk/index.d.ts": "7438779a15fa88afc90bd6c88ad83a8b654d1f6e9b6eee4fd558fddcc2881a53",
|
|
127
|
+
"lib/sdk/index.js": "2c2e334730f954b40e185f4da0fa583bc55d2d7faa81dacd6f8be0abcf6226dc",
|
|
128
|
+
"lib/simulation/rope-plugin.js": "cd239ab928c1ce5d3c7849479c635b9f873fc9a30801496a25b9f0fd2f2fdd77",
|
|
129
|
+
"lib/simulation/rope.js": "9a2653d948062d9681ec7ebe3a4e594ece902a9e64628e57a831a20bc3374344",
|
|
128
130
|
"lib/tools/api-index.js": "6aedc153a0ce8eaf18239b0368a76a8ae8e4397bd8e6cdf571889bc39265be5d",
|
|
129
131
|
"lib/tools/browser-session.js": "1fa7f78d4752d8a59a55dc2283b4d42cd1df230f0d5a5dc80c6d78ade45b4cdb",
|
|
130
132
|
"lib/tools/cli.js": "ad5e915f046cc2e6bf612edd1a88cc33758b1d2b0ce2f057be50e0a2c4770062",
|
|
@@ -195,7 +197,7 @@
|
|
|
195
197
|
"licenses/undici-types/LICENSE": "a6db8096b2707bc0102d256917d4d33f298ba36d8c3f25de067a2b5bb379db27",
|
|
196
198
|
"licenses/uniq/LICENSE": "e67aed7df22dc8031e4fcf5338fe91cb33e3817e5c58a99a2a2802eea9069791",
|
|
197
199
|
"licenses/vite/LICENSE.md": "a22152baa1aef74402443008e767e7c689a524c0909d19b0431d97f5ab066a13",
|
|
198
|
-
"package.json": "
|
|
200
|
+
"package.json": "5595a3e7c8492ff663261c58c8ca983fcb22e514f82c498dcd6743613214f13f",
|
|
199
201
|
"README.md": "ff25e039921a85ba253c27608c77ed614a036117d7a04f908a78d1e3ed3f19ef",
|
|
200
202
|
"web/index.html": "d89d6a5b5be3beae3627a8ed506ac308b165d264fb8696be3afd79fcca2f26ee"
|
|
201
203
|
}
|
package/docs/STATUS.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
## 版本与发布
|
|
4
4
|
|
|
5
|
-
- 当前版本为 `0.3.
|
|
5
|
+
- 当前版本为 `0.3.10`,包、锁文件、引擎、SDK、编译器和示例中的版本保持一致。下一项功能完成后统一递增并推送;相同版本不能重复发布。
|
|
6
6
|
- 推送主线会通过 GitHub Actions 和 npm 可信发布更新 `latest`;GitHub Release 用于记录里程碑。历史版本和旧标签保持原样,不代表当前源码通过。
|
|
7
7
|
- 当前按用户要求仅允许编译和构建,不运行测试、浏览器、GPU、性能或其他验证。普通版本号不意味着运行行为、硬件或完整引擎已验收。
|
|
8
8
|
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
- 动态光追、路径追踪、受控图形计算和 WebGL2 回退已有研发实现,但当前源码的完整画质、性能、兼容性和资源生命周期未验证,不能称为完整首发。
|
|
13
13
|
- 刚体首步前删除存在已知缺陷;历史候选存在旧快照兼容及危险历史回放风险,不得通过修改夹具或在主进程回放危险历史掩盖。有关背景与原始证据保留在历史任务文档中。
|
|
14
14
|
- 正交网格导航新增批量障碍更新接口;它只处理单个网格的阻挡状态,不等于世界流送、实体变换或物理联动。该增量尚未进行运行行为验证。
|
|
15
|
-
-
|
|
15
|
+
- CPU 粒子绳索已通过 `ctx.ropes` 接入游戏服务及 Host 快照,需由游戏系统显式步进;仅支持粒子与采样球体/平面的单向碰撞。尚无自动固定步、绳索网格渲染、双向刚体交互、绳段/自碰撞或撕裂,不代表完整绳索能力。该增量尚未进行运行行为或快照兼容验证。
|
|
16
16
|
- 布料、绳索、软体、流体、连续世界、导航、动画、音频和其他首发能力仍需按各自依赖完成,不能把独立候选或局部实现写成整项完成。
|
|
17
17
|
|
|
18
18
|
## 单线接续
|