@jolly-pixel/engine 1.1.1 → 1.3.0
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 +93 -38
- package/dist/actor/Actor.d.ts +13 -11
- package/dist/actor/Actor.d.ts.map +1 -1
- package/dist/actor/Actor.js +7 -0
- package/dist/actor/Actor.js.map +1 -1
- package/dist/actor/ActorComponent.d.ts +5 -5
- package/dist/actor/ActorComponent.d.ts.map +1 -1
- package/dist/actor/ActorComponent.js.map +1 -1
- package/dist/actor/ActorTree.d.ts +19 -19
- package/dist/actor/ActorTree.d.ts.map +1 -1
- package/dist/actor/ActorTree.js.map +1 -1
- package/dist/adapters/global.d.ts +2 -2
- package/dist/adapters/global.d.ts.map +1 -1
- package/dist/adapters/global.js.map +1 -1
- package/dist/components/camera/Camera3DControls.d.ts +1 -1
- package/dist/components/camera/Camera3DControls.d.ts.map +1 -1
- package/dist/components/camera/Camera3DControls.js.map +1 -1
- package/dist/components/renderers/model/ModelRenderer.d.ts +2 -2
- package/dist/components/renderers/model/ModelRenderer.d.ts.map +1 -1
- package/dist/components/renderers/model/ModelRenderer.js.map +1 -1
- package/dist/components/renderers/sprite/SpriteRenderer.class.d.ts +2 -2
- package/dist/components/renderers/sprite/SpriteRenderer.class.d.ts.map +1 -1
- package/dist/components/renderers/sprite/SpriteRenderer.class.js.map +1 -1
- package/dist/components/renderers/text/TextRenderer.class.d.ts +2 -2
- package/dist/components/renderers/text/TextRenderer.class.d.ts.map +1 -1
- package/dist/components/renderers/text/TextRenderer.class.js.map +1 -1
- package/dist/components/renderers/tiled/TileMapRenderer.d.ts +2 -2
- package/dist/components/renderers/tiled/TileMapRenderer.d.ts.map +1 -1
- package/dist/components/renderers/tiled/TileMapRenderer.js.map +1 -1
- package/dist/components/renderers/tiled/TileObject.d.ts +1 -1
- package/dist/components/renderers/tiled/TileObject.d.ts.map +1 -1
- package/dist/components/renderers/tiled/TileObject.js.map +1 -1
- package/dist/components/script/Behavior.d.ts +2 -2
- package/dist/components/script/Behavior.d.ts.map +1 -1
- package/dist/components/script/Behavior.js.map +1 -1
- package/dist/components/types.d.ts +1 -1
- package/dist/components/types.d.ts.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/systems/FixedTimeStep.d.ts +14 -11
- package/dist/systems/FixedTimeStep.d.ts.map +1 -1
- package/dist/systems/FixedTimeStep.js +82 -33
- package/dist/systems/FixedTimeStep.js.map +1 -1
- package/dist/systems/GameInstance.d.ts +9 -5
- package/dist/systems/GameInstance.d.ts.map +1 -1
- package/dist/systems/GameInstance.js +10 -1
- package/dist/systems/GameInstance.js.map +1 -1
- package/dist/systems/Scene.d.ts +5 -5
- package/dist/systems/Scene.d.ts.map +1 -1
- package/dist/systems/Scene.js.map +1 -1
- package/dist/systems/index.d.ts +1 -0
- package/dist/systems/index.d.ts.map +1 -1
- package/dist/systems/index.js +1 -0
- package/dist/systems/index.js.map +1 -1
- package/dist/systems/rendering/RenderStrategy.d.ts +1 -1
- package/dist/systems/rendering/RenderStrategy.d.ts.map +1 -1
- package/dist/systems/rendering/{GameRenderer.d.ts → Renderer.d.ts} +2 -2
- package/dist/systems/rendering/Renderer.d.ts.map +1 -0
- package/dist/systems/rendering/{GameRenderer.js → Renderer.js} +1 -1
- package/dist/systems/rendering/Renderer.js.map +1 -0
- package/dist/systems/rendering/ThreeRenderer.d.ts +2 -2
- package/dist/systems/rendering/ThreeRenderer.d.ts.map +1 -1
- package/dist/systems/rendering/index.d.ts +1 -1
- package/dist/systems/rendering/index.d.ts.map +1 -1
- package/dist/systems/rendering/index.js +1 -1
- package/dist/systems/rendering/index.js.map +1 -1
- package/dist/ui/UINode.d.ts +2 -2
- package/dist/ui/UINode.d.ts.map +1 -1
- package/dist/ui/UINode.js.map +1 -1
- package/dist/ui/UIRenderer.d.ts +2 -2
- package/dist/ui/UIRenderer.d.ts.map +1 -1
- package/dist/ui/UIRenderer.js.map +1 -1
- package/dist/ui/UISprite.d.ts +1 -1
- package/dist/ui/UISprite.d.ts.map +1 -1
- package/dist/ui/UISprite.js.map +1 -1
- package/package.json +5 -3
- package/dist/systems/rendering/GameRenderer.d.ts.map +0 -1
- package/dist/systems/rendering/GameRenderer.js.map +0 -1
package/README.md
CHANGED
|
@@ -8,24 +8,25 @@
|
|
|
8
8
|
|
|
9
9
|
## 📌 About
|
|
10
10
|
|
|
11
|
-
Minimal and opinionated [ECS]
|
|
11
|
+
Minimal and opinionated [ECS][ecs] built on top of Three.js inspired by [Superpowers][superpowers] and [Craftstudio][craftstudio].
|
|
12
12
|
|
|
13
|
-
> [!
|
|
14
|
-
>
|
|
13
|
+
> [!WARNING]
|
|
14
|
+
> The engine is still in a heavy phase of development (expect frequent API breaking changes).
|
|
15
15
|
|
|
16
16
|
## 💡 Features
|
|
17
17
|
|
|
18
|
-
-
|
|
19
|
-
- Godot-like [Signals]
|
|
18
|
+
- [ECS][ecs] architecture with Actors, Components, and Scenes
|
|
19
|
+
- Godot-like [Signals][signals]
|
|
20
20
|
- Behavior scripts
|
|
21
21
|
- Input controls (mouse, keyboard, gamepads, touchpad)
|
|
22
22
|
- Built-in renderers (3D models, 3D text, sprites, …)
|
|
23
23
|
- Asset management
|
|
24
24
|
- Audio (background music, sound library, spatial audio)
|
|
25
|
+
- UI toolkits for minimal in-game interfaces
|
|
25
26
|
|
|
26
27
|
## 💃 Getting Started
|
|
27
28
|
|
|
28
|
-
This package is available in the Node Package Repository and can be easily installed with [npm]
|
|
29
|
+
This package is available in the Node Package Repository and can be easily installed with [npm][npm] or [yarn][yarn].
|
|
29
30
|
|
|
30
31
|
```bash
|
|
31
32
|
$ npm i @jolly-pixel/engine
|
|
@@ -33,23 +34,33 @@ $ npm i @jolly-pixel/engine
|
|
|
33
34
|
$ yarn add @jolly-pixel/engine
|
|
34
35
|
```
|
|
35
36
|
|
|
37
|
+
## 🔎 Guides (WIP 🚧)
|
|
38
|
+
|
|
39
|
+
- [Hello World with JollyPixel Engine](./docs/guides/hello-world.md)
|
|
40
|
+
|
|
36
41
|
## 📚 API
|
|
37
42
|
|
|
38
43
|
### ⚙️ Systems
|
|
39
44
|
|
|
45
|
+
> [!TIP]
|
|
46
|
+
> [@jolly-pixel/runtime](../runtime/README.md) manage most of that for you
|
|
47
|
+
|
|
40
48
|
Systems are responsible for driving the game loop, orchestrating rendering, and managing shared
|
|
41
49
|
resources such as assets. They operate on actors and their components
|
|
42
50
|
each frame.
|
|
43
51
|
|
|
44
52
|
- [GameInstance](./docs/systems/game-instance.md) — top-level orchestrator that ties the renderer, scene,
|
|
45
53
|
input, and audio into a unified game loop.
|
|
46
|
-
- [
|
|
54
|
+
- [Renderer](./docs/systems/renderer.md) — abstracts the Three.js render pipeline and supports
|
|
47
55
|
direct and post-processing render strategies.
|
|
48
56
|
- [Scene](./docs/systems/scene.md) — the ECS world manager that owns the actor tree and drives
|
|
49
57
|
per-frame lifecycle (awake → start → update → destroy).
|
|
50
58
|
- [Asset](./docs/asset.md) — lazy-loading asset pipeline with a
|
|
51
59
|
registry of loaders, a queue, and a cache.
|
|
52
60
|
|
|
61
|
+
<details>
|
|
62
|
+
<summary>Code Example</summary>
|
|
63
|
+
|
|
53
64
|
```ts
|
|
54
65
|
import { Systems, Actor } from "@jolly-pixel/engine";
|
|
55
66
|
|
|
@@ -66,65 +77,72 @@ const game = new Systems.GameInstance(renderer, {
|
|
|
66
77
|
game.connect();
|
|
67
78
|
```
|
|
68
79
|
|
|
69
|
-
>
|
|
70
|
-
> [@jolly-pixel/runtime](../runtime/README.md) manage most of that for you
|
|
80
|
+
</details>
|
|
71
81
|
|
|
72
82
|
### 🎭 Actor
|
|
73
83
|
|
|
74
84
|
An Actor is a named node in the scene tree that holds a Transform, a list of Components, and a
|
|
75
|
-
dictionary of Behaviors. The engine uses the name *Actor* (inspired by
|
|
76
|
-
[Superpowers](https://github.com/superpowers)) instead of the
|
|
77
|
-
traditional *Entity* term.
|
|
85
|
+
dictionary of Behaviors. The engine uses the name *Actor* (inspired by [Superpowers][superpowers]) instead of the traditional *Entity* term.
|
|
78
86
|
|
|
79
|
-
- [ActorTree](./docs/actor/actor-tree.md) — tree structure that
|
|
80
|
-
manages parent-child actor relationships and provides pattern-based
|
|
81
|
-
lookups.
|
|
82
87
|
- [Actor](./docs/actor/actor.md) — the entity itself, holding its
|
|
83
88
|
transform, components, and behaviors.
|
|
84
89
|
- [Transform](./docs/actor/actor-transform.md) — built-in component
|
|
85
90
|
wrapping a Three.js Object3D and exposing a complete local/global
|
|
86
91
|
transform API (position, orientation, scale, movement).
|
|
92
|
+
- [ActorTree](./docs/actor/actor-tree.md) — tree structure that
|
|
93
|
+
manages parent-child actor relationships and provides pattern-based
|
|
94
|
+
lookups.
|
|
95
|
+
|
|
96
|
+
<details>
|
|
97
|
+
<summary>Code Example</summary>
|
|
87
98
|
|
|
88
99
|
```ts
|
|
89
|
-
const player =
|
|
100
|
+
const player = gameInstance.createActor("Player");
|
|
90
101
|
player.transform.setLocalPosition(0, 1, 0);
|
|
91
102
|
|
|
92
|
-
const child =
|
|
93
|
-
name: "weapon",
|
|
103
|
+
const child = gameInstance.createActor("Weapon", {
|
|
94
104
|
parent: player
|
|
95
105
|
});
|
|
106
|
+
|
|
107
|
+
player.destroy();
|
|
96
108
|
```
|
|
97
109
|
|
|
98
|
-
|
|
110
|
+
</details>
|
|
111
|
+
|
|
112
|
+
#### 🧩 Components
|
|
99
113
|
|
|
100
114
|
Components are pure data and logic units attached to an Actor. They come in three flavours:
|
|
101
115
|
|
|
102
116
|
- [ActorComponent](./docs/actor/actor-component.md) — the base class all components extend (behaviors and renderers are ActorComponent).
|
|
117
|
+
- [Signals](./docs/components/signal.md) — lightweight pub/sub event emitter for actor-level communication (Godot-inspired signals).
|
|
103
118
|
- [Renderers](./docs/components/renderers.md) — visual components (sprites, models, text, tiled maps) that know how to draw themselves.
|
|
104
119
|
- [Camera Controls](./docs/components/camera-3d-controls.md)
|
|
105
120
|
- [Behavior](./docs/components/behavior.md) — script components with a property system and decorator-driven initialization.
|
|
106
|
-
- [Signals](./docs/components/signal.md) — lightweight pub/sub event emitter for actor-level communication (Godot-inspired signals).
|
|
107
121
|
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
Behavior, ModelRenderer, Input,
|
|
111
|
-
Signal, SceneProperty, type SignalEvent
|
|
112
|
-
} from "@jolly-pixel/engine";
|
|
122
|
+
<details>
|
|
123
|
+
<summary>Code Example</summary>
|
|
113
124
|
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
onHit: SignalEvent;
|
|
125
|
+
```ts
|
|
126
|
+
import { Behavior, Actor, SignalEvent } from "@jolly-pixel/engine";
|
|
117
127
|
|
|
118
|
-
|
|
119
|
-
speed
|
|
128
|
+
export interface PlayerBehaviorOptions {
|
|
129
|
+
speed?: number;
|
|
130
|
+
}
|
|
120
131
|
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
132
|
+
class PlayerBehavior extends Behavior {
|
|
133
|
+
onMovement = new SignalEvent();
|
|
134
|
+
speed = 0.1;
|
|
135
|
+
|
|
136
|
+
constructor(
|
|
137
|
+
actor: Actor, options: PlayerBehaviorOptions = {}
|
|
138
|
+
) {
|
|
139
|
+
super(actor);
|
|
140
|
+
this.speed = options?.speed ?? 0.1;
|
|
124
141
|
}
|
|
125
142
|
|
|
126
143
|
update() {
|
|
127
144
|
if (this.actor.gameInstance.input.isKeyDown("ArrowUp")) {
|
|
145
|
+
this.onMovement.emit();
|
|
128
146
|
this.actor.transform.moveForward(this.speed);
|
|
129
147
|
}
|
|
130
148
|
}
|
|
@@ -132,14 +150,15 @@ class PlayerBehavior extends Behavior {
|
|
|
132
150
|
|
|
133
151
|
new Actor(gameInstance, { name: "player" })
|
|
134
152
|
.registerComponent(ModelRenderer, { path: "models/Player.glb" })
|
|
135
|
-
.registerComponent(PlayerBehavior);
|
|
153
|
+
.registerComponent(PlayerBehavior, { speed: 0.5 });
|
|
136
154
|
```
|
|
137
155
|
|
|
156
|
+
</details>
|
|
157
|
+
|
|
138
158
|
### 🎮 Device Controls
|
|
139
159
|
|
|
140
160
|
Aggregates all physical devices (mouse, keyboard, gamepads, touchpad, screen) behind a unified
|
|
141
|
-
query API so that behaviors can react to player actions without
|
|
142
|
-
coupling to a specific device.
|
|
161
|
+
query API so that behaviors can react to player actions without coupling to a specific device.
|
|
143
162
|
|
|
144
163
|
- [Input](./docs/controls/input.md) — central input manager
|
|
145
164
|
- [Mouse](./docs/controls/mouse.md)
|
|
@@ -147,8 +166,10 @@ coupling to a specific device.
|
|
|
147
166
|
- [Gamepad](./docs/controls/gamepad.md)
|
|
148
167
|
- [Touchpad](./docs/controls/touchpad.md)
|
|
149
168
|
- [Screen](./docs/controls/screen.md)
|
|
150
|
-
- [CombinedInput](./docs/controls/combinedinput.md) — composable input conditions (AND, OR, NOT, sequence)
|
|
151
|
-
|
|
169
|
+
- [CombinedInput](./docs/controls/combinedinput.md) — composable input conditions (AND, OR, NOT, sequence) for complex key bindings.
|
|
170
|
+
|
|
171
|
+
<details>
|
|
172
|
+
<summary>Code Example</summary>
|
|
152
173
|
|
|
153
174
|
```ts
|
|
154
175
|
import { InputCombination } from "@jolly-pixel/engine";
|
|
@@ -168,6 +189,11 @@ if (dashCombo.evaluate(input)) {
|
|
|
168
189
|
}
|
|
169
190
|
```
|
|
170
191
|
|
|
192
|
+
> [!TIP]
|
|
193
|
+
> In ActorComponent or Behavior input are accessible through this.actor.gameInstance.input
|
|
194
|
+
|
|
195
|
+
</details>
|
|
196
|
+
|
|
171
197
|
### 🔊 Audio
|
|
172
198
|
|
|
173
199
|
Manages sound playback across the engine. It provides a global volume controller, a factory for creating audio sources, and a playlist-based background music manager.
|
|
@@ -178,6 +204,9 @@ Manages sound playback across the engine. It provides a global volume controller
|
|
|
178
204
|
playlist-based background music with sequential track playback,
|
|
179
205
|
pause/resume/stop, and playlist chaining.
|
|
180
206
|
|
|
207
|
+
<details>
|
|
208
|
+
<summary>Code Example</summary>
|
|
209
|
+
|
|
181
210
|
```ts
|
|
182
211
|
import { GlobalAudioManager, AudioBackground } from "@jolly-pixel/engine";
|
|
183
212
|
|
|
@@ -198,6 +227,8 @@ gameInstance.audio.observe(bg);
|
|
|
198
227
|
gameInstance.audio.volume = 0.5;
|
|
199
228
|
```
|
|
200
229
|
|
|
230
|
+
</details>
|
|
231
|
+
|
|
201
232
|
### 🖼️ UI
|
|
202
233
|
|
|
203
234
|
An orthographic 2D overlay drawn on top of the 3D scene.
|
|
@@ -210,6 +241,20 @@ UI elements are anchored to screen edges and support pointer interaction through
|
|
|
210
241
|
- [UISprite](./docs/ui/ui-sprite.md) — interactive sprite with
|
|
211
242
|
style, hover states, text labels, and pointer signals.
|
|
212
243
|
|
|
244
|
+
## Contributors guide
|
|
245
|
+
|
|
246
|
+
If you are a developer **looking to contribute** to the project, you must first read the [CONTRIBUTING][contributing] guide.
|
|
247
|
+
|
|
248
|
+
Once you have finished your development, check that the tests (and linter) are still good by running the following script:
|
|
249
|
+
|
|
250
|
+
```bash
|
|
251
|
+
$ npm run test
|
|
252
|
+
$ npm run lint
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
> [!CAUTION]
|
|
256
|
+
> In case you introduce a new feature or fix a bug, make sure to include tests for it as well.
|
|
257
|
+
|
|
213
258
|
### 📦 Internals
|
|
214
259
|
|
|
215
260
|
- [Adapters](./docs/internals/adapters.md)
|
|
@@ -219,3 +264,13 @@ UI elements are anchored to screen edges and support pointer interaction through
|
|
|
219
264
|
## License
|
|
220
265
|
|
|
221
266
|
MIT
|
|
267
|
+
|
|
268
|
+
<!-- Reference-style links for DRYness -->
|
|
269
|
+
|
|
270
|
+
[ecs]: https://en.wikipedia.org/wiki/Entity_component_system
|
|
271
|
+
[superpowers]: https://github.com/superpowers
|
|
272
|
+
[craftstudio]: https://sparklinlabs.itch.io/craftstudio
|
|
273
|
+
[signals]: https://docs.godotengine.org/en/stable/getting_started/step_by_step/signals.html
|
|
274
|
+
[npm]: https://docs.npmjs.com/getting-started/what-is-npm
|
|
275
|
+
[yarn]: https://yarnpkg.com
|
|
276
|
+
[contributing]: ../../CONTRIBUTING.md
|
package/dist/actor/Actor.d.ts
CHANGED
|
@@ -1,39 +1,41 @@
|
|
|
1
1
|
import * as THREE from "three";
|
|
2
2
|
import { type GameInstance } from "../systems/GameInstance.ts";
|
|
3
|
+
import type { ActorComponent } from "./ActorComponent.ts";
|
|
3
4
|
import { ActorTree } from "./ActorTree.ts";
|
|
4
5
|
import { Transform } from "./Transform.ts";
|
|
5
6
|
import type { Behavior } from "../components/script/Behavior.ts";
|
|
6
7
|
import type { Component } from "../components/types.ts";
|
|
7
|
-
type ComponentConstructor = new (actor: Actor
|
|
8
|
-
type RequiresOptions<T extends ComponentConstructor> = T extends new (actor: Actor
|
|
9
|
-
export interface ActorOptions {
|
|
8
|
+
type ComponentConstructor = new (actor: Actor<any>, ...args: any[]) => Component;
|
|
9
|
+
type RequiresOptions<T extends ComponentConstructor> = T extends new (actor: Actor<any>, options: infer O, ...args: any[]) => any ? undefined extends O ? false : true : false;
|
|
10
|
+
export interface ActorOptions<TContext = Record<string, unknown>> {
|
|
10
11
|
name: string;
|
|
11
|
-
parent?: Actor | null;
|
|
12
|
+
parent?: Actor<TContext> | null;
|
|
12
13
|
visible?: boolean;
|
|
13
14
|
layer?: number | number[];
|
|
14
15
|
}
|
|
15
|
-
export declare class Actor extends ActorTree {
|
|
16
|
-
gameInstance: GameInstance
|
|
16
|
+
export declare class Actor<TContext = Record<string, unknown>> extends ActorTree<TContext> {
|
|
17
|
+
gameInstance: GameInstance<any, TContext>;
|
|
17
18
|
name: string;
|
|
18
19
|
awoken: boolean;
|
|
19
|
-
parent: Actor | null;
|
|
20
|
+
parent: Actor<TContext> | null;
|
|
20
21
|
components: Component[];
|
|
21
|
-
behaviors: Record<string, Behavior<any>[]>;
|
|
22
|
+
behaviors: Record<string, Behavior<any, TContext>[]>;
|
|
22
23
|
transform: Transform;
|
|
23
24
|
pendingForDestruction: boolean;
|
|
24
25
|
threeObject: THREE.Group<THREE.Object3DEventMap>;
|
|
25
|
-
constructor(gameInstance: GameInstance, options: ActorOptions);
|
|
26
|
+
constructor(gameInstance: GameInstance<any, any>, options: ActorOptions<TContext>);
|
|
26
27
|
registerComponent<T extends ComponentConstructor>(componentClass: T, ...args: RequiresOptions<T> extends true ? [options: ConstructorParameters<T>[1], callback?: (component: InstanceType<T>) => void] : [options?: ConstructorParameters<T>[1], callback?: (component: InstanceType<T>) => void]): this;
|
|
27
28
|
registerComponentAndGet<T extends ComponentConstructor>(componentClass: T, ...args: RequiresOptions<T> extends true ? [options: ConstructorParameters<T>[1]] : [options?: ConstructorParameters<T>[1]]): InstanceType<T>;
|
|
29
|
+
getComponentByName<T extends ActorComponent<TContext>>(actor: Actor<TContext>, componentName: string): T;
|
|
28
30
|
awake(): void;
|
|
29
31
|
update(deltaTime: number): void;
|
|
30
32
|
isDestroyed(): boolean;
|
|
31
33
|
destroy(): void;
|
|
32
34
|
markDestructionPending(): void;
|
|
33
|
-
addBehavior<T extends new (...args: any) => Behavior
|
|
35
|
+
addBehavior<T extends new (...args: any) => Behavior<any, TContext>>(behaviorClass: T, properties?: ConstructorParameters<T>[0]): Behavior<any, TContext>;
|
|
34
36
|
getBehavior<T extends new (...args: any) => any>(behaviorClass: T): InstanceType<T> | null;
|
|
35
37
|
getBehaviors<T extends new (...args: any) => any>(behaviorClass: T): IterableIterator<InstanceType<T>>;
|
|
36
|
-
setParent(newParent: Actor
|
|
38
|
+
setParent(newParent: Actor<TContext>, keepLocal?: boolean): void;
|
|
37
39
|
}
|
|
38
40
|
export {};
|
|
39
41
|
//# sourceMappingURL=Actor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Actor.d.ts","sourceRoot":"","sources":["../../src/actor/Actor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AACjE,OAAO,KAAK,EACV,SAAS,EACV,MAAM,wBAAwB,CAAC;AAEhC,KAAK,oBAAoB,GAAG,KAAK,KAAK,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"Actor.d.ts","sourceRoot":"","sources":["../../src/actor/Actor.ts"],"names":[],"mappings":"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"}
|
package/dist/actor/Actor.js
CHANGED
|
@@ -60,6 +60,13 @@ export class Actor extends ActorTree {
|
|
|
60
60
|
}
|
|
61
61
|
return component;
|
|
62
62
|
}
|
|
63
|
+
getComponentByName(actor, componentName) {
|
|
64
|
+
const component = actor.components.find((comp) => comp.typeName === componentName);
|
|
65
|
+
if (!component) {
|
|
66
|
+
throw new Error(`Component with typeName "${componentName}" not found on actor "${actor.name}"`);
|
|
67
|
+
}
|
|
68
|
+
return component;
|
|
69
|
+
}
|
|
63
70
|
awake() {
|
|
64
71
|
this.components.forEach((component) => component.awake?.());
|
|
65
72
|
}
|
package/dist/actor/Actor.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Actor.js","sourceRoot":"","sources":["../../src/actor/Actor.ts"],"names":[],"mappings":"AAAA,kCAAkC;AAClC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,+BAA+B;AAC/B,OAAO,EAAqB,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"Actor.js","sourceRoot":"","sources":["../../src/actor/Actor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,23 +1,23 @@
|
|
|
1
1
|
import { EventEmitter } from "@posva/event-emitter";
|
|
2
2
|
import { Actor } from "./Actor.ts";
|
|
3
3
|
import type { Component, FreeComponentEnum } from "../components/types.ts";
|
|
4
|
-
export interface ActorComponentOptions {
|
|
5
|
-
actor: Actor
|
|
4
|
+
export interface ActorComponentOptions<TContext = Record<string, unknown>> {
|
|
5
|
+
actor: Actor<TContext>;
|
|
6
6
|
typeName: FreeComponentEnum;
|
|
7
7
|
}
|
|
8
8
|
export type ActorComponentEvents = {
|
|
9
9
|
metadataInitialized: [];
|
|
10
10
|
};
|
|
11
|
-
export declare class ActorComponent extends EventEmitter<ActorComponentEvents> implements Component {
|
|
11
|
+
export declare class ActorComponent<TContext = Record<string, unknown>> extends EventEmitter<ActorComponentEvents> implements Component {
|
|
12
12
|
#private;
|
|
13
13
|
protected static Id: number;
|
|
14
14
|
static generateNextId(): number;
|
|
15
15
|
static clearId(): void;
|
|
16
16
|
id: number;
|
|
17
|
-
actor: Actor
|
|
17
|
+
actor: Actor<TContext>;
|
|
18
18
|
typeName: FreeComponentEnum;
|
|
19
19
|
pendingForDestruction: boolean;
|
|
20
|
-
constructor(options: ActorComponentOptions);
|
|
20
|
+
constructor(options: ActorComponentOptions<TContext>);
|
|
21
21
|
isDestroyed(): boolean;
|
|
22
22
|
destroy(): void;
|
|
23
23
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActorComponent.d.ts","sourceRoot":"","sources":["../../src/actor/ActorComponent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGpD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO,KAAK,EACV,SAAS,EACT,iBAAiB,EAClB,MAAM,wBAAwB,CAAC;AAEhC,MAAM,WAAW,qBAAqB;
|
|
1
|
+
{"version":3,"file":"ActorComponent.d.ts","sourceRoot":"","sources":["../../src/actor/ActorComponent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGpD,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO,KAAK,EACV,SAAS,EACT,iBAAiB,EAClB,MAAM,wBAAwB,CAAC;AAEhC,MAAM,WAAW,qBAAqB,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACvE,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IACvB,QAAQ,EAAE,iBAAiB,CAAC;CAC7B;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,mBAAmB,EAAE,EAAE,CAAC;CACzB,CAAC;AAEF,qBAAa,cAAc,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAE,SAAQ,YAAY,CAAC,oBAAoB,CAAE,YAAW,SAAS;;IAC7H,SAAS,CAAC,MAAM,CAAC,EAAE,SAAK;IAExB,MAAM,CAAC,cAAc;IAIrB,MAAM,CAAC,OAAO;IAId,EAAE,SAAmC;IACrC,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IACvB,QAAQ,EAAE,iBAAiB,CAAC;IAE5B,qBAAqB,UAAS;gBAG5B,OAAO,EAAE,qBAAqB,CAAC,QAAQ,CAAC;IA0B1C,WAAW;IAIX,OAAO;CAWR"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActorComponent.js","sourceRoot":"","sources":["../../src/actor/ActorComponent.ts"],"names":[],"mappings":"AAAA,kCAAkC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,+BAA+B;AAC/B,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAe7D,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"ActorComponent.js","sourceRoot":"","sources":["../../src/actor/ActorComponent.ts"],"names":[],"mappings":"AAAA,kCAAkC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAEpD,+BAA+B;AAC/B,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAe7D,MAAM,OAAO,cAAmD,SAAQ,YAAkC;IAC9F,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC;IAExB,MAAM,CAAC,cAAc;QACnB,OAAO,IAAI,CAAC,EAAE,EAAE,CAAC;IACnB,CAAC;IAED,MAAM,CAAC,OAAO;QACZ,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;IACd,CAAC;IAED,EAAE,GAAG,cAAc,CAAC,cAAc,EAAE,CAAC;IACrC,KAAK,CAAkB;IACvB,QAAQ,CAAoB;IAE5B,qBAAqB,GAAG,KAAK,CAAC;IAE9B,YACE,OAAwC;QAExC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QAEjC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE/D,0DAA0D;QAC1D,mDAAmD;QACnD,cAAc,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,qBAAqB;QACnB,MAAM,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAC1C,MAAM,QAAQ,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAE1C,IAAI,QAAQ,EAAE,CAAC;YACb,KAAK,MAAM,YAAY,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;gBAC5C,IAAI,CAAC,YAAY,CAAC,GAAG,IAAI,WAAW,EAAE,CAAC;YACzC,CAAC;QACH,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IACnC,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,qBAAqB,CAAC;IACpC,CAAC;IAED,OAAO;QACL,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,qBAAqB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACrF,IAAI,UAAU,KAAK,CAAC,CAAC,EAAE,CAAC;YACtB,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,qBAAqB,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;QAC5E,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAClD,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;YACjB,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;QACzC,CAAC;IACH,CAAC"}
|
|
@@ -1,31 +1,31 @@
|
|
|
1
1
|
import { Actor } from "./Actor.ts";
|
|
2
|
-
export type ActorTreeNode = {
|
|
3
|
-
actor: Actor
|
|
4
|
-
parent?: Actor
|
|
2
|
+
export type ActorTreeNode<TContext = Record<string, unknown>> = {
|
|
3
|
+
actor: Actor<TContext>;
|
|
4
|
+
parent?: Actor<TContext>;
|
|
5
5
|
};
|
|
6
|
-
export interface ActorTreeOptions {
|
|
7
|
-
addCallback?: (actor: Actor) => void;
|
|
8
|
-
removeCallback?: (actor: Actor) => void;
|
|
6
|
+
export interface ActorTreeOptions<TContext = Record<string, unknown>> {
|
|
7
|
+
addCallback?: (actor: Actor<TContext>) => void;
|
|
8
|
+
removeCallback?: (actor: Actor<TContext>) => void;
|
|
9
9
|
}
|
|
10
|
-
export declare class ActorTree {
|
|
10
|
+
export declare class ActorTree<TContext = Record<string, unknown>> {
|
|
11
11
|
#private;
|
|
12
|
-
children: Actor[];
|
|
13
|
-
constructor(options?: ActorTreeOptions);
|
|
14
|
-
add(actor: Actor): void;
|
|
15
|
-
remove(actor: Actor): void;
|
|
16
|
-
getActors(pattern: string): IterableIterator<Actor
|
|
12
|
+
children: Actor<TContext>[];
|
|
13
|
+
constructor(options?: ActorTreeOptions<TContext>);
|
|
14
|
+
add(actor: Actor<TContext>): void;
|
|
15
|
+
remove(actor: Actor<TContext>): void;
|
|
16
|
+
getActors(pattern: string): IterableIterator<Actor<TContext>>;
|
|
17
17
|
/**
|
|
18
18
|
* @example
|
|
19
19
|
* const player = actor.children.getActor("player");
|
|
20
20
|
* const playerPhysicsBox = actor.children.getActor("player/physics_box");
|
|
21
21
|
*/
|
|
22
|
-
getActor(name: string): Actor | null;
|
|
23
|
-
getRootActors(): IterableIterator<Actor
|
|
24
|
-
getAllActors(): IterableIterator<Actor
|
|
25
|
-
destroyActor(actor: Actor): void;
|
|
22
|
+
getActor(name: string): Actor<TContext> | null;
|
|
23
|
+
getRootActors(): IterableIterator<Actor<TContext>>;
|
|
24
|
+
getAllActors(): IterableIterator<Actor<TContext>>;
|
|
25
|
+
destroyActor(actor: Actor<TContext>): void;
|
|
26
26
|
destroyAllActors(): void;
|
|
27
|
-
walk(): IterableIterator<ActorTreeNode
|
|
28
|
-
walkFromNode(rootNode: Actor): IterableIterator<ActorTreeNode
|
|
29
|
-
[Symbol.iterator](): IterableIterator<Actor
|
|
27
|
+
walk(): IterableIterator<ActorTreeNode<TContext>>;
|
|
28
|
+
walkFromNode(rootNode: Actor<TContext>): IterableIterator<ActorTreeNode<TContext>>;
|
|
29
|
+
[Symbol.iterator](): IterableIterator<Actor<TContext>>;
|
|
30
30
|
}
|
|
31
31
|
//# sourceMappingURL=ActorTree.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActorTree.d.ts","sourceRoot":"","sources":["../../src/actor/ActorTree.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,MAAM,MAAM,aAAa,GAAG;
|
|
1
|
+
{"version":3,"file":"ActorTree.d.ts","sourceRoot":"","sources":["../../src/actor/ActorTree.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,MAAM,MAAM,aAAa,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI;IAC9D,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;IACvB,MAAM,CAAC,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;CAC1B,CAAC;AAEF,MAAM,WAAW,gBAAgB,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAClE,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC;IAC/C,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,KAAK,IAAI,CAAC;CACnD;AAED,qBAAa,SAAS,CAAC,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;;IAIvD,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAM;gBAG/B,OAAO,GAAE,gBAAgB,CAAC,QAAQ,CAAM;IAM1C,GAAG,CACD,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,GACrB,IAAI;IAKP,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,GAAG,IAAI;IAQlC,SAAS,CACT,OAAO,EAAE,MAAM,GACd,gBAAgB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAuFpC;;;;OAIG;IACH,QAAQ,CACN,IAAI,EAAE,MAAM,GACX,KAAK,CAAC,QAAQ,CAAC,GAAG,IAAI;IAqCvB,aAAa,IAAI,gBAAgB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAQlD,YAAY,IAAI,gBAAgB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAMnD,YAAY,CACV,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC;IAOxB,gBAAgB;IAiBd,IAAI,IAAI,gBAAgB,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAMjD,YAAY,CACZ,QAAQ,EAAE,KAAK,CAAC,QAAQ,CAAC,GACxB,gBAAgB,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IAM1C,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,gBAAgB,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;CAOzD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ActorTree.js","sourceRoot":"","sources":["../../src/actor/ActorTree.ts"],"names":[],"mappings":"AAAA,kCAAkC;AAClC,OAAO,EAAE,MAAM,WAAW,CAAC;AAE3B,+BAA+B;AAC/B,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAYnC,MAAM,OAAO,SAAS;IACpB,YAAY,
|
|
1
|
+
{"version":3,"file":"ActorTree.js","sourceRoot":"","sources":["../../src/actor/ActorTree.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { GameInstance } from "../systems/GameInstance.ts";
|
|
2
2
|
export interface GlobalsAdapter {
|
|
3
|
-
setGame(instance: GameInstance<any>): void;
|
|
3
|
+
setGame(instance: GameInstance<any, any>): void;
|
|
4
4
|
}
|
|
5
5
|
export declare class BrowserGlobalsAdapter implements GlobalsAdapter {
|
|
6
|
-
setGame(instance: GameInstance<any>): void;
|
|
6
|
+
setGame(instance: GameInstance<any, any>): void;
|
|
7
7
|
}
|
|
8
8
|
//# sourceMappingURL=global.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"global.d.ts","sourceRoot":"","sources":["../../src/adapters/global.ts"],"names":[],"mappings":"AACA,OAAO,EACL,YAAY,EACb,MAAM,4BAA4B,CAAC;AAEpC,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,QAAQ,EAAE,YAAY,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"global.d.ts","sourceRoot":"","sources":["../../src/adapters/global.ts"],"names":[],"mappings":"AACA,OAAO,EACL,YAAY,EACb,MAAM,4BAA4B,CAAC;AAEpC,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,QAAQ,EAAE,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC;CACjD;AAED,qBAAa,qBAAsB,YAAW,cAAc;IAC1D,OAAO,CACL,QAAQ,EAAE,YAAY,CAAC,GAAG,EAAE,GAAG,CAAC;CAInC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"global.js","sourceRoot":"","sources":["../../src/adapters/global.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,OAAO,EACL,YAAY,EACb,MAAM,4BAA4B,CAAC;AAMpC,MAAM,OAAO,qBAAqB;IAChC,OAAO,CACL,
|
|
1
|
+
{"version":3,"file":"global.js","sourceRoot":"","sources":["../../src/adapters/global.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,OAAO,EACL,YAAY,EACb,MAAM,4BAA4B,CAAC;AAMpC,MAAM,OAAO,qBAAqB;IAChC,OAAO,CACL,QAAgC;QAEhC,UAAU,CAAC,IAAI,GAAG,QAAQ,CAAC;IAC7B,CAAC;CACF"}
|
|
@@ -23,7 +23,7 @@ export declare class Camera3DControls extends Behavior {
|
|
|
23
23
|
camera: THREE.PerspectiveCamera;
|
|
24
24
|
maxRollUp: number;
|
|
25
25
|
maxRollDown: number;
|
|
26
|
-
constructor(actor: Actor
|
|
26
|
+
constructor(actor: Actor<any>, options?: Camera3DControlsOptions);
|
|
27
27
|
set speed(speed: number);
|
|
28
28
|
set rollSpeed(speed: number);
|
|
29
29
|
update(): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Camera3DControls.d.ts","sourceRoot":"","sources":["../../../src/components/camera/Camera3DControls.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEjD,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,EAAE;QACT,OAAO,CAAC,EAAE,mBAAmB,CAAC;QAC9B,QAAQ,CAAC,EAAE,mBAAmB,CAAC;QAC/B,IAAI,CAAC,EAAE,mBAAmB,CAAC;QAC3B,KAAK,CAAC,EAAE,mBAAmB,CAAC;QAC5B,EAAE,CAAC,EAAE,mBAAmB,CAAC;QACzB,IAAI,CAAC,EAAE,mBAAmB,CAAC;QAC3B,UAAU,CAAC,EAAE,OAAO,CAAC,MAAM,OAAO,gBAAgB,EAAE,UAAU,GAAG,YAAY,CAAC,CAAC;KAChF,CAAC;IACF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,gBAAiB,SAAQ,QAAQ;;IAC5C,MAAM,EAAE,KAAK,CAAC,iBAAiB,CAAC;IAGhC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;gBAKlB,KAAK,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"Camera3DControls.d.ts","sourceRoot":"","sources":["../../../src/components/camera/Camera3DControls.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AACnE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEjD,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,EAAE;QACT,OAAO,CAAC,EAAE,mBAAmB,CAAC;QAC9B,QAAQ,CAAC,EAAE,mBAAmB,CAAC;QAC/B,IAAI,CAAC,EAAE,mBAAmB,CAAC;QAC3B,KAAK,CAAC,EAAE,mBAAmB,CAAC;QAC5B,EAAE,CAAC,EAAE,mBAAmB,CAAC;QACzB,IAAI,CAAC,EAAE,mBAAmB,CAAC;QAC3B,UAAU,CAAC,EAAE,OAAO,CAAC,MAAM,OAAO,gBAAgB,EAAE,UAAU,GAAG,YAAY,CAAC,CAAC;KAChF,CAAC;IACF,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,qBAAa,gBAAiB,SAAQ,QAAQ;;IAC5C,MAAM,EAAE,KAAK,CAAC,iBAAiB,CAAC;IAGhC,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;gBAKlB,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,EACjB,OAAO,GAAE,uBAA4B;IAyBvC,IAAI,KAAK,CACP,KAAK,EAAE,MAAM,EAGd;IAED,IAAI,SAAS,CACX,KAAK,EAAE,MAAM,EAGd;IAgBD,MAAM;CAqCP"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Camera3DControls.js","sourceRoot":"","sources":["../../../src/components/camera/Camera3DControls.ts"],"names":[],"mappings":"AAAA,kCAAkC;AAClC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAK/B,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7C,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAkBjD,MAAM,OAAO,gBAAiB,SAAQ,QAAQ;IAC5C,MAAM,CAA0B;IAChC,SAAS,CAA6D;IAEtE,SAAS,CAAS;IAClB,WAAW,CAAS;IACpB,cAAc,CAAS;IACvB,cAAc,CAAS;IAEvB,YACE,
|
|
1
|
+
{"version":3,"file":"Camera3DControls.js","sourceRoot":"","sources":["../../../src/components/camera/Camera3DControls.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,10 +12,10 @@ export interface ModelRendererOptions {
|
|
|
12
12
|
debug?: boolean;
|
|
13
13
|
animations?: ModelRendererAnimationOptions;
|
|
14
14
|
}
|
|
15
|
-
export declare class ModelRenderer extends ActorComponent {
|
|
15
|
+
export declare class ModelRenderer extends ActorComponent<any> {
|
|
16
16
|
#private;
|
|
17
17
|
animation: ModelAnimation;
|
|
18
|
-
constructor(actor: Actor
|
|
18
|
+
constructor(actor: Actor<any>, options: ModelRendererOptions);
|
|
19
19
|
awake(): void;
|
|
20
20
|
start(): void;
|
|
21
21
|
update(deltaTime: number): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModelRenderer.d.ts","sourceRoot":"","sources":["../../../../src/components/renderers/model/ModelRenderer.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAGhE,OAAO,EACL,cAAc,EACd,KAAK,8BAA8B,EACpC,MAAM,qBAAqB,CAAC;AAE7B,MAAM,WAAW,6BAA6B;IAC5C,gBAAgB,CAAC,EAAE,8BAA8B,CAAC;IAClD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,6BAA6B,CAAC;CAC5C;AAED,qBAAa,aAAc,SAAQ,cAAc;;
|
|
1
|
+
{"version":3,"file":"ModelRenderer.d.ts","sourceRoot":"","sources":["../../../../src/components/renderers/model/ModelRenderer.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAGhE,OAAO,EACL,cAAc,EACd,KAAK,8BAA8B,EACpC,MAAM,qBAAqB,CAAC;AAE7B,MAAM,WAAW,6BAA6B;IAC5C,gBAAgB,CAAC,EAAE,8BAA8B,CAAC;IAClD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,UAAU,CAAC,EAAE,6BAA6B,CAAC;CAC5C;AAED,qBAAa,aAAc,SAAQ,cAAc,CAAC,GAAG,CAAC;;IAKpD,SAAS,iBAAwB;gBAG/B,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,EACjB,OAAO,EAAE,oBAAoB;IAmB/B,KAAK;IAcL,KAAK;IAIL,MAAM,CACJ,SAAS,EAAE,MAAM;IAKV,OAAO,IAAI,IAAI;CAIzB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ModelRenderer.js","sourceRoot":"","sources":["../../../../src/components/renderers/model/ModelRenderer.ts"],"names":[],"mappings":"AAAA,kCAAkC;AAClC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,+BAA+B;AAC/B,OAAO,KAAK,OAAO,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,KAAK,EAAc,MAAM,aAAa,CAAC;AAEhD,OAAO,EACL,cAAc,EAEf,MAAM,qBAAqB,CAAC;AAgB7B,MAAM,OAAO,aAAc,SAAQ,
|
|
1
|
+
{"version":3,"file":"ModelRenderer.js","sourceRoot":"","sources":["../../../../src/components/renderers/model/ModelRenderer.ts"],"names":[],"mappings":"AAAA,kCAAkC;AAClC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,+BAA+B;AAC/B,OAAO,KAAK,OAAO,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,KAAK,EAAc,MAAM,aAAa,CAAC;AAEhD,OAAO,EACL,cAAc,EAEf,MAAM,qBAAqB,CAAC;AAgB7B,MAAM,OAAO,aAAc,SAAQ,cAAmB;IACpD,MAAM,CAA2B;IACjC,OAAO,CAAsC;IAC7C,MAAM,GAAG,KAAK,CAAC;IAEf,SAAS,GAAG,IAAI,cAAc,EAAE,CAAC;IAEjC,YACE,KAAiB,EACjB,OAA6B;QAE7B,KAAK,CAAC;YACJ,KAAK;YACL,QAAQ,EAAE,eAAe;SAC1B,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC;QAErC,MAAM,EAAE,UAAU,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC;QACpC,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;YACvB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAC1C,CAAC;QACD,IAAI,UAAU,CAAC,gBAAgB,EAAE,CAAC;YAChC,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;IAED,KAAK;QACH,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC;QACjD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAC,CAAC;QACtC,CAAC;QAED,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACnC,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,SAAS,CAAC,QAAQ,CACrB,IAAI,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CACvC,CAAC;QACF,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;IACtC,CAAC;IAED,KAAK;QACH,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;IAED,MAAM,CACJ,SAAiB;QAEjB,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IACnC,CAAC;IAEQ,OAAO;QACd,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC5C,KAAK,CAAC,OAAO,EAAE,CAAC;IAClB,CAAC;CACF"}
|