kiwiengine 0.5.5 → 0.5.6
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/lib/asset/preload.js +21 -19
- package/lib/asset/preload.js.map +1 -1
- package/lib/index.js +1 -1
- package/lib/index.js.map +1 -1
- package/lib/node/core/transformable.js +5 -1
- package/lib/node/core/transformable.js.map +1 -1
- package/lib/types/asset/preload.d.ts +2 -0
- package/lib/types/asset/preload.d.ts.map +1 -1
- package/lib/types/index.d.ts +1 -1
- package/lib/types/index.d.ts.map +1 -1
- package/lib/types/node/core/transformable.d.ts +3 -0
- package/lib/types/node/core/transformable.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/asset/preload.ts +18 -16
- package/src/index.ts +1 -1
- package/src/node/core/transformable.ts +6 -1
package/lib/asset/preload.js
CHANGED
|
@@ -15,7 +15,7 @@ const loaderForPathMap = [
|
|
|
15
15
|
function getLoaderForPath(path) {
|
|
16
16
|
return loaderForPathMap.find(({ check }) => check(path))?.loader;
|
|
17
17
|
}
|
|
18
|
-
async function loadAsset(asset) {
|
|
18
|
+
export async function loadAsset(asset) {
|
|
19
19
|
if (typeof asset === 'string') {
|
|
20
20
|
const loader = getLoaderForPath(asset);
|
|
21
21
|
if (!loader) {
|
|
@@ -35,24 +35,26 @@ async function loadAsset(asset) {
|
|
|
35
35
|
console.warn(`Unknown asset type: ${asset}`);
|
|
36
36
|
}
|
|
37
37
|
}
|
|
38
|
-
function releaseAsset(
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
38
|
+
export function releaseAsset(...assets) {
|
|
39
|
+
for (const asset of assets) {
|
|
40
|
+
if (typeof asset === 'string') {
|
|
41
|
+
const loader = getLoaderForPath(asset);
|
|
42
|
+
if (!loader) {
|
|
43
|
+
console.warn(`No loader found for asset: ${asset}`);
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
loader.release(asset);
|
|
47
|
+
}
|
|
48
|
+
else if ('atlas' in asset) {
|
|
49
|
+
const id = getCachedAtlasId(asset.src, asset.atlas);
|
|
50
|
+
spritesheetLoader.release(id);
|
|
51
|
+
}
|
|
52
|
+
else if ('fnt' in asset) {
|
|
53
|
+
bitmapFontLoader.release(asset.fnt);
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
console.warn(`Unknown asset type: ${asset}`);
|
|
44
57
|
}
|
|
45
|
-
loader.release(asset);
|
|
46
|
-
}
|
|
47
|
-
else if ('atlas' in asset) {
|
|
48
|
-
const id = getCachedAtlasId(asset.src, asset.atlas);
|
|
49
|
-
spritesheetLoader.release(id);
|
|
50
|
-
}
|
|
51
|
-
else if ('fnt' in asset) {
|
|
52
|
-
bitmapFontLoader.release(asset.fnt);
|
|
53
|
-
}
|
|
54
|
-
else {
|
|
55
|
-
console.warn(`Unknown asset type: ${asset}`);
|
|
56
58
|
}
|
|
57
59
|
}
|
|
58
60
|
export async function preload(assets, progressCallback) {
|
|
@@ -68,6 +70,6 @@ export async function preload(assets, progressCallback) {
|
|
|
68
70
|
console.error(`Failed to load asset:`, asset, err);
|
|
69
71
|
}
|
|
70
72
|
}));
|
|
71
|
-
return () => assets
|
|
73
|
+
return () => releaseAsset(...assets);
|
|
72
74
|
}
|
|
73
75
|
//# sourceMappingURL=preload.js.map
|
package/lib/asset/preload.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preload.js","sourceRoot":"","sources":["../../src/asset/preload.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAC/C,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAA;AAEjD,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AAC3E,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AAMjD,MAAM,gBAAgB,GAAqE;IACzF,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE;IACjF,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE;IAC3D,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,yBAAyB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE;IAC1E,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE;IACjE,EAAE,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE;CAC7D,CAAA;AAED,SAAS,gBAAgB,CAAC,IAAY;IACpC,OAAO,gBAAgB,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,MAAM,CAAA;AAClE,CAAC;AAED,KAAK,UAAU,SAAS,CAAC,KAAkB;
|
|
1
|
+
{"version":3,"file":"preload.js","sourceRoot":"","sources":["../../src/asset/preload.ts"],"names":[],"mappings":"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","sourcesContent":["import { Atlas } from '../types/atlas'\nimport { audioLoader } from './loaders/audio'\nimport { binaryLoader } from './loaders/binary'\nimport { bitmapFontLoader } from './loaders/bitmap-font'\nimport { fontFamilyLoader } from './loaders/font'\nimport { Loader } from './loaders/loader'\nimport { getCachedAtlasId, spritesheetLoader } from './loaders/spritesheet'\nimport { textLoader } from './loaders/text'\nimport { textureLoader } from './loaders/texture'\n\nexport type AssetSource = string\n | { src: string, atlas: Atlas }\n | { fnt: string, src: string }\n\nconst loaderForPathMap: Array<{ check: (path: string) => boolean, loader: Loader<any> }> = [\n { check: (p) => p.endsWith('.json') || p.endsWith('.atlas'), loader: textLoader },\n { check: (p) => p.endsWith('.skel'), loader: binaryLoader },\n { check: (p) => /\\.(png|jpe?g|gif|webp)$/.test(p), loader: textureLoader },\n { check: (p) => /\\.(mp3|wav|ogg)$/.test(p), loader: audioLoader },\n { check: (p) => !p.includes('.'), loader: fontFamilyLoader }\n]\n\nfunction getLoaderForPath(path: string): Loader<any> | undefined {\n return loaderForPathMap.find(({ check }) => check(path))?.loader\n}\n\nexport async function loadAsset(asset: AssetSource): Promise<void> {\n if (typeof asset === 'string') {\n const loader = getLoaderForPath(asset)\n if (!loader) {\n console.warn(`No loader found for asset: ${asset}`)\n return\n }\n await loader.load(asset)\n } else if ('atlas' in asset) {\n const id = getCachedAtlasId(asset.src, asset.atlas)\n await spritesheetLoader.load(id, asset.src, asset.atlas)\n } else if ('fnt' in asset) {\n await bitmapFontLoader.load(asset.fnt, asset.src)\n } else {\n console.warn(`Unknown asset type: ${asset}`)\n }\n}\n\nexport function releaseAsset(...assets: AssetSource[]): void {\n for (const asset of assets) {\n if (typeof asset === 'string') {\n const loader = getLoaderForPath(asset)\n if (!loader) {\n console.warn(`No loader found for asset: ${asset}`)\n return\n }\n loader.release(asset)\n } else if ('atlas' in asset) {\n const id = getCachedAtlasId(asset.src, asset.atlas)\n spritesheetLoader.release(id)\n } else if ('fnt' in asset) {\n bitmapFontLoader.release(asset.fnt)\n } else {\n console.warn(`Unknown asset type: ${asset}`)\n }\n }\n}\n\nexport async function preload(\n assets: AssetSource[],\n progressCallback?: (progress: number) => void\n): Promise<() => void> {\n let loaded = 0\n const total = assets.length\n\n await Promise.all(\n assets.map(async (asset) => {\n try {\n await loadAsset(asset)\n loaded++\n progressCallback?.(loaded / total)\n } catch (err) {\n console.error(`Failed to load asset:`, asset, err)\n }\n })\n )\n\n return () => releaseAsset(...assets)\n}\n"]}
|
package/lib/index.js
CHANGED
|
@@ -5,7 +5,7 @@ export { Renderer } from './renderer/renderer';
|
|
|
5
5
|
export { Ticker } from './renderer/ticker';
|
|
6
6
|
// Assets
|
|
7
7
|
export { musicPlayer, sfxPlayer } from './asset/audio';
|
|
8
|
-
export { preload } from './asset/preload';
|
|
8
|
+
export { loadAsset, preload, releaseAsset } from './asset/preload';
|
|
9
9
|
// Collision
|
|
10
10
|
export { checkCollision } from './collision/check-collision';
|
|
11
11
|
export { ColliderType } from './collision/colliders';
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO;AACP,OAAO,EAAE,UAAU,EAAqB,MAAM,yBAAyB,CAAA;AAEvE,WAAW;AACX,OAAO,EAAE,QAAQ,EAAmB,MAAM,qBAAqB,CAAA;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAE1C,SAAS;AACT,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AACtD,OAAO,EAAe,OAAO,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO;AACP,OAAO,EAAE,UAAU,EAAqB,MAAM,yBAAyB,CAAA;AAEvE,WAAW;AACX,OAAO,EAAE,QAAQ,EAAmB,MAAM,qBAAqB,CAAA;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAE1C,SAAS;AACT,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AACtD,OAAO,EAAe,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAG/E,YAAY;AACZ,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAC5D,OAAO,EAA4B,YAAY,EAAuD,MAAM,uBAAuB,CAAA;AAEnI,kBAAkB;AAClB,OAAO,EAAE,kBAAkB,EAA6B,MAAM,4BAA4B,CAAA;AAC1F,OAAO,EAAE,cAAc,EAAyB,MAAM,wBAAwB,CAAA;AAC9E,OAAO,EAAE,UAAU,EAAqB,MAAM,mBAAmB,CAAA;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC7C,OAAO,EAAE,gBAAgB,EAA2B,MAAM,0BAA0B,CAAA;AACpF,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,cAAc,EAAyB,MAAM,qBAAqB,CAAA;AAC3E,OAAO,EAAE,aAAa,EAAwB,MAAM,sBAAsB,CAAA;AAC1E,OAAO,EAAE,SAAS,EAAoB,MAAM,kBAAkB,CAAA;AAC9D,OAAO,EAAE,UAAU,EAAqB,MAAM,mBAAmB,CAAA;AAEjE,UAAU;AACV,OAAO,EAAE,aAAa,EAAwB,MAAM,+BAA+B,CAAA;AACnF,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAC3D,OAAO,EAAoE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAE5H,YAAY;AACZ,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAA;AACjE,OAAO,EAAE,iBAAiB,EAA4B,MAAM,oBAAoB,CAAA;AAChF,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAwB,MAAM,kBAAkB,CAAA;AACtE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAEtD,QAAQ;AACR,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAE3C,QAAQ;AACR,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAEzC,QAAQ;AACR,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA","sourcesContent":["// Core\nexport { GameObject, GameObjectOptions } from './node/core/game-object'\n\n// Renderer\nexport { Renderer, RendererOptions } from './renderer/renderer'\nexport { Ticker } from './renderer/ticker'\n\n// Assets\nexport { musicPlayer, sfxPlayer } from './asset/audio'\nexport { AssetSource, loadAsset, preload, releaseAsset } from './asset/preload'\nexport { Atlas } from './types/atlas'\n\n// Collision\nexport { checkCollision } from './collision/check-collision'\nexport { CircleCollider, Collider, ColliderType, EllipseCollider, PolygonCollider, RectangleCollider } from './collision/colliders'\n\n// Node Extensions\nexport { AnimatedSpriteNode, AnimatedSpriteNodeOptions } from './node/ext/animated-sprite'\nexport { BitmapTextNode, BitmapTextNodeOptions } from './node/ext/bitmap-text'\nexport { CircleNode, CircleNodeOptions } from './node/ext/circle'\nexport { DelayNode } from './node/ext/deplay'\nexport { DomContainerNode, DomContainerNodeOptions } from './node/ext/dom-container'\nexport { IntervalNode } from './node/ext/interval'\nexport { ParticleSystem, ParticleSystemOptions } from './node/ext/particle'\nexport { RectangleNode, RectangleNodeOptions } from './node/ext/rectangle'\nexport { SpineNode, SpineNodeOptions } from './node/ext/spine'\nexport { SpriteNode, SpriteNodeOptions } from './node/ext/sprite'\n\n// Physics\nexport { PhysicsObject, PhysicsObjectOptions } from './node/physics/physics-object'\nexport { PhysicsWorld } from './node/physics/physics-world'\nexport { CircleRigidbody, PolygonRigidbody, RectangleRigidbody, Rigidbody, RigidbodyType } from './node/physics/rigidbodies'\n\n// DOM Nodes\nexport { DomAnimatedSpriteNode } from './dom/dom-animated-sprite'\nexport { DomParticleSystem, DomParticleSystemOptions } from './dom/dom-particle'\nexport { domPreload } from './dom/dom-preload'\nexport { DomSpriteNode, DomSpriteNodeOptions } from './dom/dom-sprite'\nexport { setStyle, textStroke } from './dom/dom-utils'\n\n// Input\nexport { Joystick } from './input/joystick'\n\n// Utils\nexport { isMobile } from './utils/device'\n\n// Debug\nexport { debugMode, enableDebug } from './debug'\n\n"]}
|
|
@@ -25,6 +25,8 @@ export class TransformableNode extends RenderableNode {
|
|
|
25
25
|
this.rotation = options.rotation;
|
|
26
26
|
if (options.alpha !== undefined)
|
|
27
27
|
this.alpha = options.alpha;
|
|
28
|
+
if (options.drawOrder !== undefined)
|
|
29
|
+
this.drawOrder = options.drawOrder;
|
|
28
30
|
this.#layer = options.layer;
|
|
29
31
|
this.#useYSort = options.useYSort ?? false;
|
|
30
32
|
}
|
|
@@ -57,7 +59,7 @@ export class TransformableNode extends RenderableNode {
|
|
|
57
59
|
const lt = this.localTransform;
|
|
58
60
|
pc.position.set(lt.x, lt.y);
|
|
59
61
|
if (this.#useYSort)
|
|
60
|
-
|
|
62
|
+
this.drawOrder = lt.y;
|
|
61
63
|
pc.pivot.set(lt.pivotX, lt.pivotY);
|
|
62
64
|
pc.scale.set(lt.scaleX, lt.scaleY);
|
|
63
65
|
pc.rotation = lt.rotation;
|
|
@@ -81,5 +83,7 @@ export class TransformableNode extends RenderableNode {
|
|
|
81
83
|
get pivotY() { return this.localTransform.pivotY; }
|
|
82
84
|
set rotation(v) { this.localTransform.rotation = v; }
|
|
83
85
|
get rotation() { return this.localTransform.rotation; }
|
|
86
|
+
set drawOrder(v) { this._pixiContainer.zIndex = v; }
|
|
87
|
+
get drawOrder() { return this._pixiContainer.zIndex; }
|
|
84
88
|
}
|
|
85
89
|
//# sourceMappingURL=transformable.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transformable.js","sourceRoot":"","sources":["../../../src/node/core/transformable.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"transformable.js","sourceRoot":"","sources":["../../../src/node/core/transformable.ts"],"names":[],"mappings":"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","sourcesContent":["import { EventMap } from '@webtaku/event-emitter'\nimport { Container as PixiContainer } from 'pixi.js'\nimport { Renderer } from '../../renderer/renderer'\nimport { isRenderableNode, RenderableNode } from './renderable'\nimport { LocalTransform } from './transform'\n\nexport type TransformableNodeOptions = {\n x?: number\n y?: number\n scale?: number\n scaleX?: number\n scaleY?: number\n pivotX?: number\n pivotY?: number\n rotation?: number\n drawOrder?: number\n\n alpha?: number\n layer?: string\n useYSort?: boolean\n}\n\nexport abstract class TransformableNode<C extends PixiContainer, E extends EventMap> extends RenderableNode<C, E> {\n protected localTransform = new LocalTransform()\n\n alpha = 1\n #layer?: string\n #useYSort = false\n\n constructor(pixiContainer: C, options: TransformableNodeOptions) {\n super(pixiContainer)\n\n if (options.x !== undefined) this.x = options.x\n if (options.y !== undefined) this.y = options.y\n if (options.scale !== undefined) this.scale = options.scale\n if (options.scaleX !== undefined) this.scaleX = options.scaleX\n if (options.scaleY !== undefined) this.scaleY = options.scaleY\n if (options.pivotX !== undefined) this.pivotX = options.pivotX\n if (options.pivotY !== undefined) this.pivotY = options.pivotY\n if (options.rotation !== undefined) this.rotation = options.rotation\n if (options.alpha !== undefined) this.alpha = options.alpha\n if (options.drawOrder !== undefined) this.drawOrder = options.drawOrder\n\n this.#layer = options.layer\n this.#useYSort = options.useYSort ?? false\n }\n\n protected override set renderer(renderer: Renderer | undefined) {\n super.renderer = renderer\n\n if (this.#layer && renderer) {\n renderer._addToLayer(this, this.#layer)\n }\n }\n\n protected override get renderer() {\n return super.renderer\n }\n\n override _updateWorldTransform() {\n const parent = this.parent\n if (parent && isRenderableNode(parent)) {\n this.worldTransform.update(parent.worldTransform, this.localTransform)\n this.worldAlpha.v = parent.worldAlpha.v * this.alpha\n }\n\n const pc = this._pixiContainer\n const renderer = this.renderer\n\n // 레이어 상에 있는 경우, 독립적으로 업데이트\n if (this.#layer && renderer) {\n const wt = this.worldTransform\n pc.position.set(wt.x.v, wt.y.v)\n pc.scale.set(wt.scaleX.v, wt.scaleY.v)\n pc.rotation = wt.rotation.v\n pc.alpha = this.worldAlpha.v\n } else {\n const lt = this.localTransform\n pc.position.set(lt.x, lt.y)\n if (this.#useYSort) this.drawOrder = lt.y\n pc.pivot.set(lt.pivotX, lt.pivotY)\n pc.scale.set(lt.scaleX, lt.scaleY)\n pc.rotation = lt.rotation\n pc.alpha = this.alpha\n }\n\n super._updateWorldTransform()\n }\n\n set x(v) { this.localTransform.x = v }\n get x() { return this.localTransform.x }\n\n set y(v) { this.localTransform.y = v }\n get y() { return this.localTransform.y }\n\n set scale(v) { this.localTransform.scaleX = v; this.localTransform.scaleY = v }\n get scale() { return this.localTransform.scaleX }\n\n set scaleX(v) { this.localTransform.scaleX = v }\n get scaleX() { return this.localTransform.scaleX }\n\n set scaleY(v) { this.localTransform.scaleY = v }\n get scaleY() { return this.localTransform.scaleY }\n\n set pivotX(v) { this.localTransform.pivotX = v }\n get pivotX() { return this.localTransform.pivotX }\n\n set pivotY(v) { this.localTransform.pivotY = v }\n get pivotY() { return this.localTransform.pivotY }\n\n set rotation(v) { this.localTransform.rotation = v }\n get rotation() { return this.localTransform.rotation }\n\n set drawOrder(v) { this._pixiContainer.zIndex = v }\n get drawOrder() { return this._pixiContainer.zIndex }\n}\n"]}
|
|
@@ -6,5 +6,7 @@ export type AssetSource = string | {
|
|
|
6
6
|
fnt: string;
|
|
7
7
|
src: string;
|
|
8
8
|
};
|
|
9
|
+
export declare function loadAsset(asset: AssetSource): Promise<void>;
|
|
10
|
+
export declare function releaseAsset(...assets: AssetSource[]): void;
|
|
9
11
|
export declare function preload(assets: AssetSource[], progressCallback?: (progress: number) => void): Promise<() => void>;
|
|
10
12
|
//# sourceMappingURL=preload.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"preload.d.ts","sourceRoot":"","sources":["../../../src/asset/preload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AAUtC,MAAM,MAAM,WAAW,GAAG,MAAM,GAC5B;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAE,GAC7B;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAA;
|
|
1
|
+
{"version":3,"file":"preload.d.ts","sourceRoot":"","sources":["../../../src/asset/preload.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AAUtC,MAAM,MAAM,WAAW,GAAG,MAAM,GAC5B;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,KAAK,CAAA;CAAE,GAC7B;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAA;AAchC,wBAAsB,SAAS,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAgBjE;AAED,wBAAgB,YAAY,CAAC,GAAG,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAkB3D;AAED,wBAAsB,OAAO,CAC3B,MAAM,EAAE,WAAW,EAAE,EACrB,gBAAgB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,GAC5C,OAAO,CAAC,MAAM,IAAI,CAAC,CAiBrB"}
|
package/lib/types/index.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ export { GameObject, GameObjectOptions } from './node/core/game-object';
|
|
|
2
2
|
export { Renderer, RendererOptions } from './renderer/renderer';
|
|
3
3
|
export { Ticker } from './renderer/ticker';
|
|
4
4
|
export { musicPlayer, sfxPlayer } from './asset/audio';
|
|
5
|
-
export { AssetSource, preload } from './asset/preload';
|
|
5
|
+
export { AssetSource, loadAsset, preload, releaseAsset } from './asset/preload';
|
|
6
6
|
export { Atlas } from './types/atlas';
|
|
7
7
|
export { checkCollision } from './collision/check-collision';
|
|
8
8
|
export { CircleCollider, Collider, ColliderType, EllipseCollider, PolygonCollider, RectangleCollider } from './collision/colliders';
|
package/lib/types/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAGvE,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAG1C,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AACtD,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAGvE,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAA;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAG1C,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,eAAe,CAAA;AACtD,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AAC/E,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAA;AAGrC,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAA;AAC5D,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AAGnI,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAA;AAC1F,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAA;AAC9E,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC7C,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAA;AACpF,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAA;AAC3E,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAC1E,OAAO,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAA;AAC9D,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAA;AAGjE,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAA;AACnF,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAA;AAC3D,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAA;AAG5H,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAA;AACjE,OAAO,EAAE,iBAAiB,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAA;AAChF,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAA;AACtE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAGtD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAG3C,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAA;AAGzC,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,SAAS,CAAA"}
|
|
@@ -12,6 +12,7 @@ export type TransformableNodeOptions = {
|
|
|
12
12
|
pivotX?: number;
|
|
13
13
|
pivotY?: number;
|
|
14
14
|
rotation?: number;
|
|
15
|
+
drawOrder?: number;
|
|
15
16
|
alpha?: number;
|
|
16
17
|
layer?: string;
|
|
17
18
|
useYSort?: boolean;
|
|
@@ -40,5 +41,7 @@ export declare abstract class TransformableNode<C extends PixiContainer, E exten
|
|
|
40
41
|
get pivotY(): number;
|
|
41
42
|
set rotation(v: number);
|
|
42
43
|
get rotation(): number;
|
|
44
|
+
set drawOrder(v: number);
|
|
45
|
+
get drawOrder(): number;
|
|
43
46
|
}
|
|
44
47
|
//# sourceMappingURL=transformable.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transformable.d.ts","sourceRoot":"","sources":["../../../../src/node/core/transformable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AACjD,OAAO,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,SAAS,CAAA;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAClD,OAAO,EAAoB,cAAc,EAAE,MAAM,cAAc,CAAA;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAE5C,MAAM,MAAM,wBAAwB,GAAG;IACrC,CAAC,CAAC,EAAE,MAAM,CAAA;IACV,CAAC,CAAC,EAAE,MAAM,CAAA;IACV,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"transformable.d.ts","sourceRoot":"","sources":["../../../../src/node/core/transformable.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAA;AACjD,OAAO,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,SAAS,CAAA;AACpD,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAA;AAClD,OAAO,EAAoB,cAAc,EAAE,MAAM,cAAc,CAAA;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAE5C,MAAM,MAAM,wBAAwB,GAAG;IACrC,CAAC,CAAC,EAAE,MAAM,CAAA;IACV,CAAC,CAAC,EAAE,MAAM,CAAA;IACV,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAElB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB,CAAA;AAED,8BAAsB,iBAAiB,CAAC,CAAC,SAAS,aAAa,EAAE,CAAC,SAAS,QAAQ,CAAE,SAAQ,cAAc,CAAC,CAAC,EAAE,CAAC,CAAC;;IAC/G,SAAS,CAAC,cAAc,iBAAuB;IAE/C,KAAK,SAAI;gBAIG,aAAa,EAAE,CAAC,EAAE,OAAO,EAAE,wBAAwB;IAkB/D,cAAuB,QAAQ,CAAC,QAAQ,EAAE,QAAQ,GAAG,SAAS,EAM7D;IAED,cAAuB,QAAQ,IARW,QAAQ,GAAG,SAAS,CAU7D;IAEQ,qBAAqB;IA8B9B,IAAI,CAAC,CAAC,CAAC,QAAA,EAA+B;IACtC,IAAI,CAAC,WAAmC;IAExC,IAAI,CAAC,CAAC,CAAC,QAAA,EAA+B;IACtC,IAAI,CAAC,WAAmC;IAExC,IAAI,KAAK,CAAC,CAAC,QAAA,EAAoE;IAC/E,IAAI,KAAK,WAAwC;IAEjD,IAAI,MAAM,CAAC,CAAC,QAAA,EAAoC;IAChD,IAAI,MAAM,WAAwC;IAElD,IAAI,MAAM,CAAC,CAAC,QAAA,EAAoC;IAChD,IAAI,MAAM,WAAwC;IAElD,IAAI,MAAM,CAAC,CAAC,QAAA,EAAoC;IAChD,IAAI,MAAM,WAAwC;IAElD,IAAI,MAAM,CAAC,CAAC,QAAA,EAAoC;IAChD,IAAI,MAAM,WAAwC;IAElD,IAAI,QAAQ,CAAC,CAAC,QAAA,EAAsC;IACpD,IAAI,QAAQ,WAA0C;IAEtD,IAAI,SAAS,CAAC,CAAC,QAAA,EAAoC;IACnD,IAAI,SAAS,WAAwC;CACtD"}
|
package/package.json
CHANGED
package/src/asset/preload.ts
CHANGED
|
@@ -24,7 +24,7 @@ function getLoaderForPath(path: string): Loader<any> | undefined {
|
|
|
24
24
|
return loaderForPathMap.find(({ check }) => check(path))?.loader
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
-
async function loadAsset(asset: AssetSource): Promise<void> {
|
|
27
|
+
export async function loadAsset(asset: AssetSource): Promise<void> {
|
|
28
28
|
if (typeof asset === 'string') {
|
|
29
29
|
const loader = getLoaderForPath(asset)
|
|
30
30
|
if (!loader) {
|
|
@@ -42,21 +42,23 @@ async function loadAsset(asset: AssetSource): Promise<void> {
|
|
|
42
42
|
}
|
|
43
43
|
}
|
|
44
44
|
|
|
45
|
-
function releaseAsset(
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
45
|
+
export function releaseAsset(...assets: AssetSource[]): void {
|
|
46
|
+
for (const asset of assets) {
|
|
47
|
+
if (typeof asset === 'string') {
|
|
48
|
+
const loader = getLoaderForPath(asset)
|
|
49
|
+
if (!loader) {
|
|
50
|
+
console.warn(`No loader found for asset: ${asset}`)
|
|
51
|
+
return
|
|
52
|
+
}
|
|
53
|
+
loader.release(asset)
|
|
54
|
+
} else if ('atlas' in asset) {
|
|
55
|
+
const id = getCachedAtlasId(asset.src, asset.atlas)
|
|
56
|
+
spritesheetLoader.release(id)
|
|
57
|
+
} else if ('fnt' in asset) {
|
|
58
|
+
bitmapFontLoader.release(asset.fnt)
|
|
59
|
+
} else {
|
|
60
|
+
console.warn(`Unknown asset type: ${asset}`)
|
|
51
61
|
}
|
|
52
|
-
loader.release(asset)
|
|
53
|
-
} else if ('atlas' in asset) {
|
|
54
|
-
const id = getCachedAtlasId(asset.src, asset.atlas)
|
|
55
|
-
spritesheetLoader.release(id)
|
|
56
|
-
} else if ('fnt' in asset) {
|
|
57
|
-
bitmapFontLoader.release(asset.fnt)
|
|
58
|
-
} else {
|
|
59
|
-
console.warn(`Unknown asset type: ${asset}`)
|
|
60
62
|
}
|
|
61
63
|
}
|
|
62
64
|
|
|
@@ -79,5 +81,5 @@ export async function preload(
|
|
|
79
81
|
})
|
|
80
82
|
)
|
|
81
83
|
|
|
82
|
-
return () => assets
|
|
84
|
+
return () => releaseAsset(...assets)
|
|
83
85
|
}
|
package/src/index.ts
CHANGED
|
@@ -7,7 +7,7 @@ export { Ticker } from './renderer/ticker'
|
|
|
7
7
|
|
|
8
8
|
// Assets
|
|
9
9
|
export { musicPlayer, sfxPlayer } from './asset/audio'
|
|
10
|
-
export { AssetSource, preload } from './asset/preload'
|
|
10
|
+
export { AssetSource, loadAsset, preload, releaseAsset } from './asset/preload'
|
|
11
11
|
export { Atlas } from './types/atlas'
|
|
12
12
|
|
|
13
13
|
// Collision
|
|
@@ -13,6 +13,7 @@ export type TransformableNodeOptions = {
|
|
|
13
13
|
pivotX?: number
|
|
14
14
|
pivotY?: number
|
|
15
15
|
rotation?: number
|
|
16
|
+
drawOrder?: number
|
|
16
17
|
|
|
17
18
|
alpha?: number
|
|
18
19
|
layer?: string
|
|
@@ -38,6 +39,7 @@ export abstract class TransformableNode<C extends PixiContainer, E extends Event
|
|
|
38
39
|
if (options.pivotY !== undefined) this.pivotY = options.pivotY
|
|
39
40
|
if (options.rotation !== undefined) this.rotation = options.rotation
|
|
40
41
|
if (options.alpha !== undefined) this.alpha = options.alpha
|
|
42
|
+
if (options.drawOrder !== undefined) this.drawOrder = options.drawOrder
|
|
41
43
|
|
|
42
44
|
this.#layer = options.layer
|
|
43
45
|
this.#useYSort = options.useYSort ?? false
|
|
@@ -75,7 +77,7 @@ export abstract class TransformableNode<C extends PixiContainer, E extends Event
|
|
|
75
77
|
} else {
|
|
76
78
|
const lt = this.localTransform
|
|
77
79
|
pc.position.set(lt.x, lt.y)
|
|
78
|
-
if (this.#useYSort)
|
|
80
|
+
if (this.#useYSort) this.drawOrder = lt.y
|
|
79
81
|
pc.pivot.set(lt.pivotX, lt.pivotY)
|
|
80
82
|
pc.scale.set(lt.scaleX, lt.scaleY)
|
|
81
83
|
pc.rotation = lt.rotation
|
|
@@ -108,4 +110,7 @@ export abstract class TransformableNode<C extends PixiContainer, E extends Event
|
|
|
108
110
|
|
|
109
111
|
set rotation(v) { this.localTransform.rotation = v }
|
|
110
112
|
get rotation() { return this.localTransform.rotation }
|
|
113
|
+
|
|
114
|
+
set drawOrder(v) { this._pixiContainer.zIndex = v }
|
|
115
|
+
get drawOrder() { return this._pixiContainer.zIndex }
|
|
111
116
|
}
|