@zylem/game-lib 0.7.0 → 0.8.2
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 +15 -1
- package/dist/actions.d.ts +71 -8
- package/dist/actions.js +1 -1
- package/dist/api/game-lib.api.json +55350 -0
- package/dist/api/game-lib.api.md +4608 -0
- package/dist/api/game-lib.d.ts +8447 -0
- package/dist/api/game-lib.typedoc.json +352456 -0
- package/dist/audio.js +1 -1
- package/dist/{base-node-life-cycle-CnJ-7zX-.d.ts → base-node-life-cycle-BK9xebT9.d.ts} +18 -4
- package/dist/behavior.d.ts +2 -3
- package/dist/behavior.js +1 -1
- package/dist/blueprints-TbGY-h53.d.ts +162 -0
- package/dist/chunk-3PRBSSTS.js +24 -0
- package/dist/chunk-47DG7I7M.js +1 -0
- package/dist/chunk-7GYFZKK7.js +1 -0
- package/dist/chunk-7QF6YTEZ.js +1 -0
- package/dist/chunk-7WRQ2UAN.js +1 -0
- package/dist/chunk-BH53MBAZ.js +1 -0
- package/dist/chunk-BIGH6D34.js +0 -0
- package/dist/chunk-CD7ZOZ35.js +1 -0
- package/dist/chunk-CFVRRRZZ.js +1 -0
- package/dist/chunk-CM5YRNBJ.js +19 -0
- package/dist/chunk-COM6HJ2L.js +1 -0
- package/dist/chunk-D2PATZCC.js +1 -0
- package/dist/chunk-DFLI7ICU.js +0 -0
- package/dist/chunk-EVYHPR3J.js +1 -0
- package/dist/chunk-IPWUDOV5.js +1 -0
- package/dist/chunk-JNFFTNMH.js +1 -0
- package/dist/chunk-JQKS42G4.js +1 -0
- package/dist/chunk-KVSJE4XD.js +1 -0
- package/dist/chunk-MZZCDXFB.js +1 -0
- package/dist/chunk-ORIDWL3T.js +0 -0
- package/dist/{chunk-RXDTAWI2.js → chunk-PCFF4LLO.js} +1 -1
- package/dist/chunk-QB3NL7VQ.js +1 -0
- package/dist/chunk-TAUWDQZF.js +9 -0
- package/dist/chunk-UG22Z42P.js +1 -0
- package/dist/chunk-VS2D4B3W.js +1 -0
- package/dist/chunk-WQ3WMMZD.js +1 -0
- package/dist/chunk-XK63E4SX.js +1 -0
- package/dist/chunk-YAOXFYOD.js +1 -0
- package/dist/chunk-ZRT3ZQVH.js +1 -0
- package/dist/collision-builder-B_tm8OVy.d.ts +49 -0
- package/dist/core.d.ts +45 -30
- package/dist/core.js +1 -24
- package/dist/debug-state-DRoeasG2.d.ts +17 -0
- package/dist/debug.d.ts +71 -19
- package/dist/debug.js +1 -1
- package/dist/{default-controls-BGc61yYl.d.ts → default-controls-CAKJ5zlo.d.ts} +3 -3
- package/dist/entity-B9yZeBm4.d.ts +34 -0
- package/dist/{entity-DNkYKfdp.d.ts → entity-BGEq1yfC.d.ts} +91 -444
- package/dist/{entity-type-map-C94h2TDW.d.ts → entity-type-map-CW6RHQkx.d.ts} +153 -6
- package/dist/entity.d.ts +15 -10
- package/dist/entity.js +1 -1
- package/dist/events.d.ts +10 -1
- package/dist/events.js +1 -1
- package/dist/{game-Cuj5gy7U.d.ts → game-DbqBQiFC.d.ts} +460 -135
- package/dist/game-default-6AZZCNST.js +1 -0
- package/dist/{game-interfaces-tfpM5NBk.d.ts → game-interfaces-vF5sRi1n.d.ts} +8 -2
- package/dist/globals.d.ts +12 -1
- package/dist/globals.js +1 -1
- package/dist/graphics.d.ts +16 -46
- package/dist/graphics.js +1 -1
- package/dist/input-ui.d.ts +5 -4
- package/dist/input-ui.js +1 -1
- package/dist/input.d.ts +48 -4
- package/dist/input.js +1 -1
- package/dist/{material-Wz83vTTp.d.ts → material-DbSuZBbP.d.ts} +25 -50
- package/dist/public.d.ts +38 -0
- package/dist/public.js +1 -0
- package/dist/runtime.d.ts +7 -381
- package/dist/runtime.js +1 -1
- package/dist/schema/entity.schema.json +244 -0
- package/dist/schema/game-config.schema.json +643 -0
- package/dist/schema/input-config.schema.json +517 -0
- package/dist/schema/stage-config.schema.json +93 -0
- package/dist/schema/stage.schema.json +271 -0
- package/dist/schema.d.ts +550 -0
- package/dist/schema.js +1 -0
- package/dist/stage-transition-CmGpV4tc.d.ts +46 -0
- package/dist/vector-DN6zlPoE.d.ts +161 -0
- package/dist/web-components.d.ts +15 -12
- package/dist/web-components.js +1 -9
- package/dist/{zylem-stage-runtime-Cs-UDEVU.d.ts → zylem-camera-Du2UPW9O.d.ts} +74 -264
- package/package.json +28 -20
- package/dist/chunk-73VZQZUL.js +0 -1
- package/dist/chunk-A34ZG3L4.js +0 -1
- package/dist/chunk-CDPY4VOQ.js +0 -1
- package/dist/chunk-DR6XXZE7.js +0 -19
- package/dist/chunk-FM5TBEPO.js +0 -1
- package/dist/chunk-G2IIMSUH.js +0 -1
- package/dist/chunk-MSC2BEO5.js +0 -1
- package/dist/chunk-NIH5CONO.js +0 -1
- package/dist/chunk-ONWXGBWB.js +0 -1
- package/dist/chunk-QEDQDR27.js +0 -1
- package/dist/chunk-WKHW2QO2.js +0 -1
- package/dist/chunk-YHKXQ2ZN.js +0 -1
- package/dist/game-default-PZLLHYL7.js +0 -1
- package/dist/world-C9zdyl5d.d.ts +0 -103
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { BufferGeometry, Material, Mesh, Group, Vector3, Color, ShaderMaterial } from 'three';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
2
|
+
import { SimulationColliderDefinition, TransformState, SimulationBodyDefinition, MoveableEntity, BehaviorRuntime, Vector, BehaviorDescriptor, BehaviorHandle, BehaviorRef } from '@zylem/behaviors/core';
|
|
3
|
+
import { c as Vec3, e as Vec3Input, b as Vec2Input, l as SimulationBody } from './vector-DN6zlPoE.js';
|
|
4
|
+
import { M as MaterialBuilder, e as MaterialOptions } from './material-DbSuZBbP.js';
|
|
5
|
+
import { C as CollisionBuilder, L as LockAxesInput, a as CollisionOptions } from './collision-builder-B_tm8OVy.js';
|
|
6
|
+
import { a as SetupContext, U as UpdateContext, D as DestroyContext, h as SetupFunction, i as LoadedFunction, g as UpdateFunction, j as DestroyFunction, C as CleanupFunction, k as LoadedContext, l as CleanupContext } from './base-node-life-cycle-BK9xebT9.js';
|
|
5
7
|
import { EventEmitterDelegate, EntityEvents } from './events.js';
|
|
6
|
-
import { TransformState, MoveableEntity, BehaviorDescriptor, BehaviorHandle, BehaviorRef } from '@zylem/behaviors/core';
|
|
7
8
|
|
|
8
9
|
interface NodeInterface {
|
|
9
10
|
uuid: string;
|
|
@@ -98,417 +99,19 @@ declare abstract class BaseNode<Options = any, T = any> implements NodeInterface
|
|
|
98
99
|
private recordLifecycleRegistration;
|
|
99
100
|
}
|
|
100
101
|
|
|
101
|
-
/**
|
|
102
|
-
* `WasmStageRuntime` — owns one wasm `WebAssembly.Instance` of `@zylem/runtime`
|
|
103
|
-
* and exposes the unified-Stage FFI as a set of typed TypeScript methods.
|
|
104
|
-
* Replaces the legacy {@link ZylemRuntimeStageAdapter} + {@link ZylemWorld}
|
|
105
|
-
* pair; every `ZylemStage` instantiates exactly one `WasmStageRuntime`.
|
|
106
|
-
*
|
|
107
|
-
* The runtime is the single source of truth for per-frame physics state.
|
|
108
|
-
* TS-side behaviors and visual layers (destructible-3d, particle-emitter,
|
|
109
|
-
* screen-visibility) read transforms from the render buffer; sim-only
|
|
110
|
-
* behaviors push their attach/query payload through the per-behavior
|
|
111
|
-
* helpers exposed here.
|
|
112
|
-
*/
|
|
113
|
-
/** Sentinel handle for "no entity / failed allocation". Mirrors `INVALID_SLOT` in Rust. */
|
|
114
|
-
declare const STAGE_INVALID_SLOT = 4294967295;
|
|
115
|
-
/** Fixed render-buffer stride in floats. Must match `STAGE_RENDER_STRIDE` in Rust. */
|
|
116
|
-
declare const STAGE_RENDER_STRIDE = 12;
|
|
117
|
-
/** Fixed event-buffer stride in floats. Must match `STAGE_EVENT_STRIDE` in Rust. */
|
|
118
|
-
declare const STAGE_EVENT_STRIDE = 6;
|
|
119
|
-
/** Fixed pose-scratch stride in floats. Must match `POSE_SCRATCH_LEN` in Rust. */
|
|
120
|
-
declare const STAGE_POSE_LEN = 7;
|
|
121
|
-
declare const enum StageBodyKind {
|
|
122
|
-
Dynamic = 0,
|
|
123
|
-
Static = 1,
|
|
124
|
-
KinematicPosition = 2,
|
|
125
|
-
KinematicVelocity = 3
|
|
126
|
-
}
|
|
127
|
-
declare const enum StageBoundaryDim {
|
|
128
|
-
Two = 2,
|
|
129
|
-
Three = 3
|
|
130
|
-
}
|
|
131
|
-
declare const enum StageRicochetDim {
|
|
132
|
-
Two = 2,
|
|
133
|
-
Three = 3
|
|
134
|
-
}
|
|
135
|
-
declare const enum StageRicochetReflection {
|
|
136
|
-
Mirror = 0,
|
|
137
|
-
Angled = 1
|
|
138
|
-
}
|
|
139
|
-
declare const enum StageTopDownPlane {
|
|
140
|
-
Xy = 0,
|
|
141
|
-
Xz = 1
|
|
142
|
-
}
|
|
143
|
-
declare const enum StageEventType {
|
|
144
|
-
CollisionStarted = 1,
|
|
145
|
-
CollisionStopped = 2,
|
|
146
|
-
BoundaryHit = 3,
|
|
147
|
-
Ricochet = 4,
|
|
148
|
-
RegionEntered = 5,
|
|
149
|
-
JumpStarted = 6,
|
|
150
|
-
Landed = 7,
|
|
151
|
-
Wrapped = 8,
|
|
152
|
-
CooldownFired = 9
|
|
153
|
-
}
|
|
154
|
-
interface StageEvent {
|
|
155
|
-
type: StageEventType;
|
|
156
|
-
primarySlot: number | null;
|
|
157
|
-
secondarySlot: number | null;
|
|
158
|
-
payload: [number, number, number];
|
|
159
|
-
}
|
|
160
|
-
interface StagePose {
|
|
161
|
-
position: [number, number, number];
|
|
162
|
-
rotation: [number, number, number, number];
|
|
163
|
-
}
|
|
164
|
-
interface StageBodyConfig {
|
|
165
|
-
kind: StageBodyKind;
|
|
166
|
-
position: readonly [number, number, number];
|
|
167
|
-
rotation: readonly [number, number, number, number];
|
|
168
|
-
linearDamping: number;
|
|
169
|
-
angularDamping: number;
|
|
170
|
-
gravityScale: number;
|
|
171
|
-
canSleep: boolean;
|
|
172
|
-
ccdEnabled: boolean;
|
|
173
|
-
lockRotation: readonly [boolean, boolean, boolean];
|
|
174
|
-
lockTranslation: readonly [boolean, boolean, boolean];
|
|
175
|
-
}
|
|
176
|
-
type StageColliderShape = {
|
|
177
|
-
type: 'box';
|
|
178
|
-
halfExtents: readonly [number, number, number];
|
|
179
|
-
} | {
|
|
180
|
-
type: 'sphere';
|
|
181
|
-
radius: number;
|
|
182
|
-
} | {
|
|
183
|
-
type: 'capsule';
|
|
184
|
-
halfHeight: number;
|
|
185
|
-
radius: number;
|
|
186
|
-
} | {
|
|
187
|
-
type: 'cylinder';
|
|
188
|
-
halfHeight: number;
|
|
189
|
-
radius: number;
|
|
190
|
-
} | {
|
|
191
|
-
type: 'convexHull';
|
|
192
|
-
vertices: Float32Array;
|
|
193
|
-
} | {
|
|
194
|
-
type: 'trimesh';
|
|
195
|
-
vertices: Float32Array;
|
|
196
|
-
indices: Uint32Array;
|
|
197
|
-
} | {
|
|
198
|
-
type: 'heightfield';
|
|
199
|
-
rows: number;
|
|
200
|
-
cols: number;
|
|
201
|
-
scale: readonly [number, number, number];
|
|
202
|
-
heights: Float32Array;
|
|
203
|
-
};
|
|
204
|
-
interface StageColliderConfig {
|
|
205
|
-
shape: StageColliderShape;
|
|
206
|
-
offset: readonly [number, number, number];
|
|
207
|
-
friction: number;
|
|
208
|
-
restitution: number;
|
|
209
|
-
sensor: boolean;
|
|
210
|
-
/** Packed Rapier interaction-groups: high 16 bits = membership, low 16 bits = filter. */
|
|
211
|
-
collisionGroups: number;
|
|
212
|
-
}
|
|
213
|
-
/** Minimal exports surface used by `WasmStageRuntime`. Mirrors `stage_ffi.rs`. */
|
|
214
|
-
interface StageWasmExports {
|
|
215
|
-
readonly memory: WebAssembly.Memory;
|
|
216
|
-
zylem_stage_create(initialCapacity: number): number;
|
|
217
|
-
zylem_stage_destroy(): void;
|
|
218
|
-
zylem_stage_set_gravity(x: number, y: number, z: number): void;
|
|
219
|
-
zylem_stage_step(dt: number): number;
|
|
220
|
-
zylem_stage_active_count(): number;
|
|
221
|
-
zylem_stage_capacity(): number;
|
|
222
|
-
zylem_stage_tick_count(): number;
|
|
223
|
-
zylem_stage_create_entity(): number;
|
|
224
|
-
zylem_stage_destroy_entity(slot: number): number;
|
|
225
|
-
zylem_stage_attach_body(slot: number, kind: number, px: number, py: number, pz: number, rx: number, ry: number, rz: number, rw: number, linearDamping: number, angularDamping: number, gravityScale: number, canSleep: number, ccdEnabled: number, lockRotX: number, lockRotY: number, lockRotZ: number, lockTransX: number, lockTransY: number, lockTransZ: number): number;
|
|
226
|
-
zylem_stage_add_collider_box(slot: number, hx: number, hy: number, hz: number, ox: number, oy: number, oz: number, friction: number, restitution: number, sensor: number, collisionGroups: number): number;
|
|
227
|
-
zylem_stage_add_collider_sphere(slot: number, radius: number, ox: number, oy: number, oz: number, friction: number, restitution: number, sensor: number, collisionGroups: number): number;
|
|
228
|
-
zylem_stage_add_collider_capsule(slot: number, halfHeight: number, radius: number, ox: number, oy: number, oz: number, friction: number, restitution: number, sensor: number, collisionGroups: number): number;
|
|
229
|
-
zylem_stage_add_collider_cylinder(slot: number, halfHeight: number, radius: number, ox: number, oy: number, oz: number, friction: number, restitution: number, sensor: number, collisionGroups: number): number;
|
|
230
|
-
zylem_stage_add_collider_convex_hull(slot: number, vertexOffset: number, vertexCount: number, ox: number, oy: number, oz: number, friction: number, restitution: number, sensor: number, collisionGroups: number): number;
|
|
231
|
-
zylem_stage_add_collider_trimesh(slot: number, vertexOffset: number, vertexCount: number, indexOffset: number, indexCount: number, ox: number, oy: number, oz: number, friction: number, restitution: number, sensor: number, collisionGroups: number): number;
|
|
232
|
-
zylem_stage_add_collider_heightfield(slot: number, rows: number, cols: number, sx: number, sy: number, sz: number, heightOffset: number, px: number, py: number, pz: number, friction: number, restitution: number, collisionGroups: number): number;
|
|
233
|
-
zylem_stage_get_pose(slot: number): number;
|
|
234
|
-
zylem_stage_pose_ptr(): number;
|
|
235
|
-
zylem_stage_pose_len(): number;
|
|
236
|
-
zylem_stage_set_position(slot: number, x: number, y: number, z: number): number;
|
|
237
|
-
zylem_stage_set_rotation(slot: number, x: number, y: number, z: number, w: number): number;
|
|
238
|
-
zylem_stage_set_linvel(slot: number, x: number, y: number, z: number): number;
|
|
239
|
-
zylem_stage_get_linvel(slot: number): number;
|
|
240
|
-
zylem_stage_set_angvel(slot: number, x: number, y: number, z: number): number;
|
|
241
|
-
zylem_stage_apply_impulse(slot: number, x: number, y: number, z: number): number;
|
|
242
|
-
zylem_stage_vec3_ptr(): number;
|
|
243
|
-
zylem_stage_render_ptr(): number;
|
|
244
|
-
zylem_stage_render_len(): number;
|
|
245
|
-
zylem_stage_render_stride(): number;
|
|
246
|
-
zylem_stage_event_ptr(): number;
|
|
247
|
-
zylem_stage_event_len(): number;
|
|
248
|
-
zylem_stage_event_count(): number;
|
|
249
|
-
zylem_stage_event_stride(): number;
|
|
250
|
-
zylem_stage_query_ptr(): number;
|
|
251
|
-
zylem_stage_query_len(): number;
|
|
252
|
-
zylem_stage_scratch_ptr(): number;
|
|
253
|
-
zylem_stage_scratch_capacity(): number;
|
|
254
|
-
zylem_stage_attach_cooldown(slot: number): number;
|
|
255
|
-
zylem_stage_cooldown_register(slot: number, id: number, duration: number, immediate: number): number;
|
|
256
|
-
zylem_stage_cooldown_fire(slot: number, id: number): number;
|
|
257
|
-
zylem_stage_cooldown_reset(slot: number, id: number): number;
|
|
258
|
-
zylem_stage_cooldown_remaining(slot: number, id: number): number;
|
|
259
|
-
zylem_stage_attach_world_boundary(slot: number, dim: number, top: number, bottom: number, left: number, right: number, front: number, back: number, padding: number): number;
|
|
260
|
-
zylem_stage_query_world_boundary(slot: number): number;
|
|
261
|
-
zylem_stage_attach_screen_wrap(slot: number, width: number, height: number, centerX: number, centerY: number, edgeThreshold: number): number;
|
|
262
|
-
zylem_stage_query_screen_wrap(slot: number): number;
|
|
263
|
-
zylem_stage_attach_ricochet(slot: number, dim: number, minSpeed: number, maxSpeed: number, speedMultiplier: number, maxAngleDeg: number, reflectionMode: number): number;
|
|
264
|
-
zylem_stage_query_ricochet(slot: number): number;
|
|
265
|
-
zylem_stage_attach_thruster(slot: number, maxSpeed: number, acceleration: number, turnRateRadS: number, linearDamping: number): number;
|
|
266
|
-
zylem_stage_set_thruster_input(slot: number, thrust: number, turn: number): void;
|
|
267
|
-
zylem_stage_query_thruster(slot: number): number;
|
|
268
|
-
zylem_stage_attach_top_down(slot: number, plane: number, speed: number, faceMovement: number): number;
|
|
269
|
-
zylem_stage_set_top_down_input(slot: number, a: number, b: number): void;
|
|
270
|
-
zylem_stage_attach_jumper_2d(slot: number, jumpForce: number, maxJumps: number, jumpBufferTime: number, coyoteTime: number, gravity: number): number;
|
|
271
|
-
zylem_stage_set_jumper_2d_input(slot: number, jumpPressed: number): void;
|
|
272
|
-
zylem_stage_query_jumper_2d(slot: number): number;
|
|
273
|
-
zylem_stage_attach_jumper_3d(slot: number, jumpForce: number, maxJumps: number, gravity: number): number;
|
|
274
|
-
zylem_stage_set_jumper_3d_input(slot: number, jump: number): void;
|
|
275
|
-
zylem_stage_query_jumper_3d(slot: number): number;
|
|
276
|
-
zylem_stage_attach_shooter_2d(slot: number, fireRateHz: number, muzzleOffsetX: number, muzzleOffsetY: number, muzzleSpeed: number): number;
|
|
277
|
-
zylem_stage_shooter_2d_fire(slot: number, x: number, y: number, z: number, yaw: number): number;
|
|
278
|
-
zylem_stage_query_shooter_2d(slot: number): number;
|
|
279
|
-
zylem_stage_attach_platformer_3d(slot: number, halfHeight: number, radius: number, walkSpeed: number, runSpeed: number, jumpForce: number, maxJumps: number, gravity: number): number;
|
|
280
|
-
zylem_stage_set_platformer_3d_input_axes(slot: number, moveX: number, moveZ: number): void;
|
|
281
|
-
zylem_stage_set_platformer_3d_input_buttons(slot: number, jump: number, run: number): void;
|
|
282
|
-
zylem_stage_query_platformer_3d(slot: number): number;
|
|
283
|
-
zylem_stage_attach_first_person(slot: number, walkSpeed: number, runSpeed: number, eyeHeight: number, lookSensitivity: number): number;
|
|
284
|
-
zylem_stage_set_first_person_input(slot: number, moveX: number, moveZ: number, lookYaw: number, lookPitch: number, run: number): void;
|
|
285
|
-
zylem_stage_query_first_person(slot: number): number;
|
|
286
|
-
zylem_stage_invalid_slot(): number;
|
|
287
|
-
}
|
|
288
|
-
/** Default options for `createWasmStageRuntime`. */
|
|
289
|
-
interface WasmStageRuntimeOptions {
|
|
290
|
-
initialCapacity?: number;
|
|
291
|
-
gravity?: readonly [number, number, number];
|
|
292
|
-
imports?: WebAssembly.Imports;
|
|
293
|
-
}
|
|
294
|
-
/**
|
|
295
|
-
* Owns the wasm instance plus the live float-views over its render / event /
|
|
296
|
-
* pose / scratch buffers. The instance is per-`ZylemStage`; each stage gets
|
|
297
|
-
* its own `WebAssembly.Instance` so the singleton inside `stage_ffi.rs`
|
|
298
|
-
* stays single-stage scoped (today's `thread_local!` contract).
|
|
299
|
-
*/
|
|
300
|
-
declare class WasmStageRuntime {
|
|
301
|
-
readonly exports: StageWasmExports;
|
|
302
|
-
private readonly memory;
|
|
303
|
-
private renderView;
|
|
304
|
-
private eventView;
|
|
305
|
-
private poseView;
|
|
306
|
-
private vec3View;
|
|
307
|
-
private queryView;
|
|
308
|
-
private scratchView;
|
|
309
|
-
constructor(exports: StageWasmExports, options?: WasmStageRuntimeOptions);
|
|
310
|
-
/** Recreate typed views over wasm memory. Call after step() or whenever memory may have grown. */
|
|
311
|
-
refreshViews(): void;
|
|
312
|
-
/** Step the simulation by `dt` seconds. Refreshes views afterwards. */
|
|
313
|
-
step(dt: number): number;
|
|
314
|
-
dispose(): void;
|
|
315
|
-
get tickCount(): number;
|
|
316
|
-
get activeCount(): number;
|
|
317
|
-
setGravity(x: number, y: number, z: number): void;
|
|
318
|
-
createEntity(): number;
|
|
319
|
-
destroyEntity(slot: number): boolean;
|
|
320
|
-
attachBody(slot: number, config: StageBodyConfig): boolean;
|
|
321
|
-
addCollider(slot: number, config: StageColliderConfig): boolean;
|
|
322
|
-
private stageScratch;
|
|
323
|
-
private stageScratchIndices;
|
|
324
|
-
getPose(slot: number, out?: StagePose): StagePose | null;
|
|
325
|
-
setPosition(slot: number, x: number, y: number, z: number): boolean;
|
|
326
|
-
setRotation(slot: number, x: number, y: number, z: number, w: number): boolean;
|
|
327
|
-
setLinearVelocity(slot: number, x: number, y: number, z: number): boolean;
|
|
328
|
-
getLinearVelocity(slot: number, out?: [number, number, number]): [number, number, number] | null;
|
|
329
|
-
setAngularVelocity(slot: number, x: number, y: number, z: number): boolean;
|
|
330
|
-
applyImpulse(slot: number, x: number, y: number, z: number): boolean;
|
|
331
|
-
/** Read-only view over the render buffer; one slot occupies {@link STAGE_RENDER_STRIDE} floats. */
|
|
332
|
-
get render(): Float32Array;
|
|
333
|
-
get renderStride(): number;
|
|
334
|
-
/** Drain the wasm event buffer into a fresh array of typed events. */
|
|
335
|
-
drainEvents(): StageEvent[];
|
|
336
|
-
get queryScratch(): Float32Array;
|
|
337
|
-
attachCooldown(slot: number): boolean;
|
|
338
|
-
registerCooldown(slot: number, id: number, durationSeconds: number, immediate?: boolean): boolean;
|
|
339
|
-
fireCooldown(slot: number, id: number): boolean;
|
|
340
|
-
resetCooldown(slot: number, id: number): boolean;
|
|
341
|
-
cooldownRemaining(slot: number, id: number): number;
|
|
342
|
-
attachWorldBoundary(slot: number, dim: StageBoundaryDim, bounds: {
|
|
343
|
-
top: number;
|
|
344
|
-
bottom: number;
|
|
345
|
-
left: number;
|
|
346
|
-
right: number;
|
|
347
|
-
front: number;
|
|
348
|
-
back: number;
|
|
349
|
-
padding?: number;
|
|
350
|
-
}): boolean;
|
|
351
|
-
queryWorldBoundary(slot: number): {
|
|
352
|
-
hits: number;
|
|
353
|
-
clamped: [number, number, number];
|
|
354
|
-
} | null;
|
|
355
|
-
attachScreenWrap(slot: number, opts: {
|
|
356
|
-
width: number;
|
|
357
|
-
height: number;
|
|
358
|
-
centerX?: number;
|
|
359
|
-
centerY?: number;
|
|
360
|
-
edgeThreshold?: number;
|
|
361
|
-
}): boolean;
|
|
362
|
-
queryScreenWrap(slot: number): {
|
|
363
|
-
fsm: number;
|
|
364
|
-
lastWrappedAxes: number;
|
|
365
|
-
} | null;
|
|
366
|
-
attachRicochet(slot: number, dim: StageRicochetDim, opts: {
|
|
367
|
-
minSpeed: number;
|
|
368
|
-
maxSpeed: number;
|
|
369
|
-
speedMultiplier: number;
|
|
370
|
-
maxAngleDeg: number;
|
|
371
|
-
reflectionMode: StageRicochetReflection;
|
|
372
|
-
}): boolean;
|
|
373
|
-
queryRicochet(slot: number): {
|
|
374
|
-
bounces: number;
|
|
375
|
-
lastKind: number;
|
|
376
|
-
} | null;
|
|
377
|
-
attachThruster(slot: number, opts: {
|
|
378
|
-
maxSpeed: number;
|
|
379
|
-
acceleration: number;
|
|
380
|
-
turnRateRadPerSec: number;
|
|
381
|
-
linearDamping: number;
|
|
382
|
-
}): boolean;
|
|
383
|
-
setThrusterInput(slot: number, thrust: number, turn: number): void;
|
|
384
|
-
queryThruster(slot: number): {
|
|
385
|
-
headingRad: number;
|
|
386
|
-
speed: number;
|
|
387
|
-
} | null;
|
|
388
|
-
attachTopDown(slot: number, opts: {
|
|
389
|
-
plane: StageTopDownPlane;
|
|
390
|
-
speed: number;
|
|
391
|
-
faceMovement?: boolean;
|
|
392
|
-
}): boolean;
|
|
393
|
-
setTopDownInput(slot: number, axisA: number, axisB: number): void;
|
|
394
|
-
attachJumper2D(slot: number, opts: {
|
|
395
|
-
jumpForce: number;
|
|
396
|
-
maxJumps: number;
|
|
397
|
-
jumpBufferTime: number;
|
|
398
|
-
coyoteTime: number;
|
|
399
|
-
gravity: number;
|
|
400
|
-
}): boolean;
|
|
401
|
-
setJumper2DInput(slot: number, jumpPressed: boolean): void;
|
|
402
|
-
queryJumper2D(slot: number): {
|
|
403
|
-
grounded: boolean;
|
|
404
|
-
jumpCount: number;
|
|
405
|
-
coyote: number;
|
|
406
|
-
jumpBuffer: number;
|
|
407
|
-
} | null;
|
|
408
|
-
attachJumper3D(slot: number, opts: {
|
|
409
|
-
jumpForce: number;
|
|
410
|
-
maxJumps: number;
|
|
411
|
-
gravity: number;
|
|
412
|
-
}): boolean;
|
|
413
|
-
setJumper3DInput(slot: number, jump: boolean): void;
|
|
414
|
-
queryJumper3D(slot: number): {
|
|
415
|
-
grounded: boolean;
|
|
416
|
-
jumpCount: number;
|
|
417
|
-
verticalVelocity: number;
|
|
418
|
-
} | null;
|
|
419
|
-
attachShooter2D(slot: number, opts: {
|
|
420
|
-
fireRateHz: number;
|
|
421
|
-
muzzleOffsetX: number;
|
|
422
|
-
muzzleOffsetY: number;
|
|
423
|
-
muzzleSpeed: number;
|
|
424
|
-
}): boolean;
|
|
425
|
-
fireShooter2D(slot: number, x: number, y: number, z: number, yaw: number): boolean;
|
|
426
|
-
queryShooter2D(slot: number): {
|
|
427
|
-
cooldown: number;
|
|
428
|
-
firedCount: number;
|
|
429
|
-
} | null;
|
|
430
|
-
attachPlatformer3D(slot: number, opts: {
|
|
431
|
-
halfHeight: number;
|
|
432
|
-
radius: number;
|
|
433
|
-
walkSpeed: number;
|
|
434
|
-
runSpeed: number;
|
|
435
|
-
jumpForce: number;
|
|
436
|
-
maxJumps: number;
|
|
437
|
-
gravity: number;
|
|
438
|
-
}): boolean;
|
|
439
|
-
setPlatformer3DInputAxes(slot: number, moveX: number, moveZ: number): void;
|
|
440
|
-
setPlatformer3DInputButtons(slot: number, jump: boolean, run: boolean): void;
|
|
441
|
-
queryPlatformer3D(slot: number): {
|
|
442
|
-
grounded: boolean;
|
|
443
|
-
jumpCount: number;
|
|
444
|
-
fsmState: number;
|
|
445
|
-
speed: number;
|
|
446
|
-
} | null;
|
|
447
|
-
attachFirstPerson(slot: number, opts: {
|
|
448
|
-
walkSpeed: number;
|
|
449
|
-
runSpeed: number;
|
|
450
|
-
eyeHeight: number;
|
|
451
|
-
lookSensitivity: number;
|
|
452
|
-
}): boolean;
|
|
453
|
-
setFirstPersonInput(slot: number, opts: {
|
|
454
|
-
moveX: number;
|
|
455
|
-
moveZ: number;
|
|
456
|
-
lookYawDelta: number;
|
|
457
|
-
lookPitchDelta: number;
|
|
458
|
-
run: boolean;
|
|
459
|
-
}): void;
|
|
460
|
-
queryFirstPerson(slot: number): {
|
|
461
|
-
yaw: number;
|
|
462
|
-
pitch: number;
|
|
463
|
-
speed: number;
|
|
464
|
-
eyeHeight: number;
|
|
465
|
-
} | null;
|
|
466
|
-
}
|
|
467
|
-
/** Loads + instantiates a wasm module and constructs a `WasmStageRuntime`. */
|
|
468
|
-
declare function createWasmStageRuntime(source: RequestInfo | URL | ArrayBuffer, options?: WasmStageRuntimeOptions): Promise<WasmStageRuntime>;
|
|
469
|
-
|
|
470
|
-
/**
|
|
471
|
-
* Options for configuring entity collision behavior.
|
|
472
|
-
*/
|
|
473
|
-
interface CollisionOptions {
|
|
474
|
-
static?: boolean;
|
|
475
|
-
sensor?: boolean;
|
|
476
|
-
size?: Vec3Input;
|
|
477
|
-
position?: Vec3Input;
|
|
478
|
-
collisionType?: string;
|
|
479
|
-
collisionFilter?: string[];
|
|
480
|
-
}
|
|
481
|
-
declare class CollisionBuilder {
|
|
482
|
-
static: boolean;
|
|
483
|
-
sensor: boolean;
|
|
484
|
-
gravity: Vec3;
|
|
485
|
-
build(options: Partial<CollisionOptions>): [RigidBodyDesc, ColliderDesc];
|
|
486
|
-
withCollision(collisionOptions: Partial<CollisionOptions>): this;
|
|
487
|
-
collider(options: CollisionOptions): ColliderDesc;
|
|
488
|
-
bodyDesc({ isDynamicBody }: {
|
|
489
|
-
isDynamicBody?: boolean | undefined;
|
|
490
|
-
}): RigidBodyDesc;
|
|
491
|
-
}
|
|
492
|
-
|
|
493
102
|
/**
|
|
494
103
|
* TODO: allow for multiple materials requires geometry groups
|
|
495
104
|
* TODO: allow for instanced uniforms
|
|
496
105
|
* TODO: allow for geometry groups
|
|
497
|
-
* TODO: allow for batched meshes
|
|
498
|
-
* import { InstancedUniformsMesh } from 'three-instanced-uniforms-mesh';
|
|
499
|
-
* may not need geometry groups for shaders though
|
|
500
|
-
* setGeometry<T extends BufferGeometry>(geometry: T) {
|
|
501
|
-
* MeshBuilder.bachedMesh = new BatchedMesh(10, 5000, 10000, material);
|
|
502
|
-
* }
|
|
503
106
|
*/
|
|
504
|
-
type MeshBuilderOptions = Partial<Pick<GameEntityOptions, '
|
|
107
|
+
type MeshBuilderOptions = Partial<Pick<GameEntityOptions, 'material'>>;
|
|
505
108
|
declare class MeshBuilder {
|
|
506
|
-
_build(
|
|
109
|
+
_build(_meshOptions: MeshBuilderOptions, geometry: BufferGeometry, materials: Material[]): Mesh;
|
|
507
110
|
_postBuild(): void;
|
|
508
111
|
}
|
|
509
112
|
|
|
510
113
|
declare abstract class EntityCollisionBuilder extends CollisionBuilder {
|
|
511
|
-
abstract collider(options: GameEntityOptions):
|
|
114
|
+
abstract collider(options: GameEntityOptions): SimulationColliderDefinition;
|
|
512
115
|
}
|
|
513
116
|
declare abstract class EntityMeshBuilder extends MeshBuilder {
|
|
514
117
|
build(options: GameEntityOptions): BufferGeometry;
|
|
@@ -528,8 +131,17 @@ declare abstract class EntityBuilder<T extends GameEntity<U> & P, U extends Game
|
|
|
528
131
|
protected abstract createEntity(options: Partial<U>): T;
|
|
529
132
|
}
|
|
530
133
|
|
|
134
|
+
/** Structural slice of the physics body used by rotation helpers. */
|
|
135
|
+
interface RotatableBodyLike {
|
|
136
|
+
rotation(): {
|
|
137
|
+
x: number;
|
|
138
|
+
y: number;
|
|
139
|
+
z: number;
|
|
140
|
+
w: number;
|
|
141
|
+
};
|
|
142
|
+
}
|
|
531
143
|
interface RotatableEntity {
|
|
532
|
-
body:
|
|
144
|
+
body: RotatableBodyLike | null;
|
|
533
145
|
group: any;
|
|
534
146
|
transformStore?: TransformState;
|
|
535
147
|
}
|
|
@@ -615,14 +227,14 @@ interface RotatableEntityAPI extends RotatableEntity {
|
|
|
615
227
|
}
|
|
616
228
|
|
|
617
229
|
/**
|
|
618
|
-
* A built collision component containing
|
|
619
|
-
* Returned by collision factory functions
|
|
620
|
-
* and consumed by GameEntity.add().
|
|
230
|
+
* A built collision component containing plain body and collider definitions
|
|
231
|
+
* for the behaviors `Simulation`. Returned by collision factory functions
|
|
232
|
+
* (boxCollision, sphereCollision, etc.) and consumed by GameEntity.add().
|
|
621
233
|
*/
|
|
622
234
|
interface CollisionComponent {
|
|
623
235
|
__kind: 'collision';
|
|
624
|
-
bodyDesc:
|
|
625
|
-
colliderDesc:
|
|
236
|
+
bodyDesc: SimulationBodyDefinition;
|
|
237
|
+
colliderDesc: SimulationColliderDefinition;
|
|
626
238
|
cloneComponent: () => CollisionComponent;
|
|
627
239
|
}
|
|
628
240
|
interface BaseCollisionOptions {
|
|
@@ -630,12 +242,22 @@ interface BaseCollisionOptions {
|
|
|
630
242
|
static?: boolean;
|
|
631
243
|
/** Whether this collider is a sensor */
|
|
632
244
|
sensor?: boolean;
|
|
245
|
+
/** Allow the body to sleep when at rest (recommended for bulk dynamic scenes) */
|
|
246
|
+
canSleep?: boolean;
|
|
247
|
+
/** Continuous collision detection (expensive at scale; disable for small boxes) */
|
|
248
|
+
ccdEnabled?: boolean;
|
|
633
249
|
/** Position offset relative to the entity origin */
|
|
634
250
|
offset?: Vec3Input;
|
|
635
251
|
/** Collision type string for group filtering */
|
|
636
252
|
collisionType?: string;
|
|
637
253
|
/** Allowed collision types for filtering */
|
|
638
254
|
collisionFilter?: string[];
|
|
255
|
+
/** Gravity scale applied at body spawn (no live setter FFI; default 1). */
|
|
256
|
+
gravityScale?: number;
|
|
257
|
+
/** Lock rotation axes at body spawn: `true` for all, or per-axis tuple. */
|
|
258
|
+
lockRotations?: LockAxesInput;
|
|
259
|
+
/** Lock translation axes at body spawn: `true` for all, or per-axis tuple. */
|
|
260
|
+
lockTranslations?: LockAxesInput;
|
|
639
261
|
}
|
|
640
262
|
interface BoxCollisionOptions extends BaseCollisionOptions {
|
|
641
263
|
/** Box dimensions (default: 1x1x1) */
|
|
@@ -771,13 +393,13 @@ type IBuilder<BuilderOptions = any> = {
|
|
|
771
393
|
postBuild: (options: BuilderOptions) => BuilderOptions;
|
|
772
394
|
};
|
|
773
395
|
type GameEntitySimulationMode = 'ts' | 'runtime';
|
|
774
|
-
|
|
396
|
+
/** Scene-direct, WebGPU bundle (static), or instanced pack. Default `none`. */
|
|
397
|
+
type RenderCategory = 'none' | 'environment' | 'pack';
|
|
775
398
|
type RuntimeEntityBodyMode = 'dynamic' | 'static' | 'none';
|
|
776
399
|
type RuntimeEntityColorMode = 'base' | 'heatTint';
|
|
777
400
|
interface RuntimeEntityOptions {
|
|
778
401
|
simulation?: GameEntitySimulationMode;
|
|
779
|
-
|
|
780
|
-
batchKeyOverride?: string;
|
|
402
|
+
packKeyOverride?: string;
|
|
781
403
|
body?: RuntimeEntityBodyMode;
|
|
782
404
|
colorMode?: RuntimeEntityColorMode;
|
|
783
405
|
}
|
|
@@ -786,7 +408,19 @@ type GameEntityOptions = {
|
|
|
786
408
|
color?: Color;
|
|
787
409
|
size?: Vec3Input;
|
|
788
410
|
position?: Vec3Input;
|
|
789
|
-
|
|
411
|
+
/**
|
|
412
|
+
* Spawn visibility behavior:
|
|
413
|
+
* - `undefined` (default): hidden while `spawnEntity` runs, revealed once
|
|
414
|
+
* the spawn finalizes — even if no position was assigned.
|
|
415
|
+
* - `true` (strict): stays hidden until the first `setPosition`/`setPose`,
|
|
416
|
+
* for spawner patterns that place the entity frames after spawn.
|
|
417
|
+
* - `false`: never hidden during spawn.
|
|
418
|
+
*/
|
|
419
|
+
hideUntilPositioned?: boolean;
|
|
420
|
+
/** Explicit render visibility. When false, entity stays hidden until {@link GameEntity.reveal}. */
|
|
421
|
+
visible?: boolean;
|
|
422
|
+
/** Render path: `environment` (bundle), `pack` (instanced), or `none` (default). */
|
|
423
|
+
category?: RenderCategory;
|
|
790
424
|
runtime?: RuntimeEntityOptions;
|
|
791
425
|
collision?: Partial<CollisionOptions>;
|
|
792
426
|
material?: Partial<MaterialOptions>;
|
|
@@ -814,52 +448,65 @@ declare class GameEntity<O extends GameEntityOptions> extends BaseNode<O> implem
|
|
|
814
448
|
group: Group | undefined;
|
|
815
449
|
mesh: Mesh | undefined;
|
|
816
450
|
materials: Material[] | undefined;
|
|
817
|
-
bodyDesc:
|
|
818
|
-
body:
|
|
451
|
+
bodyDesc: SimulationBodyDefinition | null;
|
|
452
|
+
body: SimulationBody | null;
|
|
819
453
|
physicsAttached: boolean;
|
|
820
|
-
|
|
821
|
-
|
|
454
|
+
/**
|
|
455
|
+
* The physics world that currently owns this entity's body/colliders.
|
|
456
|
+
* Tagged on registration and checked on teardown so a stale world never
|
|
457
|
+
* frees handles another world now owns (which would poison the wasm
|
|
458
|
+
* simulation). Untyped to avoid a circular import.
|
|
459
|
+
*/
|
|
460
|
+
physicsWorldRef: unknown;
|
|
461
|
+
colliderDesc: SimulationColliderDefinition | undefined;
|
|
822
462
|
custom: Record<string, any>;
|
|
823
463
|
/** All collider descriptions for this entity (including primary) */
|
|
824
|
-
colliderDescs:
|
|
825
|
-
/** All colliders attached to this entity's rigid body */
|
|
826
|
-
colliders: Collider[];
|
|
464
|
+
colliderDescs: SimulationColliderDefinition[];
|
|
827
465
|
/** Additional meshes for compound visual entities (added via add()) */
|
|
828
466
|
compoundMeshes: Mesh[];
|
|
829
467
|
debugInfo: Record<string, any>;
|
|
830
468
|
debugMaterial: ShaderMaterial | undefined;
|
|
831
469
|
collisionDelegate: CollisionDelegate<this, O>;
|
|
832
470
|
collisionType?: string;
|
|
833
|
-
/**
|
|
834
|
-
|
|
835
|
-
/**
|
|
471
|
+
/** Pack key for instanced rendering (null if not instanced) */
|
|
472
|
+
packKey: string | null;
|
|
473
|
+
/** Bundle key for WebGPU bundle rendering (null if not bundled) */
|
|
474
|
+
bundleKey: string | null;
|
|
475
|
+
/** Index within the instanced mesh pack */
|
|
836
476
|
instanceId: number;
|
|
837
477
|
/** Whether this entity uses instanced rendering */
|
|
838
478
|
isInstanced: boolean;
|
|
839
|
-
/**
|
|
840
|
-
|
|
479
|
+
/** Whether this entity is drawn via a WebGPU render bundle */
|
|
480
|
+
isBundled: boolean;
|
|
841
481
|
/**
|
|
842
|
-
*
|
|
843
|
-
*
|
|
844
|
-
*
|
|
845
|
-
* `entity.body` / `entity.collider` fields once Phase 3 lands.
|
|
482
|
+
* Raw wasm slot index for this entity in the stage's `Simulation`; -1 when
|
|
483
|
+
* not attached. Behavior systems address the runtime's slot-indexed buffers by
|
|
484
|
+
* this slot.
|
|
846
485
|
*/
|
|
847
486
|
runtimeHandle: number;
|
|
848
|
-
/** True once the entity has been
|
|
487
|
+
/** True once the entity has been spawned into the wasm simulation. */
|
|
849
488
|
runtimeAttached: boolean;
|
|
850
489
|
/**
|
|
851
|
-
*
|
|
852
|
-
* `
|
|
853
|
-
* {@link GameEntity.setPose} can route through
|
|
854
|
-
*
|
|
490
|
+
* The stage simulation's low-level runtime adapter. Set by
|
|
491
|
+
* `ZylemWorld.addEntity()` so {@link GameEntity.getPose} /
|
|
492
|
+
* {@link GameEntity.setPose} and behavior descriptors can route through
|
|
493
|
+
* the runtime without threading the handle around.
|
|
855
494
|
*/
|
|
856
|
-
wasmStageRef:
|
|
495
|
+
wasmStageRef: BehaviorRuntime | null;
|
|
857
496
|
protected eventDelegate: EventEmitterDelegate<EntityEvents>;
|
|
858
497
|
private behaviorRefs;
|
|
859
498
|
private cloneFactory;
|
|
860
499
|
private trackAddedComponents;
|
|
861
500
|
private trackedComponents;
|
|
862
501
|
transformStore: TransformState;
|
|
502
|
+
/** Hide render target until spawn placement is confirmed. */
|
|
503
|
+
_spawnPlacementPending: boolean;
|
|
504
|
+
/** Author passed `position` in create options. */
|
|
505
|
+
_spawnPositionExplicit: boolean;
|
|
506
|
+
/** setPosition / setPose assigned a spawn placement during this spawn. */
|
|
507
|
+
_spawnPlacementReady: boolean;
|
|
508
|
+
/** True while {@link StageEntityDelegate.spawnEntity} is running for this entity. */
|
|
509
|
+
_spawnInProgress: boolean;
|
|
863
510
|
moveX: (delta: number) => void;
|
|
864
511
|
moveY: (delta: number) => void;
|
|
865
512
|
moveZ: (delta: number) => void;
|
|
@@ -892,11 +539,12 @@ declare class GameEntity<O extends GameEntityOptions> extends BaseNode<O> implem
|
|
|
892
539
|
setRotation: (x: number, y: number, z: number) => void;
|
|
893
540
|
getRotation: () => any;
|
|
894
541
|
constructor();
|
|
542
|
+
private wrapSpawnPlacementMutators;
|
|
543
|
+
/** Make the entity visible, clearing spawn placement pending state. */
|
|
544
|
+
reveal(): void;
|
|
895
545
|
/**
|
|
896
|
-
* Read the entity's pose
|
|
897
|
-
* the entity has
|
|
898
|
-
* legacy TS Rapier `RigidBody` translation/rotation. Returns `null` when
|
|
899
|
-
* neither source is available.
|
|
546
|
+
* Read the entity's pose from the wasm simulation. Returns `null` when
|
|
547
|
+
* the entity has not been spawned into the runtime yet.
|
|
900
548
|
*/
|
|
901
549
|
getPose(): {
|
|
902
550
|
position: Vec3;
|
|
@@ -908,8 +556,7 @@ declare class GameEntity<O extends GameEntityOptions> extends BaseNode<O> implem
|
|
|
908
556
|
};
|
|
909
557
|
} | null;
|
|
910
558
|
/**
|
|
911
|
-
* Write the entity's pose
|
|
912
|
-
* when present; otherwise writes to the legacy TS Rapier `RigidBody`.
|
|
559
|
+
* Write the entity's pose into the wasm simulation.
|
|
913
560
|
*
|
|
914
561
|
* Either or both of `position` and `rotation` may be omitted to leave
|
|
915
562
|
* that component unchanged.
|
|
@@ -1040,4 +687,4 @@ declare class GameEntity<O extends GameEntityOptions> extends BaseNode<O> implem
|
|
|
1040
687
|
*/
|
|
1041
688
|
declare function create(options?: Partial<GameEntityOptions>): GameEntity<GameEntityOptions>;
|
|
1042
689
|
|
|
1043
|
-
export { type Action as A,
|
|
690
|
+
export { type Action as A, BaseNode as B, type CollisionComponent as C, EntityMeshBuilder as D, EntityBuilder as E, EntityCollisionBuilder as F, GameEntity as G, type NodeInterface as N, type GameEntityOptions as a, boxCollision as b, create as c, coneCollision as d, cylinderCollision as e, pillCollision as f, planeCollision as g, rotateYEuler as h, rotateEuler as i, rotateX as j, rotateY as k, rotateZ as l, setRotationY as m, setRotationX as n, setRotationZ as o, pyramidCollision as p, setRotationDegrees as q, rotateInDirection as r, sphereCollision as s, setRotationDegreesY as t, setRotationDegreesX as u, setRotationDegreesZ as v, setRotation as w, getRotation as x, GameEntityLifeCycle as y, zoneCollision as z };
|