@zylem/behaviors 0.4.0 → 0.5.1
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 +13 -1
- package/dist/behavior-system-CeJXzNvr.d.ts +868 -0
- package/dist/{chunk-GFARAJV2.js → chunk-2PAHQZZD.js} +44 -73
- package/dist/chunk-2PAHQZZD.js.map +1 -0
- package/dist/chunk-52FJIDGL.js +30 -0
- package/dist/chunk-52FJIDGL.js.map +1 -0
- package/dist/{chunk-UYFOLI2X.js → chunk-5A5AYP2C.js} +1 -1
- package/dist/{chunk-UYFOLI2X.js.map → chunk-5A5AYP2C.js.map} +1 -1
- package/dist/{chunk-64HKCSXD.js → chunk-5EBIIYZD.js} +25 -45
- package/dist/chunk-5EBIIYZD.js.map +1 -0
- package/dist/{chunk-WXXXJ22R.js → chunk-5NJGASUJ.js} +87 -129
- package/dist/chunk-5NJGASUJ.js.map +1 -0
- package/dist/{chunk-XLUJDKCT.js → chunk-5UMCWV5A.js} +24 -15
- package/dist/chunk-5UMCWV5A.js.map +1 -0
- package/dist/chunk-5WRI5ZAA.js +31 -0
- package/dist/chunk-5WRI5ZAA.js.map +1 -0
- package/dist/{chunk-5SM5SH5O.js → chunk-7JLWZXPA.js} +2 -2
- package/dist/{chunk-HNESASBB.js → chunk-AEBDZWCP.js} +19 -28
- package/dist/chunk-AEBDZWCP.js.map +1 -0
- package/dist/chunk-AS3HR7AS.js +188 -0
- package/dist/chunk-AS3HR7AS.js.map +1 -0
- package/dist/chunk-E4X4YJZB.js +841 -0
- package/dist/chunk-E4X4YJZB.js.map +1 -0
- package/dist/{chunk-PWF757B6.js → chunk-F6ESSHQK.js} +19 -25
- package/dist/chunk-F6ESSHQK.js.map +1 -0
- package/dist/chunk-GQAPBNGT.js +210 -0
- package/dist/chunk-GQAPBNGT.js.map +1 -0
- package/dist/chunk-JGXRQUTC.js +191 -0
- package/dist/chunk-JGXRQUTC.js.map +1 -0
- package/dist/{chunk-BXP4K7RF.js → chunk-JVADRLWX.js} +57 -186
- package/dist/chunk-JVADRLWX.js.map +1 -0
- package/dist/{chunk-ZA43LPRM.js → chunk-KIYUUSPK.js} +2 -2
- package/dist/{chunk-V74N7D6Q.js → chunk-KOWGILCN.js} +24 -15
- package/dist/chunk-KOWGILCN.js.map +1 -0
- package/dist/{chunk-WWVD5DR5.js → chunk-M3QDKKDF.js} +2 -8
- package/dist/chunk-M3QDKKDF.js.map +1 -0
- package/dist/{chunk-FTDZAKZW.js → chunk-NQPYMUDF.js} +7 -5
- package/dist/{chunk-FTDZAKZW.js.map → chunk-NQPYMUDF.js.map} +1 -1
- package/dist/{chunk-XP3ASVGJ.js → chunk-NW4SE5XW.js} +2 -2
- package/dist/{chunk-KDY5N6J4.js → chunk-OPZ2LVS2.js} +1 -22
- package/dist/{chunk-KDY5N6J4.js.map → chunk-OPZ2LVS2.js.map} +1 -1
- package/dist/{chunk-5XZWTFGF.js → chunk-PLIXVF7B.js} +3 -3
- package/dist/chunk-PLIXVF7B.js.map +1 -0
- package/dist/{chunk-Y7YIAWPW.js → chunk-SGHIGTVZ.js} +1 -11
- package/dist/{chunk-Y7YIAWPW.js.map → chunk-SGHIGTVZ.js.map} +1 -1
- package/dist/{chunk-UL6Q5HDP.js → chunk-TBUKJKY6.js} +3 -25
- package/dist/chunk-TBUKJKY6.js.map +1 -0
- package/dist/chunk-VFDUKGRZ.js +155 -0
- package/dist/chunk-VFDUKGRZ.js.map +1 -0
- package/dist/chunk-VT3H43QA.js +288 -0
- package/dist/chunk-VT3H43QA.js.map +1 -0
- package/dist/chunk-W26PHBME.js +309 -0
- package/dist/chunk-W26PHBME.js.map +1 -0
- package/dist/components-BANNjAZP.d.ts +30 -0
- package/dist/cooldown.d.ts +2 -2
- package/dist/cooldown.js +1 -0
- package/dist/coordinators/boundary-ricochet-3d.d.ts +4 -4
- package/dist/coordinators/boundary-ricochet-3d.js +1 -0
- package/dist/coordinators/boundary-ricochet.d.ts +4 -4
- package/dist/coordinators/boundary-ricochet.js +3 -2
- package/dist/coordinators/first-person-shooter.js +1 -0
- package/dist/coordinators/multidirectional-space-shooter.d.ts +3 -3
- package/dist/coordinators/multidirectional-space-shooter.js +5 -3
- package/dist/coordinators/top-down-shooter.d.ts +3 -3
- package/dist/coordinators/top-down-shooter.js +5 -3
- package/dist/core.d.ts +288 -8
- package/dist/core.js +492 -19
- package/dist/core.js.map +1 -1
- package/dist/destructible-3d.d.ts +32 -4
- package/dist/destructible-3d.js +2 -1
- package/dist/destructible-prebake.js +1 -0
- package/dist/{entity-types-CmtQ-IBp.d.ts → entity-types-DhfsZbSK.d.ts} +5 -3
- package/dist/first-person.d.ts +27 -38
- package/dist/first-person.js +8 -7
- package/dist/index.d.ts +14 -15
- package/dist/index.js +37 -52
- package/dist/jumper-2d.d.ts +3 -17
- package/dist/jumper-2d.js +4 -8
- package/dist/jumper-3d.d.ts +5 -39
- package/dist/jumper-3d.js +5 -9
- package/dist/{moveable-BLTHO7Jq.d.ts → moveable-XhzWPAw5.d.ts} +21 -4
- package/dist/particle-emitter/presets.js +1 -0
- package/dist/particle-emitter.d.ts +3 -3
- package/dist/particle-emitter.js +3 -2
- package/dist/platformer-2d.d.ts +13 -82
- package/dist/platformer-2d.js +4 -4
- package/dist/platformer-3d.d.ts +13 -78
- package/dist/platformer-3d.js +4 -4
- package/dist/ricochet-2d.d.ts +3 -3
- package/dist/ricochet-2d.js +4 -3
- package/dist/ricochet-3d.d.ts +3 -3
- package/dist/ricochet-3d.js +4 -3
- package/dist/runtime-2d.d.ts +2 -2
- package/dist/runtime-2d.js +1 -0
- package/dist/runtime-2d.js.map +1 -1
- package/dist/screen-visibility.d.ts +2 -2
- package/dist/screen-visibility.js +1 -0
- package/dist/screen-wrap.d.ts +2 -2
- package/dist/screen-wrap.js +4 -3
- package/dist/shooter-2d.d.ts +3 -3
- package/dist/shooter-2d.js +4 -3
- package/dist/thruster.d.ts +5 -34
- package/dist/thruster.js +4 -6
- package/dist/top-down-movement.d.ts +9 -27
- package/dist/top-down-movement.js +6 -6
- package/dist/{vector-Bm65-FOG.d.ts → vector-DjhLUrak.d.ts} +2 -4
- package/dist/world-boundary-2d.d.ts +2 -2
- package/dist/world-boundary-2d.js +5 -4
- package/dist/world-boundary-3d.d.ts +2 -2
- package/dist/world-boundary-3d.js +4 -3
- package/package.json +4 -3
- package/dist/behavior-system-DSNek0W9.d.ts +0 -483
- package/dist/chunk-4URF65BR.js +0 -44
- package/dist/chunk-4URF65BR.js.map +0 -1
- package/dist/chunk-4V7TIRO2.js +0 -44
- package/dist/chunk-4V7TIRO2.js.map +0 -1
- package/dist/chunk-5XZWTFGF.js.map +0 -1
- package/dist/chunk-64HKCSXD.js.map +0 -1
- package/dist/chunk-BXP4K7RF.js.map +0 -1
- package/dist/chunk-FRJDQM23.js +0 -506
- package/dist/chunk-FRJDQM23.js.map +0 -1
- package/dist/chunk-GFARAJV2.js.map +0 -1
- package/dist/chunk-GTLA6LOJ.js +0 -400
- package/dist/chunk-GTLA6LOJ.js.map +0 -1
- package/dist/chunk-HNESASBB.js.map +0 -1
- package/dist/chunk-JXMF4NUI.js +0 -309
- package/dist/chunk-JXMF4NUI.js.map +0 -1
- package/dist/chunk-MJFMNRMZ.js +0 -240
- package/dist/chunk-MJFMNRMZ.js.map +0 -1
- package/dist/chunk-OTLSUYQQ.js +0 -29
- package/dist/chunk-OTLSUYQQ.js.map +0 -1
- package/dist/chunk-PWF757B6.js.map +0 -1
- package/dist/chunk-RONH2KDI.js +0 -455
- package/dist/chunk-RONH2KDI.js.map +0 -1
- package/dist/chunk-RTRFJVCZ.js +0 -454
- package/dist/chunk-RTRFJVCZ.js.map +0 -1
- package/dist/chunk-UL6Q5HDP.js.map +0 -1
- package/dist/chunk-V74N7D6Q.js.map +0 -1
- package/dist/chunk-WWVD5DR5.js.map +0 -1
- package/dist/chunk-WXXXJ22R.js.map +0 -1
- package/dist/chunk-XLUJDKCT.js.map +0 -1
- package/dist/components-BWG1GkZA.d.ts +0 -20
- package/dist/use-behavior-h9-T5FSv.d.ts +0 -13
- /package/dist/{chunk-5SM5SH5O.js.map → chunk-7JLWZXPA.js.map} +0 -0
- /package/dist/{chunk-ZA43LPRM.js.map → chunk-KIYUUSPK.js.map} +0 -0
- /package/dist/{chunk-XP3ASVGJ.js.map → chunk-NW4SE5XW.js.map} +0 -0
package/dist/platformer-3d.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { S as SyncStateMachine } from './sync-state-machine-CZyspBpj.js';
|
|
2
|
-
import {
|
|
3
|
-
import { Z as ZylemWorld, a as BehaviorDescriptor } from './behavior-system-DSNek0W9.js';
|
|
2
|
+
import { a as BehaviorDescriptor } from './behavior-system-CeJXzNvr.js';
|
|
4
3
|
import 'typescript-fsm';
|
|
4
|
+
import '@zylem/runtime';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Platformer 3D ECS Components
|
|
@@ -188,81 +188,6 @@ declare class Platformer3DFSM {
|
|
|
188
188
|
update(input: Platformer3DInputComponent, state: Platformer3DStateComponent): void;
|
|
189
189
|
}
|
|
190
190
|
|
|
191
|
-
/**
|
|
192
|
-
* Platformer 3D System
|
|
193
|
-
*
|
|
194
|
-
* Kinematic character controller (N64-style): the controller owns all motion
|
|
195
|
-
* and physics is only a collision database.
|
|
196
|
-
*
|
|
197
|
-
* - The entity's body is converted to `KinematicPositionBased` on first
|
|
198
|
-
* update; Rapier never applies forces to it.
|
|
199
|
-
* - Each tick, desired displacement (horizontal input + integrated vertical
|
|
200
|
-
* velocity) is run through Rapier's `KinematicCharacterController`
|
|
201
|
-
* (collide-and-slide with autostep, slope limits, and snap-to-ground) and
|
|
202
|
-
* the corrected movement is applied via `setNextKinematicTranslation`.
|
|
203
|
-
* - Grounded comes from `controller.computedGrounded()` — no contact-pair or
|
|
204
|
-
* raycast probing.
|
|
205
|
-
* - Vertical velocity lives in `state.verticalVelocity` (`linvel()` is
|
|
206
|
-
* meaningless on kinematic bodies). Jump buffering, coyote time,
|
|
207
|
-
* multi-jump, and the jump-cut ramp all operate on that field.
|
|
208
|
-
*/
|
|
209
|
-
|
|
210
|
-
/**
|
|
211
|
-
* Entity with platformer components
|
|
212
|
-
*/
|
|
213
|
-
interface Platformer3DEntity {
|
|
214
|
-
uuid: string;
|
|
215
|
-
body: RigidBody;
|
|
216
|
-
collider?: Collider | null;
|
|
217
|
-
platformer: Platformer3DMovementComponent;
|
|
218
|
-
$platformer: Platformer3DInputComponent;
|
|
219
|
-
platformerState: Platformer3DStateComponent;
|
|
220
|
-
}
|
|
221
|
-
/**
|
|
222
|
-
* Platformer 3D movement system.
|
|
223
|
-
*
|
|
224
|
-
* Core kinematic controller for 3D platformer movement. Requires a live
|
|
225
|
-
* `ZylemWorld` with the raw Rapier `World` exposed on `.world` — without it
|
|
226
|
-
* the system is a no-op (the WASM fast path handles that case upstream).
|
|
227
|
-
*/
|
|
228
|
-
declare class Platformer3DSystem {
|
|
229
|
-
private world;
|
|
230
|
-
/** Per-entity character controllers, keyed by entity uuid. */
|
|
231
|
-
private controllers;
|
|
232
|
-
constructor(world: ZylemWorld | null);
|
|
233
|
-
/**
|
|
234
|
-
* One-time per-entity physics setup: convert the body to a
|
|
235
|
-
* position-based kinematic body and create its character controller.
|
|
236
|
-
* Done lazily on the first update because the body isn't always
|
|
237
|
-
* available at construction time.
|
|
238
|
-
*/
|
|
239
|
-
private ensurePhysicsConfigured;
|
|
240
|
-
/**
|
|
241
|
-
* Handle jump logic with multi-jump, coyote time, buffering, and jump-cut
|
|
242
|
-
* ramp. All vertical motion is written to `state.verticalVelocity`.
|
|
243
|
-
*/
|
|
244
|
-
private handleJump;
|
|
245
|
-
/**
|
|
246
|
-
* Integrate gravity into `state.verticalVelocity`.
|
|
247
|
-
*
|
|
248
|
-
* While grounded (and not on the jump frame) vertical velocity is held at
|
|
249
|
-
* a small constant downward speed so the controller stays pressed into
|
|
250
|
-
* the ground. Skipped entirely on the frame a jump was applied — the
|
|
251
|
-
* grounded flag is still stale-true then and would clobber the jump.
|
|
252
|
-
*/
|
|
253
|
-
private applyGravity;
|
|
254
|
-
/**
|
|
255
|
-
* Update entity state from the controller's grounded result.
|
|
256
|
-
*/
|
|
257
|
-
private updateState;
|
|
258
|
-
/**
|
|
259
|
-
* Update one platformer entity. Invoked per linked entity by the
|
|
260
|
-
* Platformer3DBehaviorSystem adapter.
|
|
261
|
-
*/
|
|
262
|
-
updateEntity(entity: Platformer3DEntity, delta: number): void;
|
|
263
|
-
destroy(): void;
|
|
264
|
-
}
|
|
265
|
-
|
|
266
191
|
/**
|
|
267
192
|
* Platformer behavior options (typed for entity.use() autocomplete)
|
|
268
193
|
*/
|
|
@@ -291,6 +216,16 @@ interface Platformer3DBehaviorOptions {
|
|
|
291
216
|
/** Character controller collision offset (default: 0.05) */
|
|
292
217
|
characterOffset?: number;
|
|
293
218
|
}
|
|
219
|
+
/**
|
|
220
|
+
* Entity with platformer components (input written by the game; the wasm
|
|
221
|
+
* runtime owns the kinematic character controller and FSM).
|
|
222
|
+
*/
|
|
223
|
+
interface Platformer3DEntity {
|
|
224
|
+
uuid: string;
|
|
225
|
+
platformer: Platformer3DMovementComponent;
|
|
226
|
+
$platformer: Platformer3DInputComponent;
|
|
227
|
+
platformerState: Platformer3DStateComponent;
|
|
228
|
+
}
|
|
294
229
|
/**
|
|
295
230
|
* Platformer3DBehavior - typed descriptor for 3D platformer movement
|
|
296
231
|
*
|
|
@@ -331,4 +266,4 @@ declare const Platformer3DBehavior: BehaviorDescriptor<Platformer3DBehaviorOptio
|
|
|
331
266
|
onPlatformCollision: (ctx: PlatformerCollisionContext) => void;
|
|
332
267
|
}, Platformer3DEntity>;
|
|
333
268
|
|
|
334
|
-
export { Platformer3DBehavior, type Platformer3DBehaviorOptions, type Platformer3DContext, type Platformer3DEntity, Platformer3DEvent, Platformer3DFSM, type Platformer3DInputComponent, type Platformer3DMovementComponent, Platformer3DState, type Platformer3DStateComponent,
|
|
269
|
+
export { Platformer3DBehavior, type Platformer3DBehaviorOptions, type Platformer3DContext, type Platformer3DEntity, Platformer3DEvent, Platformer3DFSM, type Platformer3DInputComponent, type Platformer3DMovementComponent, Platformer3DState, type Platformer3DStateComponent, type PlatformerCollisionContext, createPlatformer3DInputComponent, createPlatformer3DMovementComponent, createPlatformer3DStateComponent };
|
package/dist/platformer-3d.js
CHANGED
|
@@ -3,19 +3,19 @@ import {
|
|
|
3
3
|
Platformer3DEvent,
|
|
4
4
|
Platformer3DFSM,
|
|
5
5
|
Platformer3DState,
|
|
6
|
-
Platformer3DSystem,
|
|
7
6
|
createPlatformer3DInputComponent,
|
|
8
7
|
createPlatformer3DMovementComponent,
|
|
9
8
|
createPlatformer3DStateComponent
|
|
10
|
-
} from "./chunk-
|
|
11
|
-
import "./chunk-
|
|
9
|
+
} from "./chunk-W26PHBME.js";
|
|
10
|
+
import "./chunk-AS3HR7AS.js";
|
|
11
|
+
import "./chunk-E4X4YJZB.js";
|
|
12
12
|
import "./chunk-EZNCCO4L.js";
|
|
13
|
+
import "./chunk-5WRI5ZAA.js";
|
|
13
14
|
export {
|
|
14
15
|
Platformer3DBehavior,
|
|
15
16
|
Platformer3DEvent,
|
|
16
17
|
Platformer3DFSM,
|
|
17
18
|
Platformer3DState,
|
|
18
|
-
Platformer3DSystem,
|
|
19
19
|
createPlatformer3DInputComponent,
|
|
20
20
|
createPlatformer3DMovementComponent,
|
|
21
21
|
createPlatformer3DStateComponent
|
package/dist/ricochet-2d.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { B as BaseEntityInterface } from './entity-types-
|
|
1
|
+
import { B as BaseEntityInterface } from './entity-types-DhfsZbSK.js';
|
|
2
2
|
import { S as SyncStateMachine } from './sync-state-machine-CZyspBpj.js';
|
|
3
|
-
import { a as BehaviorDescriptor } from './behavior-system-
|
|
3
|
+
import { a as BehaviorDescriptor } from './behavior-system-CeJXzNvr.js';
|
|
4
4
|
import 'three';
|
|
5
|
-
import '@dimforge/rapier3d-compat';
|
|
6
5
|
import 'typescript-fsm';
|
|
6
|
+
import '@zylem/runtime';
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
9
|
* Ricochet2DFSM
|
package/dist/ricochet-2d.js
CHANGED
|
@@ -3,10 +3,11 @@ import {
|
|
|
3
3
|
Ricochet2DEvent,
|
|
4
4
|
Ricochet2DFSM,
|
|
5
5
|
Ricochet2DState
|
|
6
|
-
} from "./chunk-
|
|
7
|
-
import "./chunk-
|
|
8
|
-
import "./chunk-
|
|
6
|
+
} from "./chunk-KOWGILCN.js";
|
|
7
|
+
import "./chunk-AS3HR7AS.js";
|
|
8
|
+
import "./chunk-E4X4YJZB.js";
|
|
9
9
|
import "./chunk-EZNCCO4L.js";
|
|
10
|
+
import "./chunk-5WRI5ZAA.js";
|
|
10
11
|
export {
|
|
11
12
|
Ricochet2DBehavior,
|
|
12
13
|
Ricochet2DEvent,
|
package/dist/ricochet-3d.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { S as SyncStateMachine } from './sync-state-machine-CZyspBpj.js';
|
|
2
|
-
import { B as BaseEntityInterface } from './entity-types-
|
|
3
|
-
import { a as BehaviorDescriptor } from './behavior-system-
|
|
2
|
+
import { B as BaseEntityInterface } from './entity-types-DhfsZbSK.js';
|
|
3
|
+
import { a as BehaviorDescriptor } from './behavior-system-CeJXzNvr.js';
|
|
4
4
|
import 'typescript-fsm';
|
|
5
5
|
import 'three';
|
|
6
|
-
import '@
|
|
6
|
+
import '@zylem/runtime';
|
|
7
7
|
|
|
8
8
|
interface Ricochet3DResult {
|
|
9
9
|
velocity: {
|
package/dist/ricochet-3d.js
CHANGED
|
@@ -3,10 +3,11 @@ import {
|
|
|
3
3
|
Ricochet3DEvent,
|
|
4
4
|
Ricochet3DFSM,
|
|
5
5
|
Ricochet3DState
|
|
6
|
-
} from "./chunk-
|
|
7
|
-
import "./chunk-
|
|
8
|
-
import "./chunk-
|
|
6
|
+
} from "./chunk-5UMCWV5A.js";
|
|
7
|
+
import "./chunk-AS3HR7AS.js";
|
|
8
|
+
import "./chunk-E4X4YJZB.js";
|
|
9
9
|
import "./chunk-EZNCCO4L.js";
|
|
10
|
+
import "./chunk-5WRI5ZAA.js";
|
|
10
11
|
export {
|
|
11
12
|
Ricochet3DBehavior,
|
|
12
13
|
Ricochet3DEvent,
|
package/dist/runtime-2d.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { a as BehaviorDescriptor, d as BehaviorRef } from './behavior-system-
|
|
2
|
-
import '@
|
|
1
|
+
import { a as BehaviorDescriptor, d as BehaviorRef } from './behavior-system-CeJXzNvr.js';
|
|
2
|
+
import '@zylem/runtime';
|
|
3
3
|
|
|
4
4
|
interface RuntimeDynamicCircleBody2DOptions {
|
|
5
5
|
initialVelocity: readonly [number, number];
|
package/dist/runtime-2d.js
CHANGED
package/dist/runtime-2d.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/lib/behaviors/runtime-2d/runtime-2d.descriptor.ts"],"sourcesContent":["/**\n * Runtime 2D Behavior Descriptors\n *\n * Marker descriptors for entities managed entirely by the wasm gameplay-2d\n * runtime (paddle-and-ball style games, boundaries, trigger regions, goal\n * zones). The descriptors carry configuration and event wiring only — all\n * per-frame simulation happens inside the wasm runtime, so their systems are\n * no-ops. The host runtime binds concrete callbacks onto the behavior refs\n * (see {@link bindRuntimeDynamicCircleBody2DHandle} and the emit helpers).\n */\n\nimport {\n\tdefineBehavior,\n\ttype BehaviorRef,\n} from '../behavior-descriptor';\nimport type { BehaviorSystem } from '../behavior-system';\n\nexport interface RuntimeDynamicCircleBody2DOptions {\n\tinitialVelocity: readonly [number, number];\n}\n\nexport interface RuntimeDynamicCircleBody2DHandle {\n\tsetRuntimePosition(x: number, y: number, z?: number): void;\n\tsetRuntimeVelocity(x: number, y: number): void;\n\tgetRuntimePosition(): { x: number; y: number; z: number } | null;\n}\n\nexport interface RuntimePlayerInput2DOptions {\n\tplayer: 'p1' | 'p2';\n\tspeed: number;\n}\n\nexport interface RuntimeBoundary2DOptions {\n\tboundaries: {\n\t\tleft: number;\n\t\tright: number;\n\t\tbottom: number;\n\t\ttop: number;\n\t};\n}\n\nexport interface RuntimeRicochet2DOptions {\n\tminSpeed: number;\n\tmaxSpeed: number;\n\tspeedMultiplier: number;\n\treflectionMode: 'simple' | 'angled';\n\tmaxAngleDeg: number;\n}\n\nexport interface RuntimeRicochet2DEvent {\n\tkind: 'wall' | 'paddle';\n}\n\nexport interface RuntimeRicochet2DHandle {\n\tonRicochet(callback: (event: RuntimeRicochet2DEvent) => void): () => void;\n}\n\n/** Registers a gameplay2d trigger AABB (sensor); wasm reports overlap via {@link emitRuntimeTriggerRegionEnter}. */\nexport interface RuntimeTriggerRegion2DOptions {\n\ttriggerId: number;\n\thalfExtents: readonly [number, number];\n}\n\nexport interface RuntimeTriggerRegion2DEvent {\n\ttriggerId: number;\n}\n\nexport interface RuntimeTriggerRegion2DHandle {\n\tonRegionEnter(callback: (event: RuntimeTriggerRegion2DEvent) => void): () => void;\n}\n\nexport interface RuntimeGoalZone2DOptions {\n\tscorer: 'p1' | 'p2';\n}\n\nexport interface RuntimeGoalZone2DEvent {\n\tscorer: 'p1' | 'p2';\n}\n\nexport interface RuntimeGoalZone2DHandle {\n\tonGoal(callback: (event: RuntimeGoalZone2DEvent) => void): () => void;\n}\n\nconst runtimeNoopSystemFactory = (): BehaviorSystem => ({\n\tupdate(_ecs: unknown, _delta: number) {},\n});\n\nexport const RUNTIME_DYNAMIC_CIRCLE_BODY_2D_BEHAVIOR_KEY = Symbol.for('zylem:behavior:runtime-dynamic-circle-body-2d');\nexport const RUNTIME_PLAYER_INPUT_2D_BEHAVIOR_KEY = Symbol.for('zylem:behavior:runtime-player-input-2d');\nexport const RUNTIME_BOUNDARY_2D_BEHAVIOR_KEY = Symbol.for('zylem:behavior:runtime-boundary-2d');\nexport const RUNTIME_RICOCHET_2D_BEHAVIOR_KEY = Symbol.for('zylem:behavior:runtime-ricochet-2d');\nexport const RUNTIME_TRIGGER_REGION_2D_BEHAVIOR_KEY = Symbol.for('zylem:behavior:runtime-trigger-region-2d');\nexport const RUNTIME_GOAL_ZONE_2D_BEHAVIOR_KEY = Symbol.for('zylem:behavior:runtime-goal-zone-2d');\n\nconst RICOCHET_LISTENERS = Symbol('runtime-ricochet-listeners');\nconst TRIGGER_REGION_LISTENERS = Symbol('runtime-trigger-region-listeners');\nconst GOAL_LISTENERS = Symbol('runtime-goal-listeners');\nconst CIRCLE_BODY_SET_POSITION = Symbol('runtime-circle-body-set-position');\nconst CIRCLE_BODY_SET_VELOCITY = Symbol('runtime-circle-body-set-velocity');\nconst CIRCLE_BODY_GET_POSITION = Symbol('runtime-circle-body-get-position');\n\nfunction getListeners<E>(ref: BehaviorRef<any>, slot: symbol): Array<(event: E) => void> {\n\tlet listeners = (ref as any)[slot] as Array<(event: E) => void> | undefined;\n\tif (!listeners) {\n\t\tlisteners = [];\n\t\t(ref as any)[slot] = listeners;\n\t}\n\treturn listeners;\n}\n\nfunction addListener<E>(ref: BehaviorRef<any>, slot: symbol, callback: (event: E) => void): () => void {\n\tconst listeners = getListeners<E>(ref, slot);\n\tlisteners.push(callback);\n\treturn () => {\n\t\tconst index = listeners.indexOf(callback);\n\t\tif (index >= 0) {\n\t\t\tlisteners.splice(index, 1);\n\t\t}\n\t};\n}\n\nfunction emit<E>(ref: BehaviorRef<any>, slot: symbol, event: E): void {\n\tconst listeners = (ref as any)[slot] as Array<(event: E) => void> | undefined;\n\tif (!listeners) return;\n\tfor (const listener of listeners) {\n\t\tlistener(event);\n\t}\n}\n\nexport const RuntimeDynamicCircleBody2DBehavior = defineBehavior<\n\tRuntimeDynamicCircleBody2DOptions,\n\tRuntimeDynamicCircleBody2DHandle\n>({\n\tname: 'runtime-dynamic-circle-body-2d',\n\tdefaultOptions: {\n\t\tinitialVelocity: [0, 0] as [number, number],\n\t},\n\tsystemFactory: runtimeNoopSystemFactory,\n\tcreateHandle: (ref: BehaviorRef<RuntimeDynamicCircleBody2DOptions>) => ({\n\t\tsetRuntimePosition(x: number, y: number, z: number = 0): void {\n\t\t\tconst callback = (ref as any)[CIRCLE_BODY_SET_POSITION] as\n\t\t\t\t| ((x: number, y: number, z: number) => void)\n\t\t\t\t| undefined;\n\t\t\tcallback?.(x, y, z);\n\t\t},\n\t\tsetRuntimeVelocity(x: number, y: number): void {\n\t\t\tconst callback = (ref as any)[CIRCLE_BODY_SET_VELOCITY] as\n\t\t\t\t| ((x: number, y: number) => void)\n\t\t\t\t| undefined;\n\t\t\tcallback?.(x, y);\n\t\t},\n\t\tgetRuntimePosition(): { x: number; y: number; z: number } | null {\n\t\t\tconst callback = (ref as any)[CIRCLE_BODY_GET_POSITION] as\n\t\t\t\t| (() => { x: number; y: number; z: number } | null)\n\t\t\t\t| undefined;\n\t\t\treturn callback?.() ?? null;\n\t\t},\n\t}),\n});\n\nexport const RuntimePlayerInput2DBehavior = defineBehavior<RuntimePlayerInput2DOptions>({\n\tname: 'runtime-player-input-2d',\n\tdefaultOptions: {\n\t\tplayer: 'p1',\n\t\tspeed: 5,\n\t} as RuntimePlayerInput2DOptions,\n\tsystemFactory: runtimeNoopSystemFactory,\n});\n\nexport const RuntimeBoundary2DBehavior = defineBehavior({\n\tname: 'runtime-boundary-2d',\n\tdefaultOptions: {\n\t\tboundaries: {\n\t\t\tleft: 0,\n\t\t\tright: 0,\n\t\t\tbottom: 0,\n\t\t\ttop: 0,\n\t\t},\n\t},\n\tsystemFactory: runtimeNoopSystemFactory,\n});\n\nexport const RuntimeRicochet2DBehavior = defineBehavior<\n\tRuntimeRicochet2DOptions,\n\tRuntimeRicochet2DHandle\n>({\n\tname: 'runtime-ricochet-2d',\n\tdefaultOptions: {\n\t\tminSpeed: 2,\n\t\tmaxSpeed: 20,\n\t\tspeedMultiplier: 1.05,\n\t\treflectionMode: 'angled' as const,\n\t\tmaxAngleDeg: 60,\n\t},\n\tsystemFactory: runtimeNoopSystemFactory,\n\tcreateHandle: (ref: BehaviorRef<RuntimeRicochet2DOptions>) => ({\n\t\tonRicochet: (callback: (event: RuntimeRicochet2DEvent) => void) =>\n\t\t\taddListener(ref, RICOCHET_LISTENERS, callback),\n\t}),\n});\n\nexport const RuntimeTriggerRegion2DBehavior = defineBehavior<\n\tRuntimeTriggerRegion2DOptions,\n\tRuntimeTriggerRegion2DHandle\n>({\n\tname: 'runtime-trigger-region-2d',\n\tdefaultOptions: {\n\t\ttriggerId: 0,\n\t\thalfExtents: [0.5, 2.5] as [number, number],\n\t},\n\tsystemFactory: runtimeNoopSystemFactory,\n\tcreateHandle: (ref: BehaviorRef<RuntimeTriggerRegion2DOptions>) => ({\n\t\tonRegionEnter: (callback: (event: RuntimeTriggerRegion2DEvent) => void) =>\n\t\t\taddListener(ref, TRIGGER_REGION_LISTENERS, callback),\n\t}),\n});\n\nexport const RuntimeGoalZone2DBehavior = defineBehavior<\n\tRuntimeGoalZone2DOptions,\n\tRuntimeGoalZone2DHandle\n>({\n\tname: 'runtime-goal-zone-2d',\n\tdefaultOptions: {\n\t\tscorer: 'p1',\n\t} as RuntimeGoalZone2DOptions,\n\tsystemFactory: runtimeNoopSystemFactory,\n\tcreateHandle: (ref: BehaviorRef<RuntimeGoalZone2DOptions>) => ({\n\t\tonGoal: (callback: (event: RuntimeGoalZone2DEvent) => void) =>\n\t\t\taddListener(ref, GOAL_LISTENERS, callback),\n\t}),\n});\n\nexport function emitRuntimeRicochet(\n\tref: BehaviorRef<RuntimeRicochet2DOptions>,\n\tevent: RuntimeRicochet2DEvent,\n): void {\n\temit(ref, RICOCHET_LISTENERS, event);\n}\n\nexport function emitRuntimeTriggerRegionEnter(\n\tref: BehaviorRef<RuntimeTriggerRegion2DOptions>,\n\tevent: RuntimeTriggerRegion2DEvent,\n): void {\n\temit(ref, TRIGGER_REGION_LISTENERS, event);\n}\n\nexport function emitRuntimeGoal(\n\tref: BehaviorRef<RuntimeGoalZone2DOptions>,\n\tevent: RuntimeGoalZone2DEvent,\n): void {\n\temit(ref, GOAL_LISTENERS, event);\n}\n\nexport function bindRuntimeDynamicCircleBody2DHandle(\n\tref: BehaviorRef<RuntimeDynamicCircleBody2DOptions>,\n\tcontrols: {\n\t\tsetPosition: (x: number, y: number, z: number) => void;\n\t\tsetVelocity: (x: number, y: number) => void;\n\t\tgetPosition: () => { x: number; y: number; z: number } | null;\n\t},\n): void {\n\t(ref as any)[CIRCLE_BODY_SET_POSITION] = controls.setPosition;\n\t(ref as any)[CIRCLE_BODY_SET_VELOCITY] = controls.setVelocity;\n\t(ref as any)[CIRCLE_BODY_GET_POSITION] = controls.getPosition;\n}\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":["../src/lib/behaviors/runtime-2d/runtime-2d.descriptor.ts"],"sourcesContent":["/**\n * Runtime 2D Behavior Descriptors\n *\n * Marker descriptors for entities managed entirely by the wasm gameplay-2d\n * runtime (paddle-and-ball style games, boundaries, trigger regions, goal\n * zones). The descriptors carry configuration and event wiring only — all\n * per-frame simulation happens inside the wasm runtime, so their systems are\n * no-ops. The host runtime binds concrete callbacks onto the behavior refs\n * (see {@link bindRuntimeDynamicCircleBody2DHandle} and the emit helpers).\n */\n\nimport {\n\tdefineBehavior,\n\ttype BehaviorRef,\n} from '../behavior-descriptor';\nimport type { BehaviorSystem } from '../behavior-system';\n\nexport interface RuntimeDynamicCircleBody2DOptions {\n\tinitialVelocity: readonly [number, number];\n}\n\nexport interface RuntimeDynamicCircleBody2DHandle {\n\tsetRuntimePosition(x: number, y: number, z?: number): void;\n\tsetRuntimeVelocity(x: number, y: number): void;\n\tgetRuntimePosition(): { x: number; y: number; z: number } | null;\n}\n\nexport interface RuntimePlayerInput2DOptions {\n\tplayer: 'p1' | 'p2';\n\tspeed: number;\n}\n\nexport interface RuntimeBoundary2DOptions {\n\tboundaries: {\n\t\tleft: number;\n\t\tright: number;\n\t\tbottom: number;\n\t\ttop: number;\n\t};\n}\n\nexport interface RuntimeRicochet2DOptions {\n\tminSpeed: number;\n\tmaxSpeed: number;\n\tspeedMultiplier: number;\n\treflectionMode: 'simple' | 'angled';\n\tmaxAngleDeg: number;\n}\n\nexport interface RuntimeRicochet2DEvent {\n\tkind: 'wall' | 'paddle';\n}\n\nexport interface RuntimeRicochet2DHandle {\n\tonRicochet(callback: (event: RuntimeRicochet2DEvent) => void): () => void;\n}\n\n/** Registers a gameplay2d trigger AABB (sensor); wasm reports overlap via {@link emitRuntimeTriggerRegionEnter}. */\nexport interface RuntimeTriggerRegion2DOptions {\n\ttriggerId: number;\n\thalfExtents: readonly [number, number];\n}\n\nexport interface RuntimeTriggerRegion2DEvent {\n\ttriggerId: number;\n}\n\nexport interface RuntimeTriggerRegion2DHandle {\n\tonRegionEnter(callback: (event: RuntimeTriggerRegion2DEvent) => void): () => void;\n}\n\nexport interface RuntimeGoalZone2DOptions {\n\tscorer: 'p1' | 'p2';\n}\n\nexport interface RuntimeGoalZone2DEvent {\n\tscorer: 'p1' | 'p2';\n}\n\nexport interface RuntimeGoalZone2DHandle {\n\tonGoal(callback: (event: RuntimeGoalZone2DEvent) => void): () => void;\n}\n\nconst runtimeNoopSystemFactory = (): BehaviorSystem => ({\n\tupdate(_ecs: unknown, _delta: number) {},\n});\n\nexport const RUNTIME_DYNAMIC_CIRCLE_BODY_2D_BEHAVIOR_KEY = Symbol.for('zylem:behavior:runtime-dynamic-circle-body-2d');\nexport const RUNTIME_PLAYER_INPUT_2D_BEHAVIOR_KEY = Symbol.for('zylem:behavior:runtime-player-input-2d');\nexport const RUNTIME_BOUNDARY_2D_BEHAVIOR_KEY = Symbol.for('zylem:behavior:runtime-boundary-2d');\nexport const RUNTIME_RICOCHET_2D_BEHAVIOR_KEY = Symbol.for('zylem:behavior:runtime-ricochet-2d');\nexport const RUNTIME_TRIGGER_REGION_2D_BEHAVIOR_KEY = Symbol.for('zylem:behavior:runtime-trigger-region-2d');\nexport const RUNTIME_GOAL_ZONE_2D_BEHAVIOR_KEY = Symbol.for('zylem:behavior:runtime-goal-zone-2d');\n\nconst RICOCHET_LISTENERS = Symbol('runtime-ricochet-listeners');\nconst TRIGGER_REGION_LISTENERS = Symbol('runtime-trigger-region-listeners');\nconst GOAL_LISTENERS = Symbol('runtime-goal-listeners');\nconst CIRCLE_BODY_SET_POSITION = Symbol('runtime-circle-body-set-position');\nconst CIRCLE_BODY_SET_VELOCITY = Symbol('runtime-circle-body-set-velocity');\nconst CIRCLE_BODY_GET_POSITION = Symbol('runtime-circle-body-get-position');\n\nfunction getListeners<E>(ref: BehaviorRef<any>, slot: symbol): Array<(event: E) => void> {\n\tlet listeners = (ref as any)[slot] as Array<(event: E) => void> | undefined;\n\tif (!listeners) {\n\t\tlisteners = [];\n\t\t(ref as any)[slot] = listeners;\n\t}\n\treturn listeners;\n}\n\nfunction addListener<E>(ref: BehaviorRef<any>, slot: symbol, callback: (event: E) => void): () => void {\n\tconst listeners = getListeners<E>(ref, slot);\n\tlisteners.push(callback);\n\treturn () => {\n\t\tconst index = listeners.indexOf(callback);\n\t\tif (index >= 0) {\n\t\t\tlisteners.splice(index, 1);\n\t\t}\n\t};\n}\n\nfunction emit<E>(ref: BehaviorRef<any>, slot: symbol, event: E): void {\n\tconst listeners = (ref as any)[slot] as Array<(event: E) => void> | undefined;\n\tif (!listeners) return;\n\tfor (const listener of listeners) {\n\t\tlistener(event);\n\t}\n}\n\nexport const RuntimeDynamicCircleBody2DBehavior = defineBehavior<\n\tRuntimeDynamicCircleBody2DOptions,\n\tRuntimeDynamicCircleBody2DHandle\n>({\n\tname: 'runtime-dynamic-circle-body-2d',\n\tdefaultOptions: {\n\t\tinitialVelocity: [0, 0] as [number, number],\n\t},\n\tsystemFactory: runtimeNoopSystemFactory,\n\tcreateHandle: (ref: BehaviorRef<RuntimeDynamicCircleBody2DOptions>) => ({\n\t\tsetRuntimePosition(x: number, y: number, z: number = 0): void {\n\t\t\tconst callback = (ref as any)[CIRCLE_BODY_SET_POSITION] as\n\t\t\t\t| ((x: number, y: number, z: number) => void)\n\t\t\t\t| undefined;\n\t\t\tcallback?.(x, y, z);\n\t\t},\n\t\tsetRuntimeVelocity(x: number, y: number): void {\n\t\t\tconst callback = (ref as any)[CIRCLE_BODY_SET_VELOCITY] as\n\t\t\t\t| ((x: number, y: number) => void)\n\t\t\t\t| undefined;\n\t\t\tcallback?.(x, y);\n\t\t},\n\t\tgetRuntimePosition(): { x: number; y: number; z: number } | null {\n\t\t\tconst callback = (ref as any)[CIRCLE_BODY_GET_POSITION] as\n\t\t\t\t| (() => { x: number; y: number; z: number } | null)\n\t\t\t\t| undefined;\n\t\t\treturn callback?.() ?? null;\n\t\t},\n\t}),\n});\n\nexport const RuntimePlayerInput2DBehavior = defineBehavior<RuntimePlayerInput2DOptions>({\n\tname: 'runtime-player-input-2d',\n\tdefaultOptions: {\n\t\tplayer: 'p1',\n\t\tspeed: 5,\n\t} as RuntimePlayerInput2DOptions,\n\tsystemFactory: runtimeNoopSystemFactory,\n});\n\nexport const RuntimeBoundary2DBehavior = defineBehavior({\n\tname: 'runtime-boundary-2d',\n\tdefaultOptions: {\n\t\tboundaries: {\n\t\t\tleft: 0,\n\t\t\tright: 0,\n\t\t\tbottom: 0,\n\t\t\ttop: 0,\n\t\t},\n\t},\n\tsystemFactory: runtimeNoopSystemFactory,\n});\n\nexport const RuntimeRicochet2DBehavior = defineBehavior<\n\tRuntimeRicochet2DOptions,\n\tRuntimeRicochet2DHandle\n>({\n\tname: 'runtime-ricochet-2d',\n\tdefaultOptions: {\n\t\tminSpeed: 2,\n\t\tmaxSpeed: 20,\n\t\tspeedMultiplier: 1.05,\n\t\treflectionMode: 'angled' as const,\n\t\tmaxAngleDeg: 60,\n\t},\n\tsystemFactory: runtimeNoopSystemFactory,\n\tcreateHandle: (ref: BehaviorRef<RuntimeRicochet2DOptions>) => ({\n\t\tonRicochet: (callback: (event: RuntimeRicochet2DEvent) => void) =>\n\t\t\taddListener(ref, RICOCHET_LISTENERS, callback),\n\t}),\n});\n\nexport const RuntimeTriggerRegion2DBehavior = defineBehavior<\n\tRuntimeTriggerRegion2DOptions,\n\tRuntimeTriggerRegion2DHandle\n>({\n\tname: 'runtime-trigger-region-2d',\n\tdefaultOptions: {\n\t\ttriggerId: 0,\n\t\thalfExtents: [0.5, 2.5] as [number, number],\n\t},\n\tsystemFactory: runtimeNoopSystemFactory,\n\tcreateHandle: (ref: BehaviorRef<RuntimeTriggerRegion2DOptions>) => ({\n\t\tonRegionEnter: (callback: (event: RuntimeTriggerRegion2DEvent) => void) =>\n\t\t\taddListener(ref, TRIGGER_REGION_LISTENERS, callback),\n\t}),\n});\n\nexport const RuntimeGoalZone2DBehavior = defineBehavior<\n\tRuntimeGoalZone2DOptions,\n\tRuntimeGoalZone2DHandle\n>({\n\tname: 'runtime-goal-zone-2d',\n\tdefaultOptions: {\n\t\tscorer: 'p1',\n\t} as RuntimeGoalZone2DOptions,\n\tsystemFactory: runtimeNoopSystemFactory,\n\tcreateHandle: (ref: BehaviorRef<RuntimeGoalZone2DOptions>) => ({\n\t\tonGoal: (callback: (event: RuntimeGoalZone2DEvent) => void) =>\n\t\t\taddListener(ref, GOAL_LISTENERS, callback),\n\t}),\n});\n\nexport function emitRuntimeRicochet(\n\tref: BehaviorRef<RuntimeRicochet2DOptions>,\n\tevent: RuntimeRicochet2DEvent,\n): void {\n\temit(ref, RICOCHET_LISTENERS, event);\n}\n\nexport function emitRuntimeTriggerRegionEnter(\n\tref: BehaviorRef<RuntimeTriggerRegion2DOptions>,\n\tevent: RuntimeTriggerRegion2DEvent,\n): void {\n\temit(ref, TRIGGER_REGION_LISTENERS, event);\n}\n\nexport function emitRuntimeGoal(\n\tref: BehaviorRef<RuntimeGoalZone2DOptions>,\n\tevent: RuntimeGoalZone2DEvent,\n): void {\n\temit(ref, GOAL_LISTENERS, event);\n}\n\nexport function bindRuntimeDynamicCircleBody2DHandle(\n\tref: BehaviorRef<RuntimeDynamicCircleBody2DOptions>,\n\tcontrols: {\n\t\tsetPosition: (x: number, y: number, z: number) => void;\n\t\tsetVelocity: (x: number, y: number) => void;\n\t\tgetPosition: () => { x: number; y: number; z: number } | null;\n\t},\n): void {\n\t(ref as any)[CIRCLE_BODY_SET_POSITION] = controls.setPosition;\n\t(ref as any)[CIRCLE_BODY_SET_VELOCITY] = controls.setVelocity;\n\t(ref as any)[CIRCLE_BODY_GET_POSITION] = controls.getPosition;\n}\n"],"mappings":"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","names":[]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { a as BehaviorDescriptor, G as GameEntity } from './behavior-system-
|
|
2
|
-
import '@
|
|
1
|
+
import { a as BehaviorDescriptor, G as GameEntity } from './behavior-system-CeJXzNvr.js';
|
|
2
|
+
import '@zylem/runtime';
|
|
3
3
|
|
|
4
4
|
interface ScreenVisibilitySnapshot {
|
|
5
5
|
initialized: boolean;
|
package/dist/screen-wrap.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { a as BehaviorDescriptor } from './behavior-system-
|
|
1
|
+
import { a as BehaviorDescriptor } from './behavior-system-CeJXzNvr.js';
|
|
2
2
|
import { S as SyncStateMachine } from './sync-state-machine-CZyspBpj.js';
|
|
3
|
-
import '@
|
|
3
|
+
import '@zylem/runtime';
|
|
4
4
|
import 'typescript-fsm';
|
|
5
5
|
|
|
6
6
|
/**
|
package/dist/screen-wrap.js
CHANGED
|
@@ -3,10 +3,11 @@ import {
|
|
|
3
3
|
ScreenWrapEvent,
|
|
4
4
|
ScreenWrapFSM,
|
|
5
5
|
ScreenWrapState
|
|
6
|
-
} from "./chunk-
|
|
7
|
-
import "./chunk-
|
|
8
|
-
import "./chunk-
|
|
6
|
+
} from "./chunk-2PAHQZZD.js";
|
|
7
|
+
import "./chunk-OPZ2LVS2.js";
|
|
8
|
+
import "./chunk-AS3HR7AS.js";
|
|
9
9
|
import "./chunk-EZNCCO4L.js";
|
|
10
|
+
import "./chunk-5WRI5ZAA.js";
|
|
10
11
|
export {
|
|
11
12
|
ScreenWrapBehavior,
|
|
12
13
|
ScreenWrapEvent,
|
package/dist/shooter-2d.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { a as BehaviorDescriptor } from './behavior-system-
|
|
2
|
-
import { i as Vec3Input } from './vector-
|
|
3
|
-
import '@
|
|
1
|
+
import { a as BehaviorDescriptor } from './behavior-system-CeJXzNvr.js';
|
|
2
|
+
import { i as Vec3Input } from './vector-DjhLUrak.js';
|
|
3
|
+
import '@zylem/runtime';
|
|
4
4
|
import 'three';
|
|
5
5
|
|
|
6
6
|
interface Shooter2DStateComponent {
|
package/dist/shooter-2d.js
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
Shooter2DBehavior,
|
|
3
3
|
createShooter2DStateComponent
|
|
4
|
-
} from "./chunk-
|
|
5
|
-
import "./chunk-
|
|
6
|
-
import "./chunk-
|
|
4
|
+
} from "./chunk-PLIXVF7B.js";
|
|
5
|
+
import "./chunk-SGHIGTVZ.js";
|
|
6
|
+
import "./chunk-M3QDKKDF.js";
|
|
7
7
|
import "./chunk-EZNCCO4L.js";
|
|
8
|
+
import "./chunk-5WRI5ZAA.js";
|
|
8
9
|
export {
|
|
9
10
|
Shooter2DBehavior,
|
|
10
11
|
createShooter2DStateComponent
|
package/dist/thruster.d.ts
CHANGED
|
@@ -1,11 +1,9 @@
|
|
|
1
1
|
import { T as ThrusterInputComponent, a as ThrusterMovementComponent } from './components-B29WHGQN.js';
|
|
2
2
|
export { b as ThrusterStateComponent, c as createThrusterInputComponent, d as createThrusterMovementComponent, e as createThrusterStateComponent } from './components-B29WHGQN.js';
|
|
3
3
|
import { S as SyncStateMachine } from './sync-state-machine-CZyspBpj.js';
|
|
4
|
-
import {
|
|
5
|
-
import { P as PhysicsBodyComponent } from './components-BWG1GkZA.js';
|
|
4
|
+
import { a as BehaviorDescriptor } from './behavior-system-CeJXzNvr.js';
|
|
6
5
|
import 'typescript-fsm';
|
|
7
|
-
import '@
|
|
8
|
-
import 'three';
|
|
6
|
+
import '@zylem/runtime';
|
|
9
7
|
|
|
10
8
|
/**
|
|
11
9
|
* ThrusterFSM
|
|
@@ -61,38 +59,13 @@ declare class ThrusterFSM {
|
|
|
61
59
|
}
|
|
62
60
|
|
|
63
61
|
/**
|
|
64
|
-
*
|
|
65
|
-
*
|
|
66
|
-
* This is the heart of the thruster movement system - a pure, stateless force generator.
|
|
67
|
-
* Works identically for player, AI, and replay.
|
|
68
|
-
*/
|
|
69
|
-
|
|
70
|
-
/**
|
|
71
|
-
* Entity with thruster components
|
|
62
|
+
* Entity with thruster components (input written by the game, state owned by
|
|
63
|
+
* the wasm runtime).
|
|
72
64
|
*/
|
|
73
65
|
interface ThrusterEntity {
|
|
74
|
-
physics: PhysicsBodyComponent;
|
|
75
66
|
thruster: ThrusterMovementComponent;
|
|
76
67
|
$thruster: ThrusterInputComponent;
|
|
77
68
|
}
|
|
78
|
-
/**
|
|
79
|
-
* ThrusterSystem - Force generator for thruster-equipped entities
|
|
80
|
-
*
|
|
81
|
-
* Responsibilities:
|
|
82
|
-
* - Query entities with PhysicsBody, ThrusterMovement, and ThrusterInput components
|
|
83
|
-
* - Apply velocities based on thrust input (2D mode)
|
|
84
|
-
* - Apply angular velocity based on rotation input
|
|
85
|
-
*/
|
|
86
|
-
declare class ThrusterSystem {
|
|
87
|
-
private world;
|
|
88
|
-
constructor(world: ZylemWorld | null);
|
|
89
|
-
/**
|
|
90
|
-
* Update a single thruster-enabled entity.
|
|
91
|
-
*/
|
|
92
|
-
updateEntity(gameEntity: any, _dt: number): void;
|
|
93
|
-
update(dt: number): void;
|
|
94
|
-
}
|
|
95
|
-
|
|
96
69
|
/**
|
|
97
70
|
* Thruster behavior options (typed for entity.use() autocomplete)
|
|
98
71
|
*/
|
|
@@ -107,8 +80,6 @@ interface ThrusterBehaviorOptions {
|
|
|
107
80
|
/**
|
|
108
81
|
* ThrusterBehavior - typed descriptor for thruster movement.
|
|
109
82
|
*
|
|
110
|
-
* Uses the existing ThrusterSystem under the hood.
|
|
111
|
-
*
|
|
112
83
|
* @example
|
|
113
84
|
* ```typescript
|
|
114
85
|
* import { ThrusterBehavior } from "@zylem/game-lib/behavior";
|
|
@@ -119,4 +90,4 @@ interface ThrusterBehaviorOptions {
|
|
|
119
90
|
*/
|
|
120
91
|
declare const ThrusterBehavior: BehaviorDescriptor<ThrusterBehaviorOptions, Record<string, never>, ThrusterEntity>;
|
|
121
92
|
|
|
122
|
-
export { type PlayerInput, ThrusterBehavior, type ThrusterBehaviorOptions, type ThrusterEntity, ThrusterEvent, ThrusterFSM, type ThrusterFSMContext, ThrusterInputComponent, ThrusterMovementComponent, ThrusterState
|
|
93
|
+
export { type PlayerInput, ThrusterBehavior, type ThrusterBehaviorOptions, type ThrusterEntity, ThrusterEvent, ThrusterFSM, type ThrusterFSMContext, ThrusterInputComponent, ThrusterMovementComponent, ThrusterState };
|
package/dist/thruster.js
CHANGED
|
@@ -2,23 +2,21 @@ import {
|
|
|
2
2
|
ThrusterBehavior,
|
|
3
3
|
ThrusterEvent,
|
|
4
4
|
ThrusterFSM,
|
|
5
|
-
ThrusterState
|
|
6
|
-
|
|
7
|
-
} from "./chunk-MJFMNRMZ.js";
|
|
5
|
+
ThrusterState
|
|
6
|
+
} from "./chunk-VFDUKGRZ.js";
|
|
8
7
|
import {
|
|
9
8
|
createThrusterInputComponent,
|
|
10
9
|
createThrusterMovementComponent,
|
|
11
10
|
createThrusterStateComponent
|
|
12
11
|
} from "./chunk-IZJFUAXB.js";
|
|
13
|
-
import "./chunk-
|
|
14
|
-
import "./chunk-4URF65BR.js";
|
|
12
|
+
import "./chunk-AS3HR7AS.js";
|
|
15
13
|
import "./chunk-EZNCCO4L.js";
|
|
14
|
+
import "./chunk-5WRI5ZAA.js";
|
|
16
15
|
export {
|
|
17
16
|
ThrusterBehavior,
|
|
18
17
|
ThrusterEvent,
|
|
19
18
|
ThrusterFSM,
|
|
20
19
|
ThrusterState,
|
|
21
|
-
ThrusterSystem,
|
|
22
20
|
createThrusterInputComponent,
|
|
23
21
|
createThrusterMovementComponent,
|
|
24
22
|
createThrusterStateComponent
|
|
@@ -1,43 +1,25 @@
|
|
|
1
1
|
import { T as TopDownMovementComponent, a as TopDownMovementInputComponent, b as TopDownMovementStateComponent } from './components-XCpL6IYt.js';
|
|
2
2
|
export { c as createTopDownMovementComponent, d as createTopDownMovementInputComponent, e as createTopDownMovementStateComponent } from './components-XCpL6IYt.js';
|
|
3
|
-
import { a as BehaviorDescriptor } from './behavior-system-
|
|
4
|
-
import '@
|
|
3
|
+
import { a as BehaviorDescriptor } from './behavior-system-CeJXzNvr.js';
|
|
4
|
+
import '@zylem/runtime';
|
|
5
5
|
|
|
6
|
+
/**
|
|
7
|
+
* Entity with top-down movement components (input written by the game,
|
|
8
|
+
* simulation owned by the wasm runtime).
|
|
9
|
+
*/
|
|
6
10
|
interface TopDownMovementEntity {
|
|
7
|
-
body: {
|
|
8
|
-
linvel(): {
|
|
9
|
-
x: number;
|
|
10
|
-
y: number;
|
|
11
|
-
z: number;
|
|
12
|
-
};
|
|
13
|
-
};
|
|
14
|
-
transformStore?: {
|
|
15
|
-
velocity: {
|
|
16
|
-
x: number;
|
|
17
|
-
y: number;
|
|
18
|
-
z: number;
|
|
19
|
-
};
|
|
20
|
-
dirty: {
|
|
21
|
-
velocityX: boolean;
|
|
22
|
-
velocityY: boolean;
|
|
23
|
-
velocityZ: boolean;
|
|
24
|
-
};
|
|
25
|
-
};
|
|
26
|
-
setRotationZ?: (angle: number) => void;
|
|
27
11
|
topDownMovement: TopDownMovementComponent;
|
|
28
12
|
$topDownMovement: TopDownMovementInputComponent;
|
|
29
13
|
topDownMovementState: TopDownMovementStateComponent;
|
|
30
14
|
}
|
|
31
|
-
declare class TopDownMovementSystem {
|
|
32
|
-
updateEntity(entity: TopDownMovementEntity, _delta: number): void;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
15
|
interface TopDownMovementBehaviorOptions {
|
|
36
16
|
moveSpeed?: number;
|
|
17
|
+
/** When true, WASM rotates toward velocity; default false for twin-stick face axes. */
|
|
18
|
+
faceMovement?: boolean;
|
|
37
19
|
}
|
|
38
20
|
interface TopDownMovementHandle {
|
|
39
21
|
getFacingAngle(): number;
|
|
40
22
|
}
|
|
41
23
|
declare const TopDownMovementBehavior: BehaviorDescriptor<TopDownMovementBehaviorOptions, TopDownMovementHandle, TopDownMovementEntity>;
|
|
42
24
|
|
|
43
|
-
export { TopDownMovementBehavior, type TopDownMovementBehaviorOptions, TopDownMovementComponent, type TopDownMovementEntity, type TopDownMovementHandle, TopDownMovementInputComponent, TopDownMovementStateComponent
|
|
25
|
+
export { TopDownMovementBehavior, type TopDownMovementBehaviorOptions, TopDownMovementComponent, type TopDownMovementEntity, type TopDownMovementHandle, TopDownMovementInputComponent, TopDownMovementStateComponent };
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
import {
|
|
2
|
-
TopDownMovementBehavior
|
|
3
|
-
|
|
4
|
-
} from "./chunk-64HKCSXD.js";
|
|
2
|
+
TopDownMovementBehavior
|
|
3
|
+
} from "./chunk-5EBIIYZD.js";
|
|
5
4
|
import {
|
|
6
5
|
createTopDownMovementComponent,
|
|
7
6
|
createTopDownMovementInputComponent,
|
|
8
7
|
createTopDownMovementStateComponent
|
|
9
8
|
} from "./chunk-EIWQM6U3.js";
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import "./chunk-
|
|
9
|
+
import "./chunk-TBUKJKY6.js";
|
|
10
|
+
import "./chunk-SGHIGTVZ.js";
|
|
11
|
+
import "./chunk-E4X4YJZB.js";
|
|
12
12
|
import "./chunk-EZNCCO4L.js";
|
|
13
|
+
import "./chunk-5WRI5ZAA.js";
|
|
13
14
|
export {
|
|
14
15
|
TopDownMovementBehavior,
|
|
15
|
-
TopDownMovementSystem,
|
|
16
16
|
createTopDownMovementComponent,
|
|
17
17
|
createTopDownMovementInputComponent,
|
|
18
18
|
createTopDownMovementStateComponent
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { Vector3, Vector2 } from 'three';
|
|
2
|
-
import { Vector3 as Vector3$1 } from '@dimforge/rapier3d-compat';
|
|
3
2
|
|
|
4
3
|
type Vec2 = Vector2;
|
|
5
|
-
type Vec3 = Vector3 |
|
|
4
|
+
type Vec3 = Vector3 | Vec3Components;
|
|
6
5
|
type Vec2Components = {
|
|
7
6
|
x: number;
|
|
8
7
|
y: number;
|
|
@@ -40,6 +39,5 @@ declare function normalizeVec2(input?: Vec2Input | null, defaults?: Vec2Input |
|
|
|
40
39
|
declare function normalizeVec3(input?: Vec3Input | null, defaults?: Vec3Input | Partial<Vec3Components>): Vec3Components;
|
|
41
40
|
declare function toThreeVector2(input?: Vec2Input | null, defaults?: Vec2Input | Partial<Vec2Components>): Vector2;
|
|
42
41
|
declare function toThreeVector3(input?: Vec3Input | null, defaults?: Vec3Input | Partial<Vec3Components>): Vector3;
|
|
43
|
-
declare function toRapierVector3(input?: Vec3Input | null, defaults?: Vec3Input | Partial<Vec3Components>): Vector3$1;
|
|
44
42
|
|
|
45
|
-
export { VEC2_ONE as V, VEC2_ZERO as a, VEC3_ONE as b, VEC3_ZERO as c, type Vec2 as d, type Vec2Components as e, type Vec2Input as f, type Vec3 as g, type Vec3Components as h, type Vec3Input as i, isVec2Input as j, isVec3Input as k, normalizeVec3 as l,
|
|
43
|
+
export { VEC2_ONE as V, VEC2_ZERO as a, VEC3_ONE as b, VEC3_ZERO as c, type Vec2 as d, type Vec2Components as e, type Vec2Input as f, type Vec3 as g, type Vec3Components as h, type Vec3Input as i, isVec2Input as j, isVec3Input as k, normalizeVec3 as l, toThreeVector3 as m, normalizeVec2 as n, toThreeVector2 as t };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { a as BehaviorDescriptor } from './behavior-system-
|
|
1
|
+
import { a as BehaviorDescriptor } from './behavior-system-CeJXzNvr.js';
|
|
2
2
|
import { S as SyncStateMachine } from './sync-state-machine-CZyspBpj.js';
|
|
3
|
-
import '@
|
|
3
|
+
import '@zylem/runtime';
|
|
4
4
|
import 'typescript-fsm';
|
|
5
5
|
|
|
6
6
|
/**
|
|
@@ -5,11 +5,12 @@ import {
|
|
|
5
5
|
WorldBoundary2DState,
|
|
6
6
|
computeWorldBoundary2DHits,
|
|
7
7
|
hasAnyWorldBoundary2DHit
|
|
8
|
-
} from "./chunk-
|
|
9
|
-
import "./chunk-
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import "./chunk-
|
|
8
|
+
} from "./chunk-F6ESSHQK.js";
|
|
9
|
+
import "./chunk-OPZ2LVS2.js";
|
|
10
|
+
import "./chunk-AS3HR7AS.js";
|
|
11
|
+
import "./chunk-E4X4YJZB.js";
|
|
12
12
|
import "./chunk-EZNCCO4L.js";
|
|
13
|
+
import "./chunk-5WRI5ZAA.js";
|
|
13
14
|
export {
|
|
14
15
|
WorldBoundary2DBehavior,
|
|
15
16
|
WorldBoundary2DEvent,
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { a as BehaviorDescriptor } from './behavior-system-
|
|
1
|
+
import { a as BehaviorDescriptor } from './behavior-system-CeJXzNvr.js';
|
|
2
2
|
import { S as SyncStateMachine } from './sync-state-machine-CZyspBpj.js';
|
|
3
|
-
import '@
|
|
3
|
+
import '@zylem/runtime';
|
|
4
4
|
import 'typescript-fsm';
|
|
5
5
|
|
|
6
6
|
interface Bounds3DPoint {
|
|
@@ -5,11 +5,12 @@ import {
|
|
|
5
5
|
WorldBoundary3DState,
|
|
6
6
|
computeWorldBoundary3DHits,
|
|
7
7
|
hasAnyWorldBoundary3DHit
|
|
8
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-AEBDZWCP.js";
|
|
9
9
|
import "./chunk-OHCPV2NT.js";
|
|
10
|
-
import "./chunk-
|
|
11
|
-
import "./chunk-
|
|
10
|
+
import "./chunk-AS3HR7AS.js";
|
|
11
|
+
import "./chunk-E4X4YJZB.js";
|
|
12
12
|
import "./chunk-EZNCCO4L.js";
|
|
13
|
+
import "./chunk-5WRI5ZAA.js";
|
|
13
14
|
export {
|
|
14
15
|
WorldBoundary3DBehavior,
|
|
15
16
|
WorldBoundary3DEvent,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zylem/behaviors",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "Tree-shakable Zylem behavior descriptors, systems, coordinators, and runtime-agnostic behavior helpers.",
|
|
6
6
|
"license": "MIT",
|
|
@@ -128,6 +128,7 @@
|
|
|
128
128
|
"./package.json": "./package.json"
|
|
129
129
|
},
|
|
130
130
|
"scripts": {
|
|
131
|
+
"zylem": "node --experimental-strip-types ./scripts/zylem-runner.ts",
|
|
131
132
|
"build": "tsup",
|
|
132
133
|
"dev": "tsup --watch",
|
|
133
134
|
"typecheck": "tsc --noEmit",
|
|
@@ -136,16 +137,16 @@
|
|
|
136
137
|
},
|
|
137
138
|
"dependencies": {
|
|
138
139
|
"@dgreenheck/three-pinata": "^2.0.1",
|
|
140
|
+
"@zylem/runtime": "link:../runtime",
|
|
139
141
|
"comlink": "^4.4.2",
|
|
140
142
|
"typescript-fsm": "^1.6.0",
|
|
141
143
|
"valtio": "^2.1.7"
|
|
142
144
|
},
|
|
143
145
|
"peerDependencies": {
|
|
144
|
-
"@dimforge/rapier3d-compat": "^0.11.2",
|
|
145
146
|
"three": "^0.180.0"
|
|
146
147
|
},
|
|
147
148
|
"devDependencies": {
|
|
148
|
-
"@
|
|
149
|
+
"@clack/prompts": "^1.6.0",
|
|
149
150
|
"@types/node": "^20.19.13",
|
|
150
151
|
"@types/three": "0.171.0",
|
|
151
152
|
"happy-dom": "^18.0.1",
|