1681-engine 0.6.1 → 0.6.3
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/CHANGELOG.md +15 -0
- package/dist/core/PixelGrid.js +17 -13
- package/dist/core/SharpText.js +27 -26
- package/dist/core/Stage.js +11 -5
- package/dist/types/core/PixelGrid.d.ts +6 -3
- package/dist/types/core/PixelGrid.d.ts.map +1 -1
- package/dist/types/core/SharpText.d.ts.map +1 -1
- package/dist/types/core/Stage.d.ts +6 -0
- package/dist/types/core/Stage.d.ts.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,21 @@
|
|
|
3
3
|
All notable changes to this package are written here. The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
4
4
|
and versions follow [Semantic Versioning](https://semver.org/); before 1.0 a minor version may break the API.
|
|
5
5
|
|
|
6
|
+
## 0.6.3
|
|
7
|
+
|
|
8
|
+
### Changed
|
|
9
|
+
|
|
10
|
+
- `SharpText` lays a label's stand-in again only when its home moved, hid, faded or changed depth: `setFromMatrix`
|
|
11
|
+
(a decomposition with trigonometry that also marks the transform changed for Pixi) ran for every label every frame,
|
|
12
|
+
and a town's standing NPC names took ~9% of a frame on a CPU throttled 6x.
|
|
13
|
+
|
|
14
|
+
## 0.6.2
|
|
15
|
+
|
|
16
|
+
### Added
|
|
17
|
+
|
|
18
|
+
- `Stage.pixelDensity`: texels of the pixel-perfect grid to a world pixel (1 by default). A game drawing characters at
|
|
19
|
+
two art pixels to a world pixel sets 2, and the grid keeps their detail instead of sampling them back down.
|
|
20
|
+
|
|
6
21
|
## 0.6.1
|
|
7
22
|
|
|
8
23
|
### Added
|
package/dist/core/PixelGrid.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { Matrix as
|
|
2
|
-
import { gridPlacement as
|
|
1
|
+
import { Matrix as a, Sprite as l, RenderTexture as d } from "pixi.js";
|
|
2
|
+
import { gridPlacement as p } from "./gridPlacement.js";
|
|
3
3
|
import { SharpText as x } from "./SharpText.js";
|
|
4
|
-
class
|
|
4
|
+
class w {
|
|
5
5
|
constructor(e, t) {
|
|
6
6
|
this.app = e, this.world = t, this.text = new x(t);
|
|
7
7
|
}
|
|
@@ -10,18 +10,18 @@ class m {
|
|
|
10
10
|
texture = null;
|
|
11
11
|
sprite = null;
|
|
12
12
|
text;
|
|
13
|
-
transform = new
|
|
13
|
+
transform = new a();
|
|
14
14
|
on = !1;
|
|
15
15
|
get enabled() {
|
|
16
16
|
return this.on;
|
|
17
17
|
}
|
|
18
18
|
/** Once a frame, after the camera wrote the world's transform and before Pixi draws the screen. */
|
|
19
|
-
render(e, t) {
|
|
19
|
+
render(e, t, i = 1) {
|
|
20
20
|
if (t !== this.on && (t ? this.enable(e) : this.disable(e)), !t) return;
|
|
21
|
-
const
|
|
22
|
-
this.transform.set(1, 0, 0, 1, -
|
|
23
|
-
const
|
|
24
|
-
|
|
21
|
+
const r = e.zoom || 1, h = this.world.position, s = p(h.x, h.y, r, this.app.renderer.resolution, e.width, e.height), n = this.fit(s.width, s.height, Math.max(1, Math.round(i)));
|
|
22
|
+
this.transform.set(1, 0, 0, 1, -s.tx, -s.ty), this.app.renderer.render({ container: this.world, target: n, clear: !0, clearColor: [0, 0, 0, 0], transform: this.transform });
|
|
23
|
+
const o = this.sprite;
|
|
24
|
+
o.scale.set(r), o.position.set(s.x, s.y), this.text.sync(h, r);
|
|
25
25
|
}
|
|
26
26
|
destroy(e) {
|
|
27
27
|
this.disable(e), this.text.destroy();
|
|
@@ -37,11 +37,15 @@ class m {
|
|
|
37
37
|
const t = this.app.stage, i = Math.max(0, this.sprite ? t.children.indexOf(this.sprite) : 0);
|
|
38
38
|
t.removeChild(this.text.layer), this.sprite?.destroy(), this.sprite = null, this.texture?.destroy(!0), this.texture = null, this.world.destroyed || t.addChildAt(this.world, i);
|
|
39
39
|
}
|
|
40
|
-
/**
|
|
41
|
-
|
|
42
|
-
|
|
40
|
+
/**
|
|
41
|
+
* The texture at exactly this size (world pixels) and density (texels to a world pixel), made again only when the
|
|
42
|
+
* screen, the zoom or the density changed.
|
|
43
|
+
*/
|
|
44
|
+
fit(e, t, i) {
|
|
45
|
+
const r = this.texture;
|
|
46
|
+
return r && r.width === e && r.height === t && r.source.resolution === i ? r : (this.texture?.destroy(!0), this.texture = d.create({ width: e, height: t, resolution: i, scaleMode: "nearest", antialias: !1 }), this.sprite.texture = this.texture, this.texture);
|
|
43
47
|
}
|
|
44
48
|
}
|
|
45
49
|
export {
|
|
46
|
-
|
|
50
|
+
w as PixelGrid
|
|
47
51
|
};
|
package/dist/core/SharpText.js
CHANGED
|
@@ -1,46 +1,46 @@
|
|
|
1
|
-
import { Container as
|
|
2
|
-
class
|
|
1
|
+
import { Container as p, Matrix as c } from "pixi.js";
|
|
2
|
+
class u {
|
|
3
3
|
constructor(e) {
|
|
4
4
|
this.world = e;
|
|
5
5
|
}
|
|
6
6
|
world;
|
|
7
|
-
layer = new
|
|
7
|
+
layer = new p({ sortableChildren: !0 });
|
|
8
8
|
labels = /* @__PURE__ */ new Set();
|
|
9
|
-
m = new
|
|
9
|
+
m = new c();
|
|
10
10
|
/** Labels tracked since the last sweep for destroyed ones: off, nothing else sweeps them. */
|
|
11
11
|
sinceSweep = 0;
|
|
12
12
|
track(e) {
|
|
13
|
-
this.labels.add({ obj: e, home: null, wrap: null }), ++this.sinceSweep >= 256 && this.prune();
|
|
13
|
+
this.labels.add({ obj: e, home: null, wrap: null, last: null }), ++this.sinceSweep >= 256 && this.prune();
|
|
14
14
|
}
|
|
15
15
|
/** Lays the layer over the world (`origin`: where the world's origin lands on screen) and every label on its home. */
|
|
16
|
-
sync(e,
|
|
17
|
-
this.layer.position.set(e.x, e.y), this.layer.scale.set(
|
|
16
|
+
sync(e, o) {
|
|
17
|
+
this.layer.position.set(e.x, e.y), this.layer.scale.set(o);
|
|
18
18
|
for (const t of this.labels) {
|
|
19
|
-
const
|
|
20
|
-
if (
|
|
19
|
+
const r = t.obj;
|
|
20
|
+
if (r.destroyed) {
|
|
21
21
|
this.drop(t);
|
|
22
22
|
continue;
|
|
23
23
|
}
|
|
24
|
-
|
|
25
|
-
const
|
|
26
|
-
if (!(!
|
|
27
|
-
if (
|
|
28
|
-
|
|
24
|
+
r.parent && r.parent !== t.wrap && (t.home = r.parent, t.wrap ??= this.layer.addChild(new p()), t.wrap.addChild(r), t.last = null);
|
|
25
|
+
const s = t.home, a = t.wrap;
|
|
26
|
+
if (!(!s || !a)) {
|
|
27
|
+
if (s.destroyed) {
|
|
28
|
+
r.destroy(), this.drop(t);
|
|
29
29
|
continue;
|
|
30
30
|
}
|
|
31
|
-
this.place(
|
|
31
|
+
this.place(t, s, a, r);
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
34
|
}
|
|
35
35
|
/** Every label back in its home (the grid switched off), the stand-ins gone. */
|
|
36
36
|
release() {
|
|
37
37
|
for (const e of this.labels) {
|
|
38
|
-
const { obj:
|
|
39
|
-
if (
|
|
38
|
+
const { obj: o, home: t, wrap: r } = e;
|
|
39
|
+
if (o.destroyed) {
|
|
40
40
|
this.drop(e);
|
|
41
41
|
continue;
|
|
42
42
|
}
|
|
43
|
-
t &&
|
|
43
|
+
t && r && o.parent === r && (t.destroyed ? o.destroy() : t.addChild(o)), r?.destroy(), e.wrap = null, e.home = null, e.last = null;
|
|
44
44
|
}
|
|
45
45
|
}
|
|
46
46
|
/** Forgets labels the game destroyed while nothing synced (the grid off). */
|
|
@@ -51,22 +51,23 @@ class c {
|
|
|
51
51
|
destroy() {
|
|
52
52
|
this.release(), this.labels.clear(), this.layer.destroy({ children: !0 });
|
|
53
53
|
}
|
|
54
|
-
place(e,
|
|
54
|
+
place(e, o, t, r) {
|
|
55
55
|
const s = this.m.identity();
|
|
56
|
-
let
|
|
57
|
-
for (let
|
|
58
|
-
if (!
|
|
59
|
-
|
|
56
|
+
let a = !0, n = 1, h = o;
|
|
57
|
+
for (let i = o; i !== this.world; i = i.parent) {
|
|
58
|
+
if (!i) {
|
|
59
|
+
a = !1;
|
|
60
60
|
break;
|
|
61
61
|
}
|
|
62
|
-
(!
|
|
62
|
+
(!i.visible || !i.renderable) && (a = !1), n *= i.alpha, i.updateLocalTransform(), s.prepend(i.localTransform), h = i;
|
|
63
63
|
}
|
|
64
|
-
|
|
64
|
+
const d = o === this.world ? r.zIndex : h.zIndex, l = e.last ??= new Float64Array(9).fill(NaN);
|
|
65
|
+
a === (l[8] === 1) && (!a || l[0] === s.a && l[1] === s.b && l[2] === s.c && l[3] === s.d && l[4] === s.tx && l[5] === s.ty && l[6] === n && l[7] === d) || (l[8] = a ? 1 : 0, t.visible = a, a && (l[0] = s.a, l[1] = s.b, l[2] = s.c, l[3] = s.d, l[4] = s.tx, l[5] = s.ty, l[6] = n, l[7] = d, t.setFromMatrix(s), t.alpha = n, t.zIndex = d));
|
|
65
66
|
}
|
|
66
67
|
drop(e) {
|
|
67
68
|
e.wrap?.destroy(), this.labels.delete(e);
|
|
68
69
|
}
|
|
69
70
|
}
|
|
70
71
|
export {
|
|
71
|
-
|
|
72
|
+
u as SharpText
|
|
72
73
|
};
|
package/dist/core/Stage.js
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { Container as s } from "pixi.js";
|
|
2
|
-
import { Camera as
|
|
3
|
-
import { Clock as
|
|
2
|
+
import { Camera as n } from "./Camera.js";
|
|
3
|
+
import { Clock as a } from "./Clock.js";
|
|
4
4
|
import { ObjectFactory as o } from "./ObjectFactory.js";
|
|
5
5
|
import { PixelGrid as d } from "./PixelGrid.js";
|
|
6
6
|
import { Pointer as c } from "./Pointer.js";
|
|
7
7
|
import { Tweener as m } from "./Tweener.js";
|
|
8
8
|
class h {
|
|
9
9
|
constructor(t, e) {
|
|
10
|
-
this.app = t, this.textures = e, t.stage.addChild(this.world, this.screen), this.cameras = { main: new
|
|
10
|
+
this.app = t, this.textures = e, t.stage.addChild(this.world, this.screen), this.cameras = { main: new n(this.world, this.screen) }, this.input = { activePointer: new c(t.canvas) }, this.grid = new d(t, this.world), this.time.onError = (i) => this.caught("timers", i), this.syncSize();
|
|
11
11
|
}
|
|
12
12
|
app;
|
|
13
13
|
textures;
|
|
@@ -17,7 +17,7 @@ class h {
|
|
|
17
17
|
screen = new s();
|
|
18
18
|
add = new o(this);
|
|
19
19
|
tweens = new m();
|
|
20
|
-
time = new
|
|
20
|
+
time = new a();
|
|
21
21
|
cameras;
|
|
22
22
|
input;
|
|
23
23
|
/**
|
|
@@ -26,6 +26,12 @@ class h {
|
|
|
26
26
|
* Off (the default), the world is drawn straight at the zoom. Takes effect on the next frame; may be switched any time.
|
|
27
27
|
*/
|
|
28
28
|
pixelPerfect = !1;
|
|
29
|
+
/**
|
|
30
|
+
* Texels of the pixel-perfect grid to a world pixel (whole, 1 by default). A game whose characters are drawn finer
|
|
31
|
+
* than its world pixel (two art pixels to one) sets 2, so the grid keeps their detail; everything else still lands on
|
|
32
|
+
* that finer grid.
|
|
33
|
+
*/
|
|
34
|
+
pixelDensity = 1;
|
|
29
35
|
grid;
|
|
30
36
|
/** Whether the grid drew last frame, so the frame it is switched off still takes it down. */
|
|
31
37
|
gridLive = !1;
|
|
@@ -55,7 +61,7 @@ class h {
|
|
|
55
61
|
*/
|
|
56
62
|
frame(t) {
|
|
57
63
|
const e = performance.now();
|
|
58
|
-
this.guard("resize", () => this.syncSize()), this.guard("update", () => this.update(e, t)), this.guard("tweens", () => this.tweens.update(t)), this.guard("timers", () => this.time.update(e)), this.guard("camera", () => this.cameras.main.apply(e)), (this.pixelPerfect || this.gridLive) && (this.gridLive = this.pixelPerfect, this.guard("pixel grid", () => this.grid.render(this.cameras.main, this.pixelPerfect)));
|
|
64
|
+
this.guard("resize", () => this.syncSize()), this.guard("update", () => this.update(e, t)), this.guard("tweens", () => this.tweens.update(t)), this.guard("timers", () => this.time.update(e)), this.guard("camera", () => this.cameras.main.apply(e)), (this.pixelPerfect || this.gridLive) && (this.gridLive = this.pixelPerfect, this.guard("pixel grid", () => this.grid.render(this.cameras.main, this.pixelPerfect, this.pixelDensity)));
|
|
59
65
|
}
|
|
60
66
|
/**
|
|
61
67
|
* Keeps a piece of text made outside `add.text`/`add.label` (put on the world any way) at screen resolution while the
|
|
@@ -3,7 +3,7 @@ import type { Camera } from './Camera.js';
|
|
|
3
3
|
import { SharpText } from './SharpText.js';
|
|
4
4
|
/**
|
|
5
5
|
* A pixel-perfect world (`Stage.pixelPerfect`): the world layer is taken off the stage and drawn each frame into a
|
|
6
|
-
* texture of one texel per world pixel, whose origin sits on a whole world pixel, then shown at the camera's zoom and
|
|
6
|
+
* texture of one texel per world pixel (`Stage.pixelDensity` texels, when the art is finer), whose origin sits on a whole world pixel, then shown at the camera's zoom and
|
|
7
7
|
* moved by the scroll's fraction, so the camera still glides one backing pixel at a time. Everything turned, scaled or
|
|
8
8
|
* placed between pixels lands on the same grid as the rest of the art, so no pixel on screen is drawn at another size
|
|
9
9
|
* ("mixels"); the world is also filled at 1/zoom² of the screen's pixels. Roots placed with `Camera.snapRoot` land on
|
|
@@ -20,11 +20,14 @@ export declare class PixelGrid {
|
|
|
20
20
|
constructor(app: Application, world: Container);
|
|
21
21
|
get enabled(): boolean;
|
|
22
22
|
/** Once a frame, after the camera wrote the world's transform and before Pixi draws the screen. */
|
|
23
|
-
render(cam: Camera, enabled: boolean): void;
|
|
23
|
+
render(cam: Camera, enabled: boolean, density?: number): void;
|
|
24
24
|
destroy(cam: Camera): void;
|
|
25
25
|
private enable;
|
|
26
26
|
private disable;
|
|
27
|
-
/**
|
|
27
|
+
/**
|
|
28
|
+
* The texture at exactly this size (world pixels) and density (texels to a world pixel), made again only when the
|
|
29
|
+
* screen, the zoom or the density changed.
|
|
30
|
+
*/
|
|
28
31
|
private fit;
|
|
29
32
|
}
|
|
30
33
|
//# sourceMappingURL=PixelGrid.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PixelGrid.d.ts","sourceRoot":"","sources":["../../../src/core/PixelGrid.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiC,KAAK,WAAW,EAAE,KAAK,SAAS,EAAE,MAAM,SAAS,CAAC;AAC1F,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAEvC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC;;;;;;;GAOG;AACH,qBAAa,SAAS;IAQlB,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,KAAK;IARxB,OAAO,CAAC,OAAO,CAA8B;IAC7C,OAAO,CAAC,MAAM,CAAuB;IACrC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAgB;IAC1C,OAAO,CAAC,EAAE,CAAS;gBAGA,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,SAAS;IAKnC,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,mGAAmG;IACnG,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"PixelGrid.d.ts","sourceRoot":"","sources":["../../../src/core/PixelGrid.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiC,KAAK,WAAW,EAAE,KAAK,SAAS,EAAE,MAAM,SAAS,CAAC;AAC1F,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAEvC,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC;;;;;;;GAOG;AACH,qBAAa,SAAS;IAQlB,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,KAAK;IARxB,OAAO,CAAC,OAAO,CAA8B;IAC7C,OAAO,CAAC,MAAM,CAAuB;IACrC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC;IACzB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAgB;IAC1C,OAAO,CAAC,EAAE,CAAS;gBAGA,GAAG,EAAE,WAAW,EAChB,KAAK,EAAE,SAAS;IAKnC,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,mGAAmG;IACnG,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,SAAI,GAAG,IAAI;IAmBxD,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAK1B,OAAO,CAAC,MAAM;IAWd,OAAO,CAAC,OAAO;IAef;;;OAGG;IACH,OAAO,CAAC,GAAG;CAQZ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SharpText.d.ts","sourceRoot":"","sources":["../../../src/core/SharpText.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAU,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"SharpText.d.ts","sourceRoot":"","sources":["../../../src/core/SharpText.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAU,MAAM,SAAS,CAAC;AAgB5C;;;;;;;GAOG;AACH,qBAAa,SAAS;IAOR,OAAO,CAAC,QAAQ,CAAC,KAAK;IANlC,QAAQ,CAAC,KAAK,8CAA6C;IAC3D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoB;IAC3C,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAgB;IAClC,6FAA6F;IAC7F,OAAO,CAAC,UAAU,CAAK;gBAEM,KAAK,EAAE,SAAS;IAE7C,KAAK,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI;IAK3B,sHAAsH;IACtH,IAAI,CAAC,MAAM,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI;IA6B1D,gFAAgF;IAChF,OAAO,IAAI,IAAI;IAkBf,6EAA6E;IAC7E,KAAK,IAAI,IAAI;IAKb,OAAO,IAAI,IAAI;IAMf,OAAO,CAAC,KAAK;IAqCb,OAAO,CAAC,IAAI;CAIb"}
|
|
@@ -31,6 +31,12 @@ export declare abstract class Stage {
|
|
|
31
31
|
* Off (the default), the world is drawn straight at the zoom. Takes effect on the next frame; may be switched any time.
|
|
32
32
|
*/
|
|
33
33
|
pixelPerfect: boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Texels of the pixel-perfect grid to a world pixel (whole, 1 by default). A game whose characters are drawn finer
|
|
36
|
+
* than its world pixel (two art pixels to one) sets 2, so the grid keeps their detail; everything else still lands on
|
|
37
|
+
* that finer grid.
|
|
38
|
+
*/
|
|
39
|
+
pixelDensity: number;
|
|
34
40
|
private readonly grid;
|
|
35
41
|
/** Whether the grid drew last frame, so the frame it is switched off still takes it down. */
|
|
36
42
|
private gridLive;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Stage.d.ts","sourceRoot":"","sources":["../../../src/core/Stage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,WAAW,EAAE,MAAM,SAAS,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC;;;GAGG;AACH,8BAAsB,KAAK;
|
|
1
|
+
{"version":3,"file":"Stage.d.ts","sourceRoot":"","sources":["../../../src/core/Stage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,WAAW,EAAE,MAAM,SAAS,CAAC;AACtD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC;;;GAGG;AACH,8BAAsB,KAAK;IA+BvB,QAAQ,CAAC,GAAG,EAAE,WAAW;IACzB,QAAQ,CAAC,QAAQ,EAAE,eAAe;IA/BpC,yFAAyF;IACzF,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC,GAAG,IAAI,CAAQ;IAEvE,QAAQ,CAAC,KAAK,8CAA6C;IAC3D,QAAQ,CAAC,MAAM,8CAAmB;IAClC,QAAQ,CAAC,GAAG,gBAA2B;IACvC,QAAQ,CAAC,MAAM,UAAiB;IAChC,QAAQ,CAAC,IAAI,QAAe;IAC5B,QAAQ,CAAC,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACnC,QAAQ,CAAC,KAAK,EAAE;QAAE,aAAa,EAAE,OAAO,CAAA;KAAE,CAAC;IAC3C;;;;OAIG;IACH,YAAY,UAAS;IACrB;;;;OAIG;IACH,YAAY,SAAK;IACjB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAY;IACjC,6FAA6F;IAC7F,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAsB;IACtD,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,UAAU,CAAK;gBAGZ,GAAG,EAAE,WAAW,EAChB,QAAQ,EAAE,eAAe;IAWpC,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,IAAI,GAAG,IAAI,MAAM,CAEhB;IAED,6GAA6G;IAC7G,QAAQ,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI;IAQpC,QAAQ,CAAC,MAAM,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAEjD;;;;OAIG;IACH,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAc1B;;;OAGG;IACH,SAAS,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI;IAI/B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqB;IAE9C;;;;OAIG;IACH,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI;IAInD,2EAA2E;IAC3E,SAAS,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC;IAS/D,iIAAiI;IACjI,SAAS,CAAC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,GAAG,IAAI;IASlD,OAAO,IAAI,IAAI;IAUf,OAAO,CAAC,QAAQ;CAWjB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "1681-engine",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.3",
|
|
4
4
|
"description": "A 2D game engine on PixiJS 8 for any art style: scenes and a fast ECS, a fixed-step loop, asset loading, Tiled maps, sprite animation, input actions, camera follow, audio and deterministic, server-replayable movement, plus Dither, an optional pixel-art module (pixel-perfect effects, dithered lighting).",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"types": "./dist/types/index.d.ts",
|