melonjs 19.6.0 → 19.7.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 +5 -4
- package/build/application/application.d.ts +34 -2
- package/build/application/application.d.ts.map +1 -1
- package/build/application/settings.d.ts +37 -1
- package/build/application/settings.d.ts.map +1 -1
- package/build/camera/camera2d.d.ts +59 -7
- package/build/camera/camera2d.d.ts.map +1 -1
- package/build/camera/camera3d.d.ts +335 -0
- package/build/camera/camera3d.d.ts.map +1 -0
- package/build/camera/frustum.d.ts +162 -0
- package/build/camera/frustum.d.ts.map +1 -0
- package/build/const.d.ts +30 -3
- package/build/const.d.ts.map +1 -1
- package/build/geometries/sphere.d.ts +105 -0
- package/build/geometries/sphere.d.ts.map +1 -0
- package/build/index.d.ts +6 -4
- package/build/index.d.ts.map +1 -1
- package/build/index.js +27489 -24693
- package/build/index.js.map +4 -4
- package/build/input/keyboard.d.ts.map +1 -1
- package/build/input/pointerevent.d.ts.map +1 -1
- package/build/lang/deprecated.d.ts +18 -0
- package/build/lang/deprecated.d.ts.map +1 -1
- package/build/loader/loadingscreen.d.ts +8 -0
- package/build/loader/loadingscreen.d.ts.map +1 -1
- package/build/loader/parsers/mtl.d.ts.map +1 -1
- package/build/loader/parsers/obj.d.ts.map +1 -1
- package/build/math/color.d.ts +43 -5
- package/build/math/color.d.ts.map +1 -1
- package/build/math/math.d.ts +44 -0
- package/build/math/math.d.ts.map +1 -1
- package/build/math/observableVector2d.d.ts +14 -2
- package/build/math/observableVector2d.d.ts.map +1 -1
- package/build/math/observableVector3d.d.ts +14 -2
- package/build/math/observableVector3d.d.ts.map +1 -1
- package/build/math/vector2d.d.ts +16 -2
- package/build/math/vector2d.d.ts.map +1 -1
- package/build/math/vector3d.d.ts +16 -2
- package/build/math/vector3d.d.ts.map +1 -1
- package/build/particles/emitter.d.ts.map +1 -1
- package/build/physics/adapter.d.ts +77 -0
- package/build/physics/adapter.d.ts.map +1 -1
- package/build/physics/broadphase/aabb3d.d.ts +115 -0
- package/build/physics/broadphase/aabb3d.d.ts.map +1 -0
- package/build/physics/broadphase/broadphase.d.ts +74 -0
- package/build/physics/broadphase/broadphase.d.ts.map +1 -0
- package/build/physics/broadphase/factory.d.ts +30 -0
- package/build/physics/broadphase/factory.d.ts.map +1 -0
- package/build/physics/broadphase/octree.d.ts +325 -0
- package/build/physics/broadphase/octree.d.ts.map +1 -0
- package/build/physics/broadphase/quadtree.d.ts +184 -0
- package/build/physics/broadphase/quadtree.d.ts.map +1 -0
- package/build/physics/builtin/body.d.ts +7 -3
- package/build/physics/builtin/body.d.ts.map +1 -1
- package/build/physics/builtin/builtin-adapter.d.ts +6 -1
- package/build/physics/builtin/builtin-adapter.d.ts.map +1 -1
- package/build/physics/builtin/raycast.d.ts.map +1 -1
- package/build/physics/world.d.ts +15 -4
- package/build/physics/world.d.ts.map +1 -1
- package/build/renderable/container.d.ts +51 -5
- package/build/renderable/container.d.ts.map +1 -1
- package/build/renderable/mesh.d.ts +85 -10
- package/build/renderable/mesh.d.ts.map +1 -1
- package/build/renderable/renderable.d.ts +9 -4
- package/build/renderable/renderable.d.ts.map +1 -1
- package/build/state/stage.d.ts +8 -0
- package/build/state/stage.d.ts.map +1 -1
- package/build/state/state.d.ts.map +1 -1
- package/build/system/device.d.ts +196 -310
- package/build/system/device.d.ts.map +1 -1
- package/build/system/event.d.ts +49 -0
- package/build/system/event.d.ts.map +1 -1
- package/build/system/fullscreen.d.ts +16 -0
- package/build/system/fullscreen.d.ts.map +1 -0
- package/build/system/platform.d.ts +32 -4
- package/build/system/platform.d.ts.map +1 -1
- package/build/system/timer.d.ts.map +1 -1
- package/build/utils/function.d.ts +7 -1
- package/build/utils/function.d.ts.map +1 -1
- package/build/utils/types.d.ts +5 -0
- package/build/utils/types.d.ts.map +1 -1
- package/build/video/buffer/vertex.d.ts +19 -4
- package/build/video/buffer/vertex.d.ts.map +1 -1
- package/build/video/canvas/canvas_renderer.d.ts +4 -4
- package/build/video/canvas/canvas_renderer.d.ts.map +1 -1
- package/build/video/canvas_factory.d.ts +25 -0
- package/build/video/canvas_factory.d.ts.map +1 -0
- package/build/video/renderer.d.ts +89 -15
- package/build/video/renderer.d.ts.map +1 -1
- package/build/video/renderstate.d.ts +12 -0
- package/build/video/renderstate.d.ts.map +1 -1
- package/build/video/rendertarget/rendertarget.d.ts +3 -1
- package/build/video/rendertarget/rendertarget.d.ts.map +1 -1
- package/build/video/texture/cache.d.ts +5 -0
- package/build/video/texture/cache.d.ts.map +1 -1
- package/build/video/texture/resource.d.ts +22 -14
- package/build/video/texture/resource.d.ts.map +1 -1
- package/build/video/video.d.ts +3 -1
- package/build/video/video.d.ts.map +1 -1
- package/build/video/webgl/batchers/batcher.d.ts.map +1 -1
- package/build/video/webgl/batchers/lit_quad_batcher.d.ts.map +1 -1
- package/build/video/webgl/batchers/material_batcher.d.ts +9 -0
- package/build/video/webgl/batchers/material_batcher.d.ts.map +1 -1
- package/build/video/webgl/batchers/mesh_batcher.d.ts +45 -1
- package/build/video/webgl/batchers/mesh_batcher.d.ts.map +1 -1
- package/build/video/webgl/batchers/primitive_batcher.d.ts.map +1 -1
- package/build/video/webgl/batchers/quad_batcher.d.ts +2 -2
- package/build/video/webgl/batchers/quad_batcher.d.ts.map +1 -1
- package/build/video/webgl/renderers/tmxlayer/orthogonal.d.ts.map +1 -1
- package/build/video/webgl/webgl_renderer.d.ts +2 -2
- package/build/video/webgl/webgl_renderer.d.ts.map +1 -1
- package/package.json +3 -2
- package/build/physics/builtin/quadtree.d.ts +0 -112
- package/build/physics/builtin/quadtree.d.ts.map +0 -1
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
import type { Bounds } from "../bounds.ts";
|
|
2
|
+
import type World from "../world.js";
|
|
3
|
+
import type { Broadphase } from "./broadphase.ts";
|
|
4
|
+
/**
|
|
5
|
+
* Minimal axis-aligned rectangle shape consumed by `QuadTree` — the
|
|
6
|
+
* full {@link Bounds} class satisfies it structurally, so do the
|
|
7
|
+
* `{ left, top, width, height }` POJOs `split` allocates for
|
|
8
|
+
* subnodes. Kept as an exported interface so any subclass / adapter
|
|
9
|
+
* that constructs its own root bounds doesn't have to import
|
|
10
|
+
* `Bounds`.
|
|
11
|
+
*/
|
|
12
|
+
export interface QuadRect {
|
|
13
|
+
left: number;
|
|
14
|
+
top: number;
|
|
15
|
+
width: number;
|
|
16
|
+
height: number;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Structural shape for an item inserted into the `QuadTree`. Every
|
|
20
|
+
* Renderable satisfies it; `getBounds()` is the only required
|
|
21
|
+
* member. `isFloating` triggers the viewport-localToWorld coord
|
|
22
|
+
* remap; `isKinematic` / `name` / `addChild` are consulted only by
|
|
23
|
+
* `insertContainer` / `removeContainer` when walking a subtree.
|
|
24
|
+
*/
|
|
25
|
+
export interface QuadTreeItem {
|
|
26
|
+
getBounds(): QuadRect;
|
|
27
|
+
isFloating?: boolean;
|
|
28
|
+
isKinematic?: boolean;
|
|
29
|
+
name?: string;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Optional comparator passed to {@link QuadTree.retrieve} — invoked
|
|
33
|
+
* once on the assembled candidate array, only when `retrieve` was
|
|
34
|
+
* called in root mode (no caller-supplied `result`).
|
|
35
|
+
*/
|
|
36
|
+
export type QuadTreeSortFn = (a: QuadTreeItem, b: QuadTreeItem) => number;
|
|
37
|
+
/**
|
|
38
|
+
* a QuadTree implementation in JavaScript, a 2d spatial subdivision algorithm.
|
|
39
|
+
* @category Physics
|
|
40
|
+
* @see World.broadphase
|
|
41
|
+
*/
|
|
42
|
+
export default class QuadTree implements Broadphase<QuadTreeItem> {
|
|
43
|
+
world: World;
|
|
44
|
+
bounds: QuadRect | Bounds;
|
|
45
|
+
max_objects: number;
|
|
46
|
+
max_levels: number;
|
|
47
|
+
level: number;
|
|
48
|
+
objects: QuadTreeItem[];
|
|
49
|
+
nodes: QuadTree[];
|
|
50
|
+
/**
|
|
51
|
+
* Total number of objects in this subtree (this node's own
|
|
52
|
+
* `objects` plus every descendant's). Maintained by `insert`
|
|
53
|
+
* and `remove` so `isPrunable` / `hasChildren` are O(1) reads
|
|
54
|
+
* instead of O(tree-size) walks. Reset to 0 in `clear`.
|
|
55
|
+
* @ignore
|
|
56
|
+
*/
|
|
57
|
+
_subtreeCount: number;
|
|
58
|
+
/**
|
|
59
|
+
* Root-only scratch array reused across `retrieve` calls to
|
|
60
|
+
* avoid allocating a fresh array per pointer event / per
|
|
61
|
+
* narrow-phase query. Only the root allocates one; recursive
|
|
62
|
+
* subnode calls receive the array via the `result` arg.
|
|
63
|
+
* @ignore
|
|
64
|
+
*/
|
|
65
|
+
_retrieveScratch: QuadTreeItem[] | null;
|
|
66
|
+
/**
|
|
67
|
+
* @param world - the physic world this QuadTree belongs to
|
|
68
|
+
* @param bounds - bounds of the node
|
|
69
|
+
* @param [max_objects=4] - max objects a node can hold before splitting into 4 subnodes
|
|
70
|
+
* @param [max_levels=4] - total max levels inside root QuadTree
|
|
71
|
+
* @param [level] - depth level, required for subnodes
|
|
72
|
+
*/
|
|
73
|
+
constructor(world: World, bounds: QuadRect | Bounds, max_objects?: number, max_levels?: number, level?: number);
|
|
74
|
+
split(): void;
|
|
75
|
+
getIndex(item: QuadTreeItem): number;
|
|
76
|
+
/**
|
|
77
|
+
* Insert the given object container into the node.
|
|
78
|
+
*
|
|
79
|
+
* Typed against the structural duck shape (`getChildren() →
|
|
80
|
+
* ContainerOrChild[]`) rather than the concrete `Container` class
|
|
81
|
+
* so the recursive call below — where `child` is the structural
|
|
82
|
+
* `ContainerOrChild` shape from `getChildren()`, not a `Container`
|
|
83
|
+
* instance — type-checks without an `as unknown as Container` cast.
|
|
84
|
+
* `Container` itself satisfies the shape (its `getChildren()`
|
|
85
|
+
* returns `Renderable[]`, which matches the looser structural
|
|
86
|
+
* `ContainerOrChild[]`).
|
|
87
|
+
* @param container - group of objects to be added
|
|
88
|
+
*/
|
|
89
|
+
insertContainer(container: ContainerLike): void;
|
|
90
|
+
/**
|
|
91
|
+
* Insert the given object into the node. If the node
|
|
92
|
+
* exceeds the capacity, it will split and add all
|
|
93
|
+
* objects to their corresponding subnodes.
|
|
94
|
+
* @param item - object to be added
|
|
95
|
+
*/
|
|
96
|
+
insert(item: QuadTreeItem): void;
|
|
97
|
+
/**
|
|
98
|
+
* Recursively remove the given container and its descendants from
|
|
99
|
+
* the quadtree. Mirrors `insertContainer` so the broadphase can be
|
|
100
|
+
* kept in sync when a subtree is detached via
|
|
101
|
+
* `Container.removeChildNow` between two `world.update()` rebuilds
|
|
102
|
+
* (pointer events fire async in that window and would otherwise
|
|
103
|
+
* hit destroyed renderables).
|
|
104
|
+
* @param container - group of objects to be removed
|
|
105
|
+
*/
|
|
106
|
+
removeContainer(container: ContainerLikeOptional): void;
|
|
107
|
+
/**
|
|
108
|
+
* Return all objects that could collide with the given object.
|
|
109
|
+
*
|
|
110
|
+
* **Re-entrancy contract:** when called with no explicit `result`
|
|
111
|
+
* argument, this method reuses a single root-level scratch array to
|
|
112
|
+
* avoid per-frame allocations. The returned reference is therefore
|
|
113
|
+
* **not safe to retain** past the next `retrieve()` call, AND it is
|
|
114
|
+
* **not safe to issue another scratch-mode `retrieve()` while iterating
|
|
115
|
+
* the previous result** — the second call clears the scratch and
|
|
116
|
+
* refills it, corrupting the outer iteration. In-engine callers
|
|
117
|
+
* (`pointerevent.ts`, `detector.js`) iterate synchronously and never
|
|
118
|
+
* recurse into `retrieve()`, so they're fine. User-facing portable
|
|
119
|
+
* APIs (`adapter.queryAABB`, `adapter.raycast`) pass their own array
|
|
120
|
+
* via the `result` parameter, which bypasses the scratch entirely
|
|
121
|
+
* and is safe to call from inside collision handlers.
|
|
122
|
+
* @param item - object to be checked against
|
|
123
|
+
* @param [fn] - a sorting function for the returned array
|
|
124
|
+
* @param [result] - optional caller-supplied result array. Pass an
|
|
125
|
+
* explicit (typically empty) array to sidestep the shared scratch —
|
|
126
|
+
* required for re-entrancy safety.
|
|
127
|
+
* @returns array with all detected objects
|
|
128
|
+
*/
|
|
129
|
+
retrieve(item: QuadTreeItem, fn?: QuadTreeSortFn, result?: QuadTreeItem[]): QuadTreeItem[];
|
|
130
|
+
/**
|
|
131
|
+
* Remove the given item from the quadtree.
|
|
132
|
+
* (this function won't recalculate the impacted node)
|
|
133
|
+
* @param item - object to be removed
|
|
134
|
+
* @returns true if the item was found and removed.
|
|
135
|
+
*/
|
|
136
|
+
remove(item: QuadTreeItem): boolean;
|
|
137
|
+
/**
|
|
138
|
+
* return true if the node is prunable
|
|
139
|
+
* @returns true if the node is prunable
|
|
140
|
+
*/
|
|
141
|
+
isPrunable(): boolean;
|
|
142
|
+
/**
|
|
143
|
+
* return true if the node has any children
|
|
144
|
+
* @returns true if the node has any children
|
|
145
|
+
*/
|
|
146
|
+
hasChildren(): boolean;
|
|
147
|
+
/**
|
|
148
|
+
* clear the quadtree
|
|
149
|
+
* @param [bounds] - the bounds to be cleared
|
|
150
|
+
*/
|
|
151
|
+
clear(bounds?: Bounds): void;
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Structural shape consumed by `insertContainer` / `removeContainer`
|
|
155
|
+
* when walking a Container's `getChildren()`. Captures only the
|
|
156
|
+
* fields the walk inspects — keeps the conversion strict-mode clean
|
|
157
|
+
* without leaking `any`.
|
|
158
|
+
*
|
|
159
|
+
* `getChildren` is optional because leaf renderables don't have it;
|
|
160
|
+
* the recursive `insertContainer` narrows via {@link hasGetChildren}.
|
|
161
|
+
* @ignore
|
|
162
|
+
*/
|
|
163
|
+
interface ContainerOrChild extends QuadTreeItem {
|
|
164
|
+
addChild?: (...args: unknown[]) => unknown;
|
|
165
|
+
getChildren?: () => ContainerOrChild[];
|
|
166
|
+
}
|
|
167
|
+
/**
|
|
168
|
+
* Structural shape used as the `insertContainer` /
|
|
169
|
+
* `removeContainer` parameter type. Named (rather than inline) so the
|
|
170
|
+
* JSDoc-aware lint doesn't require nested `@param container.getChildren`
|
|
171
|
+
* documentation at every call site. `Container` itself satisfies this
|
|
172
|
+
* shape; the optional variant covers the case where the World's lazy
|
|
173
|
+
* `children` accessor returns `undefined`.
|
|
174
|
+
* @ignore
|
|
175
|
+
*/
|
|
176
|
+
type ContainerLike = {
|
|
177
|
+
getChildren(): ContainerOrChild[];
|
|
178
|
+
};
|
|
179
|
+
/** @ignore */
|
|
180
|
+
type ContainerLikeOptional = {
|
|
181
|
+
getChildren?(): ContainerOrChild[];
|
|
182
|
+
};
|
|
183
|
+
export {};
|
|
184
|
+
//# sourceMappingURL=quadtree.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quadtree.d.ts","sourceRoot":"","sources":["../../../src/physics/broadphase/quadtree.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,KAAK,MAAM,aAAa,CAAC;AACrC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAclD;;;;;;;GAOG;AACH,MAAM,WAAW,QAAQ;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CACf;AAED;;;;;;GAMG;AACH,MAAM,WAAW,YAAY;IAC5B,SAAS,IAAI,QAAQ,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,IAAI,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;;;GAIG;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,YAAY,KAAK,MAAM,CAAC;AA+C1E;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,QAAS,YAAW,UAAU,CAAC,YAAY,CAAC;IAChE,KAAK,EAAE,KAAK,CAAC;IACb,MAAM,EAAE,QAAQ,GAAG,MAAM,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAElB;;;;;;OAMG;IACH,aAAa,EAAE,MAAM,CAAC;IAEtB;;;;;;OAMG;IACH,gBAAgB,EAAE,YAAY,EAAE,GAAG,IAAI,CAAC;IAExC;;;;;;OAMG;gBAEF,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,QAAQ,GAAG,MAAM,EACzB,WAAW,SAAI,EACf,UAAU,SAAI,EACd,KAAK,SAAI;IAoBV,KAAK;IAuEL,QAAQ,CAAC,IAAI,EAAE,YAAY,GAAG,MAAM;IAiDpC;;;;;;;;;;;;OAYG;IACH,eAAe,CAAC,SAAS,EAAE,aAAa;IA8BxC;;;;;OAKG;IACH,MAAM,CAAC,IAAI,EAAE,YAAY;IA+CzB;;;;;;;;OAQG;IACH,eAAe,CAAC,SAAS,EAAE,qBAAqB;IA0BhD;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,QAAQ,CACP,IAAI,EAAE,YAAY,EAClB,EAAE,CAAC,EAAE,cAAc,EACnB,MAAM,CAAC,EAAE,YAAY,EAAE,GACrB,YAAY,EAAE;IA2CjB;;;;;OAKG;IACH,MAAM,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO;IAsEnC;;;OAGG;IACH,UAAU,IAAI,OAAO;IAMrB;;;OAGG;IACH,WAAW,IAAI,OAAO;IAOtB;;;OAGG;IACH,KAAK,CAAC,MAAM,CAAC,EAAE,MAAM;CAuBrB;AAED;;;;;;;;;GASG;AACH,UAAU,gBAAiB,SAAQ,YAAY;IAC9C,QAAQ,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC;IAC3C,WAAW,CAAC,EAAE,MAAM,gBAAgB,EAAE,CAAC;CACvC;AAED;;;;;;;;GAQG;AACH,KAAK,aAAa,GAAG;IAAE,WAAW,IAAI,gBAAgB,EAAE,CAAA;CAAE,CAAC;AAC3D,cAAc;AACd,KAAK,qBAAqB,GAAG;IAAE,WAAW,CAAC,IAAI,gBAAgB,EAAE,CAAA;CAAE,CAAC"}
|
|
@@ -34,11 +34,15 @@ export default class Body {
|
|
|
34
34
|
*/
|
|
35
35
|
public bounds: Bounds;
|
|
36
36
|
/**
|
|
37
|
-
* The collision shapes of the body
|
|
37
|
+
* The collision shapes of the body. Always an array — every
|
|
38
|
+
* mutation path goes through `push` / `includes`. The
|
|
39
|
+
* non-array `Point` that used to be in this union was a
|
|
40
|
+
* mis-doc and broke downstream `shapes.length` reads in
|
|
41
|
+
* TypeScript.
|
|
38
42
|
* @ignore
|
|
39
|
-
* @type {Polygon
|
|
43
|
+
* @type {(Polygon|Line|Ellipse|Point)[]}
|
|
40
44
|
*/
|
|
41
|
-
shapes: Polygon
|
|
45
|
+
shapes: (Polygon | Line | Ellipse | Point)[];
|
|
42
46
|
/**
|
|
43
47
|
* The body collision mask, that defines what should collide with what.<br>
|
|
44
48
|
* (by default will collide with all entities)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"body.d.ts","sourceRoot":"","sources":["../../../src/physics/builtin/body.js"],"names":[],"mappings":"AAaA;;;;;;;;IAQI;AAEJ;;;;GAIG;AACH;IACC;;;;OAIG;IACH,sBAJW,UAAU,GAAC,SAAS,GAAC,MAAM,GAAC,MAAM,GAAC,eAAe,WAClD,IAAI,GAAC,IAAI,EAAE,GAAC,OAAO,GAAC,OAAO,EAAE,GAAC,IAAI,GAAC,IAAI,EAAE,GAAC,OAAO,GAAC,OAAO,EAAE,GAAC,KAAK,GAAC,KAAK,EAAE,GAAC,MAAM,GAAC,MAAM,EAAE,GAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"body.d.ts","sourceRoot":"","sources":["../../../src/physics/builtin/body.js"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import type { Rect } from "../../geometries/rectangle.ts";
|
|
2
|
+
import { Sphere } from "../../geometries/sphere.ts";
|
|
2
3
|
import { Vector2d } from "../../math/vector2d.ts";
|
|
4
|
+
import { Vector3d } from "../../math/vector3d.ts";
|
|
3
5
|
import type Renderable from "../../renderable/renderable.js";
|
|
4
|
-
import type { AdapterCapabilities, AdapterOptions, BodyDefinition, BodyShape, PhysicsAdapter, RaycastHit } from "../adapter.ts";
|
|
6
|
+
import type { AdapterCapabilities, AdapterOptions, BodyDefinition, BodyShape, PhysicsAdapter, RaycastHit, RaycastHit3d } from "../adapter.ts";
|
|
5
7
|
import type { Bounds } from "../bounds.ts";
|
|
6
8
|
import type World from "../world.js";
|
|
7
9
|
import Body from "./body.js";
|
|
@@ -85,6 +87,9 @@ export default class BuiltinAdapter implements PhysicsAdapter {
|
|
|
85
87
|
getBodyShapes(renderable: Renderable): readonly BodyShape[];
|
|
86
88
|
isGrounded(renderable: Renderable): boolean;
|
|
87
89
|
raycast(from: Vector2d, to: Vector2d): RaycastHit | null;
|
|
90
|
+
raycast3d(from: Vector3d, to: Vector3d): RaycastHit3d | null;
|
|
91
|
+
querySphere(center: Vector3d, radius: number): Renderable[];
|
|
92
|
+
querySphere(sphere: Sphere): Renderable[];
|
|
88
93
|
queryAABB(rect: Rect): Renderable[];
|
|
89
94
|
applyGravity(body: Body): void;
|
|
90
95
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"builtin-adapter.d.ts","sourceRoot":"","sources":["../../../src/physics/builtin/builtin-adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,+BAA+B,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAClD,OAAO,KAAK,UAAU,MAAM,gCAAgC,CAAC;AAE7D,OAAO,KAAK,EACX,mBAAmB,EACnB,cAAc,EACd,cAAc,EACd,SAAS,EACT,cAAc,EACd,UAAU,EACV,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"builtin-adapter.d.ts","sourceRoot":"","sources":["../../../src/physics/builtin/builtin-adapter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"raycast.d.ts","sourceRoot":"","sources":["../../../src/physics/builtin/raycast.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,KAAK,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"raycast.d.ts","sourceRoot":"","sources":["../../../src/physics/builtin/raycast.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,KAAK,MAAM,aAAa,CAAC;AA+KrC,wBAAgB,YAAY,CAC3B,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,GACT,UAAU,EAAE,CA8Gd"}
|
package/build/physics/world.d.ts
CHANGED
|
@@ -84,10 +84,22 @@ export default class World extends Container {
|
|
|
84
84
|
*/
|
|
85
85
|
adapter: PhysicsAdapter;
|
|
86
86
|
/**
|
|
87
|
-
*
|
|
88
|
-
*
|
|
87
|
+
* Spatial broadphase used by built-in physics and pointer
|
|
88
|
+
* event picking. The concrete class depends on
|
|
89
|
+
* {@link Container#sortOn}: under `"depth"` (the value
|
|
90
|
+
* `Camera3d.defaultSortOn` sets on stage reset) it's an
|
|
91
|
+
* `Octree`; under any 2D sortOn it's a `QuadTree`. The choice
|
|
92
|
+
* is reactive — the `sortOn` setter swaps the broadphase if a
|
|
93
|
+
* 2D↔3D boundary crossing occurs, so stage transitions between
|
|
94
|
+
* Camera2d and Camera3d stages are handled transparently.
|
|
95
|
+
*
|
|
96
|
+
* Implementation detail — game code shouldn't reach in here.
|
|
97
|
+
* Use `world.adapter.queryAABB(rect)` /
|
|
98
|
+
* `world.adapter.querySphere(sphere)` /
|
|
99
|
+
* `world.adapter.raycast(...)` instead.
|
|
100
|
+
* @type {import("./broadphase/broadphase.ts").Broadphase}
|
|
89
101
|
*/
|
|
90
|
-
broadphase:
|
|
102
|
+
broadphase: import("./broadphase/broadphase.ts").Broadphase;
|
|
91
103
|
/**
|
|
92
104
|
* Active physics bodies in this simulation. Backed by the active
|
|
93
105
|
* adapter; mutating this set directly is no longer the recommended
|
|
@@ -145,7 +157,6 @@ export default class World extends Container {
|
|
|
145
157
|
import Container from "../renderable/container.js";
|
|
146
158
|
import type Application from "./../application/application.ts";
|
|
147
159
|
import type { PhysicsAdapter } from "./adapter.ts";
|
|
148
|
-
import QuadTree from "./builtin/quadtree.js";
|
|
149
160
|
import type Body from "./builtin/body.js";
|
|
150
161
|
import type { Vector2d } from "../math/vector2d.ts";
|
|
151
162
|
import type Detector from "./builtin/detector.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"world.d.ts","sourceRoot":"","sources":["../../src/physics/world.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"world.d.ts","sourceRoot":"","sources":["../../src/physics/world.js"],"names":[],"mappings":"AA6BA;;;GAGG;AACH;IACC;;;;;;OAMG;IACH,gBANW,MAAM,MACN,MAAM,UACN,MAAM,WACN,MAAM,YACN,cAAc,EAkIxB;IAhHA;;;OAGG;IACH,KAFU,WAAW,CAED;IAEpB;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACH,QANU,MAAM,CAMO;IAEvB;;;;;OAKG;IACH,YAAa;IAEb;;;;;;;OAOG;IACH,WAHU,OAAO,CAGK;IAEtB;;;;;;;;;;;;;;OAcG;IACH,YAHU,OAAO,CAGK;IAEtB;;;;;;OAMG;IACH,SAFU,cAAc,CAEsB;IAG9C;;;;;;;;;;;;;;;OAeG;IACH,YAFU,OAAO,4BAA4B,EAAE,UAAU,CAEjB;IA2CzC;;;;;;;;;;;OAWG;IACH,cAFa,GAAG,CAAC,IAAI,CAAC,CAOrB;IASD,eALa,QAAQ,EAOpB;IATD;;;OAGG;IACH,eAFa,QAAQ,CAIpB;IAKD;;;;OAIG;IACH,gBAFa,QAAQ,GAAG,SAAS,CAIhC;IAsCD;;;;;;;OAOG;IACH,cAHW,IAAI,GACF,KAAK,CASjB;IAED;;;;;OAKG;IACH,iBAHW,IAAI,GACF,KAAK,CASjB;IAED;;;;;OAKG;IACH,yBAIC;IAuBD;;;OAGG;IACH,SAFW,MAAM,QAWhB;CACD;sBA5VqB,4BAA4B;6BAYtB,iCAAiC;oCAI1B,cAAc;sBAH5B,mBAAmB;8BAEX,qBAAqB;0BADzB,uBAAuB"}
|
|
@@ -104,14 +104,33 @@ export default class Container extends Renderable {
|
|
|
104
104
|
* this.backgroundColor.setColor(255, 0, 0);
|
|
105
105
|
*/
|
|
106
106
|
backgroundColor: Color;
|
|
107
|
-
set sortOn(value:
|
|
107
|
+
set sortOn(value: "x" | "y" | "z" | "depth");
|
|
108
108
|
/**
|
|
109
|
-
* The property of the child object that should be used to sort on
|
|
110
|
-
*
|
|
111
|
-
*
|
|
109
|
+
* The property of the child object that should be used to sort on
|
|
110
|
+
* this container.
|
|
111
|
+
*
|
|
112
|
+
* - `"x"` / `"y"` — 2D scroll-order, descending on both axes
|
|
113
|
+
* (higher pos.z first; tied z, higher pos.x or pos.y first).
|
|
114
|
+
* Suited to side-scrollers and top-down games.
|
|
115
|
+
* - `"z"` — descending pos.z (higher z draws on top). Default for
|
|
116
|
+
* `Camera2d` — matches the painter's-algorithm 2D layering model
|
|
117
|
+
* where pos.z is "layer index".
|
|
118
|
+
* - `"depth"` — **Camera3d-only.** Ascending squared distance from
|
|
119
|
+
* the active camera (closest first in the array → far drawn first
|
|
120
|
+
* → close drawn on top under `Container.draw`'s reverse-iteration
|
|
121
|
+
* walk). This is the only correct sort for alpha-blended sprites
|
|
122
|
+
* under perspective projection, where neither pos.z nor pos.x/y
|
|
123
|
+
* layering produces correct occlusion (the closer/farther
|
|
124
|
+
* relationship flips as the camera orbits). Set automatically
|
|
125
|
+
* when an `Application` or `Stage` is constructed with
|
|
126
|
+
* `cameraClass: Camera3d`. Has no useful effect under `Camera2d`
|
|
127
|
+
* (ortho projection doesn't need camera-distance ordering) and
|
|
128
|
+
* pays an O(N log N) sort per frame, so don't enable it manually
|
|
129
|
+
* in 2D-only games.
|
|
130
|
+
* @type {"x"|"y"|"z"|"depth"}
|
|
112
131
|
* @default "z"
|
|
113
132
|
*/
|
|
114
|
-
get sortOn():
|
|
133
|
+
get sortOn(): "x" | "y" | "z" | "depth";
|
|
115
134
|
/**
|
|
116
135
|
* reset the container, removing all children, and resetting transforms.
|
|
117
136
|
*/
|
|
@@ -302,6 +321,16 @@ export default class Container extends Renderable {
|
|
|
302
321
|
* @param {boolean} [recursive=false] - recursively sort all containers if true
|
|
303
322
|
*/
|
|
304
323
|
sort(recursive?: boolean): void;
|
|
324
|
+
/**
|
|
325
|
+
* Synchronous variant of {@link Container#sort}. Sorts immediately
|
|
326
|
+
* — no defer — using the current `_comparator`. Intended for
|
|
327
|
+
* per-frame callers that need the order to be valid for the very
|
|
328
|
+
* next render (e.g. `Camera3d` refreshing the `"depth"` sort after
|
|
329
|
+
* the camera has moved, where waiting for the deferred sort tick
|
|
330
|
+
* would render a stale frame).
|
|
331
|
+
* @param {boolean} [recursive=false] - recursively sort sub-containers
|
|
332
|
+
*/
|
|
333
|
+
sortNow(recursive?: boolean): void;
|
|
305
334
|
/**
|
|
306
335
|
* Z Sorting function
|
|
307
336
|
* @ignore
|
|
@@ -312,6 +341,23 @@ export default class Container extends Renderable {
|
|
|
312
341
|
* @ignore
|
|
313
342
|
*/
|
|
314
343
|
_sortReverseZ(a: any, b: any): number;
|
|
344
|
+
/**
|
|
345
|
+
* Camera-distance sorting function used by `sortOn = "depth"`.
|
|
346
|
+
* Orders children by ascending squared distance from the cached
|
|
347
|
+
* camera position — closest first in the array, so
|
|
348
|
+
* {@link Container#draw}'s reverse-iteration walk paints far→near
|
|
349
|
+
* (correct painter's algorithm for alpha-blended sprites under
|
|
350
|
+
* perspective). The cached position is refreshed by
|
|
351
|
+
* {@link captureDepthCamera} just before each sort runs; this
|
|
352
|
+
* comparator stays tight (zero allocation, six subtracts + three
|
|
353
|
+
* mul-adds per pair) for the hot O(N log N) path.
|
|
354
|
+
*
|
|
355
|
+
* Container children are `Renderable` instances with an
|
|
356
|
+
* `ObservableVector3d` pos — `pos.z` is always defined, no guard
|
|
357
|
+
* needed here.
|
|
358
|
+
* @ignore
|
|
359
|
+
*/
|
|
360
|
+
_sortDepth(a: any, b: any): number;
|
|
315
361
|
/**
|
|
316
362
|
* X Sorting function
|
|
317
363
|
* @ignore
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../../src/renderable/container.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../../src/renderable/container.js"],"names":[],"mappings":"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"}
|
|
@@ -70,6 +70,7 @@ export default class Mesh extends Renderable {
|
|
|
70
70
|
* @type {number}
|
|
71
71
|
*/
|
|
72
72
|
vertexCount: number;
|
|
73
|
+
_indicesOriginal: number[];
|
|
73
74
|
/**
|
|
74
75
|
* the projected vertex positions, updated each draw call
|
|
75
76
|
* @type {Float32Array}
|
|
@@ -82,10 +83,51 @@ export default class Mesh extends Renderable {
|
|
|
82
83
|
*/
|
|
83
84
|
cullBackFaces: boolean;
|
|
84
85
|
/**
|
|
85
|
-
*
|
|
86
|
-
*
|
|
86
|
+
* Per-material submesh groups, populated when the OBJ
|
|
87
|
+
* contains multiple `usemtl` directives AND a matching MTL
|
|
88
|
+
* is bound via the `material` setting. Each entry slices
|
|
89
|
+
* the shared `indices` buffer; field shape (`start`,
|
|
90
|
+
* `count`, `materialName`) matches the glTF "groups"
|
|
91
|
+
* convention.
|
|
92
|
+
*
|
|
93
|
+
* Under the per-vertex color baking path (tier 2), the
|
|
94
|
+
* `tint` / `opacity` fields here are informational — the
|
|
95
|
+
* actual rendered color is baked into `vertexColors` at
|
|
96
|
+
* construction time. Mutating `groups[i].tint` after
|
|
97
|
+
* construction has no visible effect; use `mesh.tint` for
|
|
98
|
+
* runtime color multiplication, or rebuild the Mesh with
|
|
99
|
+
* new material settings.
|
|
100
|
+
* @type {Array<{materialName: string|null, start: number,
|
|
101
|
+
* count: number, tint: Color, opacity: number}>}
|
|
102
|
+
*/
|
|
103
|
+
groups: Array<{
|
|
104
|
+
materialName: string | null;
|
|
105
|
+
start: number;
|
|
106
|
+
count: number;
|
|
107
|
+
tint: Color;
|
|
108
|
+
opacity: number;
|
|
109
|
+
}>;
|
|
110
|
+
/**
|
|
111
|
+
* Per-vertex color buffer (one packed Uint32 per vertex)
|
|
112
|
+
* populated for multi-material meshes. The mesh batcher
|
|
113
|
+
* reads from this when present, pushing the per-vertex
|
|
114
|
+
* color as the `aColor` attribute — so multi-material
|
|
115
|
+
* rendering needs no extra draw calls per material vs
|
|
116
|
+
* single-material rendering (the batcher still chunks
|
|
117
|
+
* very large meshes across multiple draws to fit its
|
|
118
|
+
* vertex/index buffer limits, same as the single-material
|
|
119
|
+
* path). Multiplied at render time by the global
|
|
120
|
+
* `mesh.tint`, so runtime tint mutation still works as
|
|
121
|
+
* expected (flash, fade, team color, etc.).
|
|
122
|
+
*
|
|
123
|
+
* Vertices were split per-material at parse time (each
|
|
124
|
+
* material has its own dedup scope in the OBJ parser), so
|
|
125
|
+
* every vertex belongs to exactly one material group and
|
|
126
|
+
* carries that group's color unambiguously.
|
|
127
|
+
* @type {Uint32Array}
|
|
87
128
|
*/
|
|
88
|
-
|
|
129
|
+
vertexColors: Uint32Array;
|
|
130
|
+
texture: any;
|
|
89
131
|
/**
|
|
90
132
|
* Projection matrix applied automatically before the model transform in draw().
|
|
91
133
|
* Defaults to a perspective projection (45° FOV, camera at z=-2.5) suitable for
|
|
@@ -108,11 +150,45 @@ export default class Mesh extends Renderable {
|
|
|
108
150
|
*/
|
|
109
151
|
_projectVertices(offsetX?: number, offsetY?: number, zScale?: number): void;
|
|
110
152
|
/**
|
|
111
|
-
*
|
|
112
|
-
*
|
|
113
|
-
*
|
|
153
|
+
* Project vertices into **world space** for the Camera3d render path.
|
|
154
|
+
* Bypasses {@link Mesh#projectionMatrix} (the self-contained
|
|
155
|
+
* perspective that's meaningful only under Camera2d) and emits
|
|
156
|
+
* vertices that the active 3D camera then projects via its own
|
|
157
|
+
* view + projection matrices, the same way it does for Sprites.
|
|
158
|
+
*
|
|
159
|
+
* Per-vertex math: `currentTransform × originalVertex`, then a uniform
|
|
160
|
+
* scale by `this.width`, a Y-flip (OBJ Y-up → engine Y-down), and a
|
|
161
|
+
* translate to `(offsetX, offsetY, offsetZ)`.
|
|
162
|
+
*
|
|
163
|
+
* @param {number} offsetX - world X to place the mesh center at
|
|
164
|
+
* @param {number} offsetY - world Y to place the mesh center at
|
|
165
|
+
* @param {number} offsetZ - world Z to place the mesh center at
|
|
166
|
+
* @ignore
|
|
114
167
|
*/
|
|
115
|
-
|
|
168
|
+
_projectVerticesWorld(offsetX: number, offsetY: number, offsetZ: number): void;
|
|
169
|
+
/**
|
|
170
|
+
* Build the winding-reversed indices buffer used by the Camera3d
|
|
171
|
+
* world-space path. Called once, lazily, the first time the mesh
|
|
172
|
+
* draws under Camera3d. Why: the world-space path Y-flips vertices
|
|
173
|
+
* on output (a reflection, det = -1), which inverts triangle
|
|
174
|
+
* winding in screen space. Without the swap, `cullBackFaces: true`
|
|
175
|
+
* would end up culling the front faces and the model would look
|
|
176
|
+
* hollow.
|
|
177
|
+
*
|
|
178
|
+
* Both buffers are kept alive — `_indicesOriginal` is the original
|
|
179
|
+
* OBJ-shared (or user-supplied) winding, `_indicesReversed` is the
|
|
180
|
+
* Camera3d-flipped copy. `draw()` swaps `this.indices` between them
|
|
181
|
+
* each frame based on the active camera, so a Mesh that was first
|
|
182
|
+
* drawn under Camera3d and later re-parented to a Camera2d stage
|
|
183
|
+
* (e.g. a level transition into a 2D minigame) gets its original
|
|
184
|
+
* winding back and stays correctly oriented under
|
|
185
|
+
* `cullBackFaces: true`.
|
|
186
|
+
* @ignore
|
|
187
|
+
*/
|
|
188
|
+
_setupWorldSpace(): void;
|
|
189
|
+
_indicesReversed: Uint16Array<ArrayBuffer> | undefined;
|
|
190
|
+
_worldSpace: boolean | undefined;
|
|
191
|
+
_useWorldSpace: boolean | undefined;
|
|
116
192
|
/**
|
|
117
193
|
* Render the mesh at its current state (transforms, projection, tint) to an offscreen canvas.
|
|
118
194
|
* The returned canvas can be used with `renderer.drawImage()`, as a `Sprite` image source,
|
|
@@ -138,10 +214,9 @@ export default class Mesh extends Renderable {
|
|
|
138
214
|
toImageBitmap(): Promise<ImageBitmap>;
|
|
139
215
|
}
|
|
140
216
|
import Renderable from "./renderable.js";
|
|
141
|
-
import {
|
|
217
|
+
import { Color } from "../math/color.ts";
|
|
142
218
|
import { Matrix3d } from "../math/matrix3d.ts";
|
|
143
219
|
import { Vector2d } from "../math/vector2d.ts";
|
|
144
220
|
import { Polygon } from "../geometries/polygon.ts";
|
|
145
|
-
import
|
|
146
|
-
import type WebGLRenderer from "./../video/webgl/webgl_renderer.js";
|
|
221
|
+
import { TextureAtlas } from "./../video/texture/atlas.js";
|
|
147
222
|
//# sourceMappingURL=mesh.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mesh.d.ts","sourceRoot":"","sources":["../../src/renderable/mesh.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mesh.d.ts","sourceRoot":"","sources":["../../src/renderable/mesh.js"],"names":[],"mappings":"AAgFA;;;;;;;;GAQG;AACH;IACC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAmCG;IACH,eAnCW,MAAM,KACN,MAAM,YAEd;QAA0B,KAAK;QACU,QAAQ;QACR,GAAG;QACJ,OAAO;QACS,OAAO;QACrC,QAAQ;QACT,KAAK,EAAtB,MAAM;QACW,MAAM,EAAvB,MAAM;QACa,aAAa;KACxC,EAkQF;IAjOC;;;OAGG;IACH,kBAFU,YAAY,CAEkB;IAExC;;;OAGG;IACH,KAFU,YAAY,CAEA;IAQtB;;;OAGG;IACH,aAFU,MAAM,CAEsB;IA2BvC,2BAAoC;IAGpC;;;OAGG;IACH,UAFU,YAAY,CAEgC;IAEtD;;;;OAIG;IACH,eAHU,OAAO,CAIoD;IAsBpE;;;;;;;;;;;;;;;;;OAiBG;IACH,QAHU,KAAK,CAAC;QAAC,YAAY,EAAE,MAAM,GAAC,IAAI,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QACrD,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,KAAK,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAC,CAAC,CAIhD;IAsBF;;;;;;;;;;;;;;;;;;OAkBG;IACH,cAFU,WAAW,CAEgC;IAgDtD,aAAiD;IAEjD;;;;;;OAMG;IACH,kBAFU,QAAQ,CAEoB;IAetC,cAAc;IACd,wBAEE;IACF,cAAc;IACd,6BAAwB;IAGzB;;;;;;;OAOG;IACH,2BALW,MAAM,YACN,MAAM,WACN,MAAM,QAiBhB;IAED;;;;;;;;;;;;;;;OAeG;IACH,+BALW,MAAM,WACN,MAAM,WACN,MAAM,QAiChB;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACH,yBAUC;IAFA,uDAA2B;IAC3B,iCAAuB;IAoBvB,oCAAuD;IAyFxD;;;;;;;;;;;;OAYG;IACH,YATa,iBAAiB,CAoH7B;IAED;;;;;;;OAOG;IACH,iBALa,OAAO,CAAC,WAAW,CAAC,CAOhC;CACD;uBAnrBsB,iBAAiB;sBAVlB,kBAAkB;yBACf,qBAAqB;yBACrB,qBAAqB;wBAJtB,0BAA0B;6BAWrB,6BAA6B"}
|
|
@@ -260,7 +260,7 @@ export default class Renderable extends Rect {
|
|
|
260
260
|
* cache the absolute position of the renderable
|
|
261
261
|
* @ignore
|
|
262
262
|
*/
|
|
263
|
-
_absPos: import("../index.ts").
|
|
263
|
+
_absPos: import("../index.ts").Vector3d | undefined;
|
|
264
264
|
/**
|
|
265
265
|
* keep track of when we flip
|
|
266
266
|
* @ignore
|
|
@@ -474,10 +474,15 @@ export default class Renderable extends Rect {
|
|
|
474
474
|
*/
|
|
475
475
|
updateBounds(absolute?: boolean): Bounds;
|
|
476
476
|
/**
|
|
477
|
-
* return the renderable absolute position in the game world
|
|
478
|
-
* @
|
|
477
|
+
* return the renderable absolute position in the game world. The
|
|
478
|
+
* returned vector is a {@link Vector3d} so the z component is summed
|
|
479
|
+
* across the ancestor chain too — important for {@link Camera3d}'s
|
|
480
|
+
* frustum culling, which previously read `obj.depth` (local
|
|
481
|
+
* `pos.z`) and mis-culled children nested under a container with
|
|
482
|
+
* its own non-zero depth.
|
|
483
|
+
* @returns {Vector3d}
|
|
479
484
|
*/
|
|
480
|
-
getAbsolutePosition():
|
|
485
|
+
getAbsolutePosition(): Vector3d;
|
|
481
486
|
/**
|
|
482
487
|
* Prepare the rendering context before drawing (automatically called by melonJS).
|
|
483
488
|
* This will apply any defined transforms, anchor point, tint or blend mode and translate the context accordingly to this renderable position.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"renderable.d.ts","sourceRoot":"","sources":["../../src/renderable/renderable.js"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"renderable.d.ts","sourceRoot":"","sources":["../../src/renderable/renderable.js"],"names":[],"mappings":"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"}
|
package/build/state/stage.d.ts
CHANGED
|
@@ -6,6 +6,14 @@ import type Light2d from "./../renderable/light2d.js";
|
|
|
6
6
|
import type Renderer from "./../video/renderer.js";
|
|
7
7
|
interface StageSettings {
|
|
8
8
|
cameras: Camera2d[];
|
|
9
|
+
/**
|
|
10
|
+
* Default camera class to instantiate when this stage has no
|
|
11
|
+
* explicit `cameras` list. Overrides any app-level `cameraClass`
|
|
12
|
+
* setting for this specific stage. Built-in stages (e.g.
|
|
13
|
+
* {@link DefaultLoadingScreen}) pin this to {@link Camera2d} so
|
|
14
|
+
* the loader stays 2D regardless of app-wide `cameraClass`.
|
|
15
|
+
*/
|
|
16
|
+
cameraClass?: new (minX: number, minY: number, maxX: number, maxY: number) => Camera2d;
|
|
9
17
|
onResetEvent?: (app: Application, ...args: unknown[]) => void;
|
|
10
18
|
onDestroyEvent?: (app: Application) => void;
|
|
11
19
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stage.d.ts","sourceRoot":"","sources":["../../src/state/stage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,WAAW,MAAM,iCAAiC,CAAC;AAC/D,OAAO,QAAQ,MAAM,yBAAyB,CAAC;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,KAAK,KAAK,MAAM,uBAAuB,CAAC;AAC/C,OAAO,KAAK,OAAO,MAAM,4BAA4B,CAAC;AAEtD,OAAO,KAAK,QAAQ,MAAM,wBAAwB,CAAC;AAEnD,UAAU,aAAa;IACtB,OAAO,EAAE,QAAQ,EAAE,CAAC;IACpB,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IAC9D,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,WAAW,KAAK,IAAI,CAAC;CAC5C;AAUD;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,OAAO,KAAK;IACzB;;;;OAIG;IACH,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAE/B;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAE7B;;;;;OAKG;IACH,aAAa,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IAE5B;;;;OAIG;IACH,YAAY,EAAE,KAAK,CAAC;IAEpB;;;;;;;;OAQG;IACH,oBAAoB,EAAE,KAAK,CAAC;IAE5B;;OAEG;IACH,QAAQ,EAAE,aAAa,CAAC;IAExB;;;;;OAKG;gBACS,QAAQ,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC;IAS7C;;;;OAIG;IACH,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAIpC;;;OAGG;IACH,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAItC;;;OAGG;IACH,KAAK,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,SAAS,EAAE,OAAO,EAAE,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"stage.d.ts","sourceRoot":"","sources":["../../src/state/stage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,WAAW,MAAM,iCAAiC,CAAC;AAC/D,OAAO,QAAQ,MAAM,yBAAyB,CAAC;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,KAAK,KAAK,MAAM,uBAAuB,CAAC;AAC/C,OAAO,KAAK,OAAO,MAAM,4BAA4B,CAAC;AAEtD,OAAO,KAAK,QAAQ,MAAM,wBAAwB,CAAC;AAEnD,UAAU,aAAa;IACtB,OAAO,EAAE,QAAQ,EAAE,CAAC;IACpB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,KACb,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,KACR,QAAQ,CAAC;IACd,YAAY,CAAC,EAAE,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;IAC9D,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,WAAW,KAAK,IAAI,CAAC;CAC5C;AAUD;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,OAAO,KAAK;IACzB;;;;OAIG;IACH,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAE/B;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAE7B;;;;;OAKG;IACH,aAAa,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IAE5B;;;;OAIG;IACH,YAAY,EAAE,KAAK,CAAC;IAEpB;;;;;;;;OAQG;IACH,oBAAoB,EAAE,KAAK,CAAC;IAE5B;;OAEG;IACH,QAAQ,EAAE,aAAa,CAAC;IAExB;;;;;OAKG;gBACS,QAAQ,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC;IAS7C;;;;OAIG;IACH,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAIpC;;;OAGG;IACH,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAItC;;;OAGG;IACH,KAAK,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,SAAS,EAAE,OAAO,EAAE,GAAG,IAAI;IAsHtD;;;;;OAKG;IACH,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAgB3B;;;;;;;;;OASG;IACH,IAAI,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,GAAG,IAAI;IAM5C;;;;;;;;;;;;;;;;;OAiBG;IACH,YAAY,CACX,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,QAAQ,EAChB,UAAU,GAAE,MAAuC,EACnD,UAAU,GAAE,MAAuC,GACjD,IAAI;IAiCP;;;OAGG;IACH,OAAO,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI;IAkB/B;;;;;;;OAOG;IACH,YAAY,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAOxD;;;;OAIG;IACH,cAAc,CAAC,GAAG,EAAE,WAAW,GAAG,IAAI;CAMtC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/state/state.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,qBAAqB,CAAC;AAwOxC;;GAEG;AACH,QAAA,MAAM,KAAK;IACV;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;;OAGG;;IAGH;;;;;;;OAOG;;IAGH;;;OAGG;4BACoB,OAAO,GAAW,IAAI;IAqB7C;;;OAGG;kBACU,OAAO,GAAW,IAAI;IAkBnC;;;OAGG;oBACY,OAAO,GAAW,IAAI;IAiBrC;;;OAGG;mBACW,OAAO,GAAW,IAAI;IAmBpC;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;qBACc,MAAM,UAAS,OAAO,GAAW,OAAO,CAAC,IAAI,CAAC;IAkC/D;;;OAGG;iBACU,OAAO;IAIpB;;;OAGG;gBACS,OAAO;IAInB;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;iBACU,MAAM,SAAS,KAAK,UAAS,OAAO,GAAW,IAAI;IAchE;;;;;OAKG;kBACU,MAAM,GAAY,KAAK,GAAG,SAAS;IAQhD;;;;OAIG;eACQ,KAAK,GAAG,SAAS;IAI5B;;;;;;;;;;;;;;;;;;OAkBG;uBAEM,MAAM,GAAG,MAAM,SAChB,MAAM,aACH,MAAM,UAEb,OAAO,0BAA0B,EAAE,OAAO,GAC1C,OAAO,0BAA0B,EAAE,OAAO,GAC3C,IAAI;IAOP;;;;OAIG;2BACoB,MAAM,UAAU,OAAO,GAAG,IAAI;IAIrD;;;;;;;;;OASG;oBAEO,MAAM,gBACF,OAAO,gBACN,OAAO,EAAE,GACrB,IAAI;
|
|
1
|
+
{"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/state/state.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,qBAAqB,CAAC;AAwOxC;;GAEG;AACH,QAAA,MAAM,KAAK;IACV;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;;OAGG;;IAGH;;;;;;;OAOG;;IAGH;;;OAGG;4BACoB,OAAO,GAAW,IAAI;IAqB7C;;;OAGG;kBACU,OAAO,GAAW,IAAI;IAkBnC;;;OAGG;oBACY,OAAO,GAAW,IAAI;IAiBrC;;;OAGG;mBACW,OAAO,GAAW,IAAI;IAmBpC;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;qBACc,MAAM,UAAS,OAAO,GAAW,OAAO,CAAC,IAAI,CAAC;IAkC/D;;;OAGG;iBACU,OAAO;IAIpB;;;OAGG;gBACS,OAAO;IAInB;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;iBACU,MAAM,SAAS,KAAK,UAAS,OAAO,GAAW,IAAI;IAchE;;;;;OAKG;kBACU,MAAM,GAAY,KAAK,GAAG,SAAS;IAQhD;;;;OAIG;eACQ,KAAK,GAAG,SAAS;IAI5B;;;;;;;;;;;;;;;;;;OAkBG;uBAEM,MAAM,GAAG,MAAM,SAChB,MAAM,aACH,MAAM,UAEb,OAAO,0BAA0B,EAAE,OAAO,GAC1C,OAAO,0BAA0B,EAAE,OAAO,GAC3C,IAAI;IAOP;;;;OAIG;2BACoB,MAAM,UAAU,OAAO,GAAG,IAAI;IAIrD;;;;;;;;;OASG;oBAEO,MAAM,gBACF,OAAO,gBACN,OAAO,EAAE,GACrB,IAAI;IA4FP;;;;OAIG;uBACgB,MAAM,GAAG,OAAO;CAGnC,CAAC;AACF,eAAe,KAAK,CAAC"}
|