mochi-avatar 1.0.0 → 1.1.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/LICENSE.md +7 -1
- package/README.md +115 -12
- package/dist/canvas2d/avatar.d.ts +18 -0
- package/dist/canvas2d/avatar.d.ts.map +1 -1
- package/dist/canvas2d/avatar.js +40 -3
- package/dist/canvas2d/avatar.js.map +1 -1
- package/dist/core/looks.d.ts.map +1 -1
- package/dist/core/looks.js +19 -2
- package/dist/core/looks.js.map +1 -1
- package/dist/core/plain.d.ts +10 -7
- package/dist/core/plain.d.ts.map +1 -1
- package/dist/core/plain.js +10 -7
- package/dist/core/plain.js.map +1 -1
- package/dist/element/dough-avatar.js +5 -5
- package/dist/element/dough-avatar.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/package.json +3 -1
package/LICENSE.md
CHANGED
|
@@ -13,7 +13,13 @@ way of drawing soft-bodied characters and belongs to anyone who wants it. Mochi
|
|
|
13
13
|
is one specific character, and she is not a free asset.
|
|
14
14
|
|
|
15
15
|
**If you want a character of your own, the engine is all you need.** Start from
|
|
16
|
-
`PLAIN
|
|
16
|
+
`PLAIN` — which lives in `src/core/` and is MIT — move the numbers, and what
|
|
17
|
+
comes out owes nothing to Part 2.
|
|
18
|
+
|
|
19
|
+
One caveat, stated rather than buried: an avatar constructed without a face
|
|
20
|
+
defaults to Mochi, so that is the single place Part 1 code names something from
|
|
21
|
+
Part 2. Taking the engine alone means passing a face, which anyone building
|
|
22
|
+
their own character does on the first line anyway.
|
|
17
23
|
|
|
18
24
|
---
|
|
19
25
|
|
package/README.md
CHANGED
|
@@ -1,8 +1,14 @@
|
|
|
1
|
-
|
|
1
|
+
<p align="center">
|
|
2
|
+
<img src="https://raw.githubusercontent.com/xiaolai/mochi/main/assets/mochi-alive.png" width="220" alt="Mochi, breathing and occasionally blinking — a soft green ovoid with two round eyes and a small quiet mouth">
|
|
3
|
+
</p>
|
|
2
4
|
|
|
3
|
-
<
|
|
5
|
+
<h1 align="center">Mochi</h1>
|
|
4
6
|
|
|
5
|
-
|
|
7
|
+
<p align="center">
|
|
8
|
+
A soft-body companion character, and the engine that draws her.
|
|
9
|
+
</p>
|
|
10
|
+
|
|
11
|
+
---
|
|
6
12
|
|
|
7
13
|
She is an ovoid whose widest point sits at 0.295 of her height, formed from
|
|
8
14
|
superellipse exponents 1.86 above the waist and 2.58 below. She squashes without
|
|
@@ -10,6 +16,10 @@ changing area, leans by a shear pinned at the point where she meets the surface,
|
|
|
10
16
|
breathes on a one-sided curve and settles on an underdamped spring. Her face
|
|
11
17
|
rides on her at a grip of 0.82 — following the body without looking printed on.
|
|
12
18
|
|
|
19
|
+
Every image in this file was rendered by the package itself, from `MOCHI`. There
|
|
20
|
+
is no second drawing of her anywhere in this repository for the code to drift
|
|
21
|
+
away from.
|
|
22
|
+
|
|
13
23
|
Zero runtime dependencies.
|
|
14
24
|
|
|
15
25
|
```sh
|
|
@@ -35,9 +45,9 @@ Attributes: `emotion` (one of the eight below), `size` (a percentage or
|
|
|
35
45
|
## Against a canvas
|
|
36
46
|
|
|
37
47
|
```js
|
|
38
|
-
import { DoughAvatar
|
|
48
|
+
import { DoughAvatar } from 'mochi-avatar'
|
|
39
49
|
|
|
40
|
-
const avatar = new DoughAvatar(canvas.getContext('2d'), {
|
|
50
|
+
const avatar = new DoughAvatar(canvas.getContext('2d'), { size: 'fit-canvas' }) // Mochi by default
|
|
41
51
|
avatar.resize(300, 300, devicePixelRatio)
|
|
42
52
|
avatar.setEmotion({ emotion: 'happy', intensity: 1 })
|
|
43
53
|
|
|
@@ -48,18 +58,95 @@ const tick = (now) => {
|
|
|
48
58
|
requestAnimationFrame(tick)
|
|
49
59
|
```
|
|
50
60
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
61
|
+
## She is alive before you tell her anything
|
|
62
|
+
|
|
63
|
+
That image is not a loop somebody animated. It is the engine, running, with no
|
|
64
|
+
input at all — because an idle character who holds perfectly still reads as a
|
|
65
|
+
crashed one. She is breathing, and blinking about once every seven seconds —
|
|
66
|
+
which is her own schedule, not a decision made in the picture. What is turned
|
|
67
|
+
off there is the sway: `setDrift(false)`, because a still on a page should hold
|
|
68
|
+
its frame.
|
|
69
|
+
|
|
70
|
+
| | |
|
|
71
|
+
| ---------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
72
|
+
| **Breath** | 3400ms, one-sided. Two half raised-cosines meeting at zero slope, 1:1.5 in to out — inspiration is muscular, expiration is elastic recoil. It only ever spreads her; her resting silhouette is a floor she returns to, never a midpoint. |
|
|
73
|
+
| **Blink** | 130ms, 35% closing and 65% opening, because a real lid shuts faster than it opens. Gaps come from a clamped exponential — blinking is a Poisson process, and a uniform gap reads as a metronome within about thirty seconds. |
|
|
74
|
+
| **Drift** | Three mutually incommensurate sines per channel, so the pattern never visibly repeats. About 2.6px of sway on a 94px body: somebody shifting their weight, not somebody pacing. |
|
|
75
|
+
|
|
76
|
+
All of it is a pure function of the clock — no timers, no random walk, no state
|
|
77
|
+
that a throttled tab can desynchronise. Ask it where she is at time _t_ and it
|
|
78
|
+
answers.
|
|
79
|
+
|
|
80
|
+
## Making her do things
|
|
81
|
+
|
|
82
|
+
```js
|
|
83
|
+
avatar.setEmotion({ emotion: 'happy', intensity: 1 })
|
|
84
|
+
avatar.playMotion('hop') // nod · sway · hop · swing · turn · wander
|
|
85
|
+
avatar.lookAt(0.4, -0.2) // she follows a point; the far side wraps out of sight
|
|
86
|
+
avatar.poke() // squash, then settle on the spring
|
|
87
|
+
avatar.setAsleep(true) // she keeps breathing; stopping entirely reads as a crash
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
### Speaking
|
|
91
|
+
|
|
92
|
+
```js
|
|
93
|
+
avatar.setSpeaking(true)
|
|
94
|
+
avatar.setMouthOpen(0.8) // drive this from your audio, per frame
|
|
95
|
+
avatar.setSpeaking(false)
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
`EnvelopeMouth` in `core/mouth` will do the driving for you from an audio
|
|
99
|
+
envelope — `advanceEnvelope` turns a `Float32Array` of samples into a mouth
|
|
100
|
+
opening with attack and release, so speech does not chatter on every zero
|
|
101
|
+
crossing.
|
|
102
|
+
|
|
103
|
+
Two honest limits: `setVisemes` exists on the backend interface but this rig
|
|
104
|
+
does not implement it — the mouth is one lens with an opening, not a phoneme
|
|
105
|
+
shape, and `caps.visemes` says so rather than pretending. And the custom element
|
|
106
|
+
wires `emotion`, `size` and `face` only; anything above needs the JS object.
|
|
107
|
+
|
|
108
|
+
### Accessibility
|
|
109
|
+
|
|
110
|
+
```js
|
|
111
|
+
avatar.setReducedMotion(true) // stops the idle motion, keeps one-shot replies
|
|
112
|
+
avatar.setDrift(false) // stops only the sway; she goes on breathing
|
|
113
|
+
```
|
|
114
|
+
|
|
115
|
+
`setReducedMotion` is the accessibility preference, and it stops the breath
|
|
116
|
+
along with everything else. `setDrift` is the weaker, orthogonal one: use it
|
|
117
|
+
when she has to hold a fixed frame but should still look alive — which is
|
|
118
|
+
exactly what the image at the top of this page is doing. A companion who
|
|
119
|
+
answers nothing is a picture, not a quieter companion — the preference asks for
|
|
120
|
+
less movement, not for no feedback.
|
|
121
|
+
|
|
122
|
+
### Expressions
|
|
123
|
+
|
|
124
|
+
<img src="https://raw.githubusercontent.com/xiaolai/mochi/main/assets/expressions.png" width="100%" alt="Mochi in eight expressions: neutral, happy, shy, sad, angry, surprised, thinking, sleepy">
|
|
125
|
+
|
|
126
|
+
<p align="center"><sub>
|
|
127
|
+
neutral · happy · shy · sad · angry · surprised · thinking · sleepy
|
|
128
|
+
</sub></p>
|
|
54
129
|
|
|
55
|
-
|
|
56
|
-
|
|
130
|
+
Each is a set of multipliers on the neutral geometry rather than separate
|
|
131
|
+
artwork, so one silhouette carries all eight. Sleepy has no mouth on purpose —
|
|
132
|
+
a mouth left on a sleeping face reads as awake-but-quiet.
|
|
133
|
+
|
|
134
|
+
## Colourways
|
|
135
|
+
|
|
136
|
+
<img src="https://raw.githubusercontent.com/xiaolai/mochi/main/assets/colourways.png" width="100%" alt="Mochi in six colourways: matcha, sakura, kinako, yuzu, ramune, budo">
|
|
137
|
+
|
|
138
|
+
<p align="center"><sub>
|
|
139
|
+
matcha · sakura · kinako · yuzu · ramune · budo
|
|
140
|
+
</sub></p>
|
|
57
141
|
|
|
58
142
|
```js
|
|
59
143
|
import { mochiIn, MOCHI } from 'mochi-avatar'
|
|
60
144
|
const sakura = mochiIn('sakura', MOCHI)
|
|
61
145
|
```
|
|
62
146
|
|
|
147
|
+
One geometry throughout — five colour fields swapped, nothing else. Which is the
|
|
148
|
+
claim the picture is making: she is the shape, not the colour.
|
|
149
|
+
|
|
63
150
|
## Just the geometry
|
|
64
151
|
|
|
65
152
|
`core` is pure arithmetic. It returns points and numbers, and imports no canvas,
|
|
@@ -105,8 +192,24 @@ import { DoughAvatar, PLAIN } from 'mochi-avatar'
|
|
|
105
192
|
new DoughAvatar(ctx, { face: { ...PLAIN, waist: 0.5, colBody: '#c88e9d' }, size: 'fit-canvas' })
|
|
106
193
|
```
|
|
107
194
|
|
|
108
|
-
`PLAIN` is
|
|
109
|
-
|
|
195
|
+
`PLAIN` is a deliberately generic body — a near-symmetric egg, one flat tone, no
|
|
196
|
+
blush — built to be visibly a different creature from her along the axes that
|
|
197
|
+
identify her. It exists to be started from.
|
|
198
|
+
|
|
199
|
+
Give no face at all and you get **Mochi**, since that is whose package this is.
|
|
200
|
+
|
|
201
|
+
## Example: Mochi as a Codex CLI pet
|
|
202
|
+
|
|
203
|
+
[`examples/codex-pet/`](examples/codex-pet) exports her as a sprite atlas — 74
|
|
204
|
+
frames, no canvas and no frame loop, because the core is pure functions and does
|
|
205
|
+
not need either. **Six colourways are prebuilt**, so installing one is a copy
|
|
206
|
+
into `~/.codex/pets/`.
|
|
207
|
+
|
|
208
|
+
It is also the closest thing to a fidelity test this package has. Re-pointed at
|
|
209
|
+
the published build, 73 of its 74 frames came out pixel-identical to an atlas
|
|
210
|
+
produced against the original application's source tree — and the six flavours
|
|
211
|
+
have pixel-identical alpha channels, which is the "same shape, five fields
|
|
212
|
+
swapped" claim measured rather than asserted.
|
|
110
213
|
|
|
111
214
|
## Licence
|
|
112
215
|
|
|
@@ -101,6 +101,15 @@ export declare class DoughAvatar implements AvatarBackend {
|
|
|
101
101
|
* movement, not for no feedback.
|
|
102
102
|
*/
|
|
103
103
|
private reducedMotion;
|
|
104
|
+
/**
|
|
105
|
+
* Whether the going-nowhere sway is running.
|
|
106
|
+
*
|
|
107
|
+
* Separate from `reducedMotion`, which stops the breath as well. There was no
|
|
108
|
+
* way to ask for a mochi who is alive but STILL — breathing, blinking, not
|
|
109
|
+
* wandering — and that is a reasonable thing to want for a small avatar in a
|
|
110
|
+
* fixed slot, or for a picture of her that has to hold its own frame.
|
|
111
|
+
*/
|
|
112
|
+
private drifting;
|
|
104
113
|
private emotion;
|
|
105
114
|
private emotionExpiresAt;
|
|
106
115
|
/** A hold requested before the first frame, when there was no clock to add it to. */
|
|
@@ -172,6 +181,15 @@ export declare class DoughAvatar implements AvatarBackend {
|
|
|
172
181
|
* told apart from an accessibility preference, and one of them wants the
|
|
173
182
|
* blink schedule re-armed on the way out while the other does not care.
|
|
174
183
|
*/
|
|
184
|
+
/**
|
|
185
|
+
* Turn the continuous sway on or off, leaving everything else alone.
|
|
186
|
+
*
|
|
187
|
+
* She goes on breathing and blinking; what stops is the several pixels of
|
|
188
|
+
* lean, shift and lift that keep her from looking pinned to the page. Use it
|
|
189
|
+
* when she has to hold a fixed frame. For the accessibility preference use
|
|
190
|
+
* `setReducedMotion`, which is a stronger statement.
|
|
191
|
+
*/
|
|
192
|
+
setDrift(on: boolean): void;
|
|
175
193
|
setReducedMotion(on: boolean): void;
|
|
176
194
|
/**
|
|
177
195
|
* Stop whatever is playing, and let the springs settle her back.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"avatar.d.ts","sourceRoot":"","sources":["../../src/canvas2d/avatar.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAGL,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,UAAU,EACf,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,aAAa,EACnB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAA;AAmE/C;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,eAAO,MAAM,kBAAkB,IAAI,CAAA;AAenC,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAA;IACxB;;;;;;;;;;;;;;OAcG;IACH,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,CAAA;IACpC,qDAAqD;IACrD,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,MAAM,CAAA;CAC/B;AAED,qBAAa,WAAY,YAAW,aAAa;
|
|
1
|
+
{"version":3,"file":"avatar.d.ts","sourceRoot":"","sources":["../../src/canvas2d/avatar.ts"],"names":[],"mappings":"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"}
|
package/dist/canvas2d/avatar.js
CHANGED
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
*/
|
|
14
14
|
import { clamp01, clampSigned, } from '../core/vocabulary.js';
|
|
15
15
|
import {} from '../core/spec.js';
|
|
16
|
-
import {
|
|
16
|
+
import { MOCHI } from '../characters/mochi.js';
|
|
17
17
|
import { BREATHING_UNITS, FEET_FROM_TOP, SQUASH_LIMIT, feetY, fitToCanvas, layoutFor, } from '../core/layout.js';
|
|
18
18
|
import { driftAt, IdleLayer } from '../core/idle.js';
|
|
19
19
|
import { blendLook } from '../core/looks.js';
|
|
@@ -148,6 +148,15 @@ export class DoughAvatar {
|
|
|
148
148
|
* movement, not for no feedback.
|
|
149
149
|
*/
|
|
150
150
|
reducedMotion = false;
|
|
151
|
+
/**
|
|
152
|
+
* Whether the going-nowhere sway is running.
|
|
153
|
+
*
|
|
154
|
+
* Separate from `reducedMotion`, which stops the breath as well. There was no
|
|
155
|
+
* way to ask for a mochi who is alive but STILL — breathing, blinking, not
|
|
156
|
+
* wandering — and that is a reasonable thing to want for a small avatar in a
|
|
157
|
+
* fixed slot, or for a picture of her that has to hold its own frame.
|
|
158
|
+
*/
|
|
159
|
+
drifting = true;
|
|
151
160
|
emotion = NEUTRAL_SIGNAL;
|
|
152
161
|
emotionExpiresAt = null;
|
|
153
162
|
/** A hold requested before the first frame, when there was no clock to add it to. */
|
|
@@ -162,7 +171,22 @@ export class DoughAvatar {
|
|
|
162
171
|
silhouette = null;
|
|
163
172
|
constructor(ctx, options) {
|
|
164
173
|
this.ctx = ctx;
|
|
165
|
-
|
|
174
|
+
/*
|
|
175
|
+
Mochi, because this package is named after her and ships her.
|
|
176
|
+
|
|
177
|
+
It used to be `PLAIN`, from a design where she was reserved and did not
|
|
178
|
+
ship at all; a generic default was the only honest thing an engine could
|
|
179
|
+
hand out. She ships now, under her own licence, and a default of PLAIN
|
|
180
|
+
meant somebody installing `mochi-avatar` and writing the shortest possible
|
|
181
|
+
code got a grey egg. Her own website got one.
|
|
182
|
+
|
|
183
|
+
This is the single place the MIT engine references the character layer,
|
|
184
|
+
which is not MIT — see LICENSE.md. Taking the engine alone therefore means
|
|
185
|
+
supplying a face, which anybody building their own character is doing on
|
|
186
|
+
the first line anyway. `PLAIN` is still here for exactly that: a starting
|
|
187
|
+
point, not a fallback.
|
|
188
|
+
*/
|
|
189
|
+
this.face = options.face ?? MOCHI;
|
|
166
190
|
this.sizePercent = options.size;
|
|
167
191
|
this.idleLayer = new IdleLayer(0, options.random);
|
|
168
192
|
}
|
|
@@ -335,6 +359,17 @@ export class DoughAvatar {
|
|
|
335
359
|
* told apart from an accessibility preference, and one of them wants the
|
|
336
360
|
* blink schedule re-armed on the way out while the other does not care.
|
|
337
361
|
*/
|
|
362
|
+
/**
|
|
363
|
+
* Turn the continuous sway on or off, leaving everything else alone.
|
|
364
|
+
*
|
|
365
|
+
* She goes on breathing and blinking; what stops is the several pixels of
|
|
366
|
+
* lean, shift and lift that keep her from looking pinned to the page. Use it
|
|
367
|
+
* when she has to hold a fixed frame. For the accessibility preference use
|
|
368
|
+
* `setReducedMotion`, which is a stronger statement.
|
|
369
|
+
*/
|
|
370
|
+
setDrift(on) {
|
|
371
|
+
this.drifting = on;
|
|
372
|
+
}
|
|
338
373
|
setReducedMotion(on) {
|
|
339
374
|
if (on === this.reducedMotion)
|
|
340
375
|
return;
|
|
@@ -556,7 +591,9 @@ export class DoughAvatar {
|
|
|
556
591
|
her still, and a still she can be measured against.
|
|
557
592
|
*/
|
|
558
593
|
const stirring = this.idle && !this.reducedMotion;
|
|
559
|
-
|
|
594
|
+
// The drift is gated by BOTH, and the breath by `stirring` alone: turning
|
|
595
|
+
// off the sway must not turn off the thing that says she is alive.
|
|
596
|
+
const drift = stirring && this.drifting ? driftAt(now, this.asleep ? ASLEEP_DRIFT : 1) : NO_DRIFT;
|
|
560
597
|
const shutEyes = this.asleep && !this.speaking;
|
|
561
598
|
const pose = shutEyes
|
|
562
599
|
? // The asleep breath is gated by the PREFERENCE only, never by `idle`.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"avatar.js","sourceRoot":"","sources":["../../src/canvas2d/avatar.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"avatar.js","sourceRoot":"","sources":["../../src/canvas2d/avatar.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EACL,OAAO,EACP,WAAW,GAOZ,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAiB,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AAC9C,OAAO,EACL,eAAe,EACf,aAAa,EACb,YAAY,EACZ,KAAK,EACL,WAAW,EACX,SAAS,GACV,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,OAAO,EAAE,SAAS,EAAc,MAAM,iBAAiB,CAAA;AAChE,OAAO,EAAE,SAAS,EAAa,MAAM,kBAAkB,CAAA;AACvD,OAAO,EACL,gBAAgB,EAChB,MAAM,EACN,QAAQ,GAGT,MAAM,mBAAmB,CAAA;AAC1B,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC1C,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,WAAW,CAAA;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AACnC,OAAO,EACL,WAAW,EACX,YAAY,EACZ,QAAQ,GAGT,MAAM,qBAAqB,CAAA;AAE5B,MAAM,cAAc,GAAkB,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC,EAAE,CAAA;AAE1E,4EAA4E;AAC5E,MAAM,qBAAqB,GAAG,GAAG,CAAA;AAEjC;;;;;;;GAOG;AACH,MAAM,UAAU,GAAG,IAAI,CAAA;AAEvB;;;;;;;;;GASG;AACH,MAAM,mBAAmB,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,CAAA;AAEhD;;;;;;;GAOG;AACH,MAAM,YAAY,GAAG,GAAG,CAAA;AAExB;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAA;AAEnC;;;;;;;GAOG;AACH,MAAM,oBAAoB,GAAG,GAAG,CAAA;AAEhC,kEAAkE;AAClE,MAAM,QAAQ,GAAU,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,CAAA;AAwBtD,MAAM,OAAO,WAAW;IAkFH,GAAG;IAjFb,IAAI,GAAe,OAAO,CAAA;IAC1B,IAAI,GAAsB;QACjC,iBAAiB,EAAE,IAAI;QACvB,iBAAiB,EAAE,KAAK;QACxB,eAAe,EAAE,KAAK;QACtB,eAAe,EAAE,KAAK;QACtB,yEAAyE;QACzE,wEAAwE;QACxE,uEAAuE;QACvE,wEAAwE;QACxE,iEAAiE;QACjE,eAAe,EAAE,IAAI;QACrB,sEAAsE;QACtE,yEAAyE;QACzE,0EAA0E;QAC1E,oEAAoE;QACpE,OAAO,EAAE,KAAK;KACf,CAAA;IAEO,IAAI,CAAU;IACd,WAAW,CAAuB;IACzB,SAAS,CAAW;IACpB,YAAY,GAAG,IAAI,MAAM,CAAC,CAAC,CAAC,CAAA;IAC7C,kFAAkF;IAC1E,MAAM,GAAsB,IAAI,CAAA;IAChC,eAAe,GAAuB,IAAI,CAAA;IAE1C,QAAQ,GAAG,CAAC,CAAA;IACZ,SAAS,GAAG,CAAC,CAAA;IACrB,yDAAyD;IACjD,WAAW,GAAG,aAAa,CAAA;IACnC,oDAAoD;IAC5C,MAAM,GAAG,KAAK,CAAA;IACtB,yEAAyE;IACjE,QAAQ,GAAG,KAAK,CAAA;IAChB,UAAU,GAAG,CAAC,CAAA;IACd,QAAQ,GAAG,KAAK,CAAA;IAEhB,SAAS,GAAG,CAAC,CAAA;IACb,IAAI,GAAG,IAAI,CAAA;IACnB;;;;;;;;;;;;;OAaG;IACK,aAAa,GAAG,KAAK,CAAA;IAE7B;;;;;;;OAOG;IACK,QAAQ,GAAG,IAAI,CAAA;IACf,OAAO,GAAkB,cAAc,CAAA;IACvC,gBAAgB,GAAkB,IAAI,CAAA;IAC9C,qFAAqF;IAC7E,aAAa,GAAkB,IAAI,CAAA;IAC3C,uEAAuE;IAC/D,YAAY,GAAuB,IAAI,CAAA;IACvC,OAAO,GAAG,CAAC,CAAA;IAEX,IAAI,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;IACrB,UAAU,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;IAC3B,YAAY,GAAuB,IAAI,CAAA;IAE/C,+EAA+E;IACvE,UAAU,GAAkB,IAAI,CAAA;IAExC,YACmB,GAA6B,EAC9C,OAAsB;mBADL,GAAG;QAGpB;;;;;;;;;;;;;;UAcE;QACF,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,KAAK,CAAA;QACjC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,IAAI,CAAA;QAC/B,IAAI,CAAC,SAAS,GAAG,IAAI,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAA;IACnD,CAAC;IAED;;;;;;OAMG;IACH,MAAM,CAAC,QAAgB,EAAE,SAAiB,EAAE,UAAU,GAAG,CAAC;QACxD,mEAAmE;QACnE,6EAA6E;QAC7E,4EAA4E;QAC5E,4EAA4E;QAC5E,gCAAgC;QAChC,EAAE;QACF,2EAA2E;QAC3E,wEAAwE;QACxE,4EAA4E;QAC5E,0EAA0E;QAC1E,sEAAsE;QACtE,qEAAqE;QACrE,IAAI,CAAC,QAAQ,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAA;QACtC,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC,SAAS,CAAC,CAAA;QACxC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAA;QAChF,uEAAuE;QACvE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAA;IACxB,CAAC;IAED;;;;;;OAMG;IACH;;;;;OAKG;IACH,OAAO,CAAC,WAAmB;QACzB;;;;;;;;;;;;;;;UAeE;QACF,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,WAAW,IAAI,CAAC,EAAE,CAAC;YACtD,OAAO,CAAC,IAAI,CAAC,uCAAuC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAA;YAC1E,OAAM;QACR,CAAC;QACD,IAAI,CAAC,WAAW,GAAG,WAAW,CAAA;IAChC,CAAC;IAED,cAAc,CAAC,OAA8B;QAC3C,IAAI,OAAO,KAAK,IAAI,CAAC,WAAW;YAAE,OAAM;QACxC,IAAI,CAAC,WAAW,GAAG,OAAO,CAAA;QAC1B,6EAA6E;QAC7E,2EAA2E;QAC3E,uEAAuE;QACvE,2EAA2E;QAC3E,uEAAuE;QACvE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAA;IACxB,CAAC;IAED;;;;;;;;;;OAUG;IACH,OAAO,CAAC,IAAc;QACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;QAChB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAA;IACxB,CAAC;IAED,YAAY,CAAC,KAAa;QACxB,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,CAAA;IACjC,CAAC;IAED;;gEAE4D;IAC5D,UAAU,CAAC,QAAuB,IAAS,CAAC;IAE5C,UAAU,CAAC,MAAqB;QAC9B,IAAI,CAAC,OAAO,GAAG,EAAE,GAAG,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAA;QAClE,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAA;QAC1B,MAAM,KAAK,GAAG,OAAO,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAA;QAE1F,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAA;YAC5B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAA;YACzB,OAAM;QACR,CAAC;QACD,uEAAuE;QACvE,EAAE;QACF,2EAA2E;QAC3E,0EAA0E;QAC1E,2EAA2E;QAC3E,wEAAwE;QACxE,4EAA4E;QAC5E,wEAAwE;QACxE,2EAA2E;QAC3E,qEAAqE;QACrE,qEAAqE;QACrE,uCAAuC;QACvC,EAAE;QACF,sEAAsE;QACtE,mEAAmE;QACnE,IAAI,CAAC,aAAa,GAAG,KAAK,CAAA;QAC1B,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAA;IAC9B,CAAC;IAED;;;;;;OAMG;IACH,UAAU,CAAC,IAAY;QACrB,uEAAuE;QACvE,sEAAsE;QACtE,qEAAqE;QACrE,sCAAsC;QACtC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;QACvF,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;YACvB,OAAO,CAAC,IAAI,CAAC,0BAA0B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;YAC9D,OAAM;QACR,CAAC;QACD;;;;;;;;;;;;UAYE;QACF,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACpC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;YAClB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAA;YAC3B,OAAM;QACR,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;QAClB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAA;IAC7B,CAAC;IAED;;;;;;;;OAQG;IACH;;;;;;;OAOG;IACH,QAAQ,CAAC,EAAW;QAClB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAA;IACpB,CAAC;IAED,gBAAgB,CAAC,EAAW;QAC1B,IAAI,EAAE,KAAK,IAAI,CAAC,aAAa;YAAE,OAAM;QACrC,IAAI,CAAC,aAAa,GAAG,EAAE,CAAA;QACvB,0EAA0E;QAC1E,0DAA0D;QAC1D,IAAI,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,IAAI,KAAK,IAAI;YAAE,IAAI,CAAC,UAAU,EAAE,CAAA;QACvD,4EAA4E;QAC5E,0EAA0E;QAC1E,IAAI,CAAC,EAAE;YAAE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAA;IACnC,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,UAAU;QACR,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;QAClB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAA;IAC7B,CAAC;IAED,MAAM,CAAC,EAAU,EAAE,EAAU;QAC3B,4EAA4E;QAC5E,sCAAsC;QACtC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YAAE,OAAM;QACxD,2EAA2E;QAC3E,2EAA2E;QAC3E,wEAAwE;QACxE,0EAA0E;QAC1E,4EAA4E;QAC5E,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC,EAAE,WAAW,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,WAAW,CAAC,EAAE,CAAC,EAAE,CAAA;IAC9D,CAAC;IAED;;;;;;OAMG;IACH,SAAS,CAAC,EAAW;QACnB,IAAI,EAAE,KAAK,IAAI,CAAC,MAAM;YAAE,OAAM;QAC9B,IAAI,CAAC,MAAM,GAAG,EAAE,CAAA;QAChB,wEAAwE;QACxE,0EAA0E;QAC1E,yBAAyB;QACzB,IAAI,EAAE;YAAE,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;IAC1C,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,WAAW,CAAC,EAAW;QACrB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAA;IACpB,CAAC;IAED,OAAO,CAAC,EAAW;QACjB,IAAI,EAAE,KAAK,IAAI,CAAC,IAAI;YAAE,OAAM;QAC5B,IAAI,CAAC,IAAI,GAAG,EAAE,CAAA;QACd,0EAA0E;QAC1E,4EAA4E;QAC5E,0EAA0E;QAC1E,4EAA4E;QAC5E,0EAA0E;QAC1E,SAAS;QACT,IAAI,EAAE;YAAE,IAAI,CAAC,YAAY,GAAG,IAAI,CAAA;;YAC3B,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAA;IACvC,CAAC;IAED,wEAAwE;IACxE,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG;QAChB,IAAI,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC;YAAE,IAAI,CAAC,OAAO,GAAG,MAAM,CAAA;IACpD,CAAC;IAED,OAAO,CAAC,CAAS,EAAE,CAAS;QAC1B,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI;YAAE,OAAO,KAAK,CAAA;QAC3D,4EAA4E;QAC5E,4EAA4E;QAC5E,0EAA0E;QAC1E,qCAAqC;QACrC,IAAI,CAAC,cAAc,EAAE,CAAA;QACrB,0DAA0D;QAC1D,EAAE;QACF,0EAA0E;QAC1E,0EAA0E;QAC1E,4EAA4E;QAC5E,qEAAqE;QACrE,uEAAuE;QACvE,0EAA0E;QAC1E,4EAA4E;QAC5E,EAAE;QACF,2EAA2E;QAC3E,4EAA4E;QAC5E,sDAAsD;QACtD,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAA;QAC7B,OAAO,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,KAAK,CAAC,CAAA;IACtE,CAAC;IAED,MAAM,CAAC,GAAgB;QACrB,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,IAAI,IAAI,CAAC,SAAS,KAAK,CAAC;YAAE,OAAM;QACxE,oEAAoE;QACpE,2EAA2E;QAC3E,qEAAqE;QACrE,2EAA2E;QAC3E,+DAA+D;QAC/D,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC;YAAE,OAAM;QACjC,MAAM,EAAE,GAAG,IAAI,CAAC,YAAY,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,CAAA;QAC9F,IAAI,CAAC,YAAY,GAAG,GAAG,CAAA;QAEvB,0EAA0E;QAC1E,uEAAuE;QACvE,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,YAAY,KAAK,IAAI,EAAE,CAAC;YAC5C,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;YACzB,IAAI,CAAC,YAAY,GAAG,GAAG,CAAA;QACzB,CAAC;QACD,IAAI,IAAI,CAAC,aAAa,KAAK,IAAI,EAAE,CAAC;YAChC,IAAI,CAAC,gBAAgB,GAAG,GAAG,GAAG,IAAI,CAAC,aAAa,CAAA;YAChD,IAAI,CAAC,aAAa,GAAG,IAAI,CAAA;QAC3B,CAAC;QAED,IAAI,IAAI,CAAC,gBAAgB,KAAK,IAAI,IAAI,GAAG,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACnE,IAAI,CAAC,OAAO,GAAG,cAAc,CAAA;YAC7B,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAA;QAC9B,CAAC;QAED;;;;;;;;;;;;;;;;;;;;;;WAsBG;QACH,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM;YACtB,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAC;YACxB,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;QAC3D;;;;;;;;;;;;;;;;;;;;;;;WAuBG;QACH;;;;;;;;;;;;UAYE;QACF,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,aAAa,CAAA;QACjD,0EAA0E;QAC1E,mEAAmE;QACnE,MAAM,KAAK,GACT,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAA;QAErF,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAA;QAC9C,MAAM,IAAI,GAAG,QAAQ;YACnB,CAAC,CAAC,sEAAsE;gBACtE,iEAAiE;gBACjE,iEAAiE;gBACjE,oEAAoE;gBACpE,gEAAgE;gBAChE;oBACE,KAAK,EAAE,CAAC;oBACR,uEAAuE;oBACvE,0DAA0D;oBAC1D,MAAM,EAAE,IAAI,CAAC,aAAa;wBACxB,CAAC,CAAC,CAAC;wBACH,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,oBAAoB,CAAC,CAAC,MAAM;iBAC/E;YACH,CAAC,CAAC,QAAQ;gBACR,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC;gBAC9C,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAA;QAE7B,gEAAgE;QAChE,wEAAwE;QACxE,uEAAuE;QACvE,wEAAwE;QACxE,oCAAoC;QACpC,MAAM,KAAK,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;QAElC,2EAA2E;QAC3E,mDAAmD;QACnD,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,mBAAmB,GAAG,EAAE,CAAC,CAAA;QACnD;;;;;;;;UAQE;QACF,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAC3E,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC,OAAO,CAAA;QACzF,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE;YACjD,SAAS,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS;YAC9B,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO;SAC3B,CAAC,CAAA;QACF,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAA;QACvE,wEAAwE;QACxE,0EAA0E;QAC1E,wEAAwE;QACxE,0EAA0E;QAC1E,qCAAqC;QACrC,IAAI,MAAM,KAAK,OAAO;YAAE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAEtD,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,CAAA;QACjC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAA;IACpD,CAAC;IAED;;;;;;;;OAQG;IACK,UAAU,CAAC,GAAgB;QACjC,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI;YAAE,OAAO,EAAE,CAAA;QACnC,IAAI,CAAC,eAAe,KAAK,GAAG,CAAA;QAC5B,MAAM,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,IAAI,CAAC,eAAe,CAAC,CAAA;QAC5D,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAA;YAClB,IAAI,CAAC,eAAe,GAAG,IAAI,CAAA;YAC3B,OAAO,EAAE,CAAA;QACX,CAAC;QACD,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;IAChC,CAAC;IAED,OAAO;QACL,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAM;QACzB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAA;QACpB,2EAA2E;QAC3E,0EAA0E;QAC1E,mEAAmE;QACnE,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;QACvC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QACvE,IAAI,CAAC,UAAU,GAAG,IAAI,CAAA;IACxB,CAAC;IAED,6EAA6E;IAErE,cAAc;QACpB,MAAM,CAAC,GAAG,IAAI,CAAC,UAAU,CAAA;QACzB,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IACzC,CAAC;IAEO,WAAW,CAAC,EAAU,EAAE,IAAU,EAAE,KAAiB;QAC3D,yEAAyE;QACzE,gBAAgB;QAChB,MAAM,KAAK,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,qBAAqB,CAAC,CAAA;QAChE,0EAA0E;QAC1E,uEAAuE;QACvE,yEAAyE;QACzE,0CAA0C;QAC1C,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,CAAA;QAC9D,MAAM,EAAE,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,CAAA;QAC9D,IAAI,CAAC,IAAI,GAAG;YACV,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK;YAC3C,CAAC,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,KAAK;SAC5C,CAAA;IACH,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,IAAU,EAAE,KAAa,EAAE,MAAc,EAAE,KAAiB,EAAE,KAAY;QACtF,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,IAAI,CAAA;QAC1B,IAAI,CAAC,cAAc,EAAE,CAAA;QACrB,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;QAElD,0EAA0E;QAC1E,4EAA4E;QAC5E,kEAAkE;QAClE,sEAAsE;QACtE,4EAA4E;QAC5E,mEAAmE;QACnE,MAAM,IAAI,GAAG,IAAI,CAAC,WAAW,CAAA;QAC7B,MAAM,MAAM,GAAG,IAAI,KAAK,YAAY,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;QACnE,MAAM,KAAK,GAAG,MAAM,EAAE,KAAK,IAAI,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAA;QAC/E,uEAAuE;QACvE,wEAAwE;QACxE,qDAAqD;QACrD,IAAI,KAAK,IAAI,CAAC,EAAE,CAAC;YACf,IAAI,CAAC,UAAU,GAAG,IAAI,CAAA;YACtB,OAAM;QACR,CAAC;QACD;;;;;;;;;;;;;WAaG;QACH,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QACvE,MAAM,OAAO,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QACrE,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,GAAG,CAAC,GAAG,OAAO,CAAA;QAC3C,6EAA6E;QAC7E,yEAAyE;QACzE,4BAA4B;QAC5B;;;;;;;;;;;WAWG;QACH,MAAM,OAAO,GACX,CAAC,MAAM,KAAK,IAAI;YACd,CAAC,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,eAAe,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC;YACnE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,eAAe,GAAG,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;YACrE,yDAAyD;YACzD,OAAO,CAAA;QAET,MAAM,IAAI,GAAc;YACtB,SAAS,EAAE,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,KAAK;YACnC,MAAM,EAAE,IAAI,CAAC,KAAK,GAAG,KAAK;YAC1B,KAAK,EAAE,IAAI,CAAC,KAAK;YACjB,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,uEAAuE;YACvE,uEAAuE;YACvE,gEAAgE;YAChE,IAAI,EAAE,IAAI,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI;SACjD,CAAA;QACD,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;QAEnC,kEAAkE;QAClE,MAAM,QAAQ,GAAG,CAAC,CAAQ,EAAS,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,OAAO,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAA;QAE9E,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAA;QAC/C,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA;QAEjC;;;;;;;;;;;;;;WAcG;QACH,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,UAAU,CAAA;QAC3C,MAAM,KAAK,GAAG,CAAC,EAAU,EAAE,EAAU,EAAS,EAAE,CAC9C,QAAQ,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;QAE3E,8DAA8D;QAC9D,EAAE;QACF,uEAAuE;QACvE,4EAA4E;QAC5E,4EAA4E;QAC5E,yEAAyE;QACzE,wEAAwE;QACxE,wDAAwD;QACxD,GAAG,CAAC,IAAI,EAAE,CAAA;QACV,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;QACzB,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAA;QAC9C,2EAA2E;QAC3E,oCAAoC;QACpC,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAA;QAC1C,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,CAAA;QAC1D,6CAA6C;QAC7C,UAAU,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,CAAA;QACzD,GAAG,CAAC,OAAO,EAAE,CAAA;IACf,CAAC;IAED;;;;;;;;;;;;OAYG;IACK,SAAS,CAAC,OAAyB,EAAE,IAAe,EAAE,KAAa;QACzE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,IAAI,CAAA;QAC1B,0EAA0E;QAC1E,wEAAwE;QACxE,+DAA+D;QAC/D,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAA;QAC9B,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAEf,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,GAAG,CAAC,CAAA;QAC5C,0EAA0E;QAC1E,0BAA0B;QAC1B,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAA;QACrC,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAA;QAC5B,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;IAClF,CAAC;CACF;AAED,kEAAkE;AAClE,SAAS,YAAY,CAAC,KAAa;IACjC,OAAO,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AACxD,CAAC"}
|
package/dist/core/looks.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"looks.d.ts","sourceRoot":"","sources":["../../src/core/looks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAW,KAAK,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAEvD,MAAM,WAAW,IAAI;IACnB,sCAAsC;IACtC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,6FAA6F;IAC7F,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,0EAA0E;IAC1E,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,6DAA6D;IAC7D,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB;;;;;;;;;;;;;;;;;;;OAmBG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,0FAA0F;IAC1F,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,0EAA0E;IAC1E,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB;AAED,eAAO,MAAM,OAAO,EAAE,IAerB,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"looks.d.ts","sourceRoot":"","sources":["../../src/core/looks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAW,KAAK,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAEvD,MAAM,WAAW,IAAI;IACnB,sCAAsC;IACtC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,6FAA6F;IAC7F,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,0EAA0E;IAC1E,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,6DAA6D;IAC7D,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB;;;;;;;;;;;;;;;;;;;OAmBG;IACH,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAA;IACxB,0FAA0F;IAC1F,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;IACtB,0EAA0E;IAC1E,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;CACtB;AAED,eAAO,MAAM,OAAO,EAAE,IAerB,CAAA;AAED,eAAO,MAAM,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAuIjD,CAAA;AAID;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAWnE"}
|
package/dist/core/looks.js
CHANGED
|
@@ -72,8 +72,25 @@ export const LOOKS = {
|
|
|
72
72
|
eyeLower: 0.92,
|
|
73
73
|
eyeWidth: 1.06,
|
|
74
74
|
eyeTilt: 0.28,
|
|
75
|
-
|
|
76
|
-
|
|
75
|
+
/*
|
|
76
|
+
A frown, made the way `sad` makes one.
|
|
77
|
+
|
|
78
|
+
This was `mouthUpper: 2, mouthLower: 0`, and it drew NO MOUTH — the
|
|
79
|
+
multipliers are applied to the tuned base, `MOCHI.mouthUpper` is 0, and
|
|
80
|
+
two times nothing is nothing. So the one expression that most needs a
|
|
81
|
+
mouth had none, on every face whose resting mouth is a lower arc only.
|
|
82
|
+
|
|
83
|
+
It is a defect rather than a choice, and the table itself proves that:
|
|
84
|
+
`sleepy` removes its mouth on purpose with `mouthAlpha: 0`. Whoever wrote
|
|
85
|
+
`mouthUpper: 2` was reaching for a shape, not for an absence.
|
|
86
|
+
|
|
87
|
+
A negative lower bows the bottom edge above the baseline, which is what
|
|
88
|
+
turns a smile into a frown without a second asset — the same trick the
|
|
89
|
+
crescent eye uses, and what `sad` already does at -0.3. Tighter here,
|
|
90
|
+
because anger is held and sadness is slack.
|
|
91
|
+
*/
|
|
92
|
+
mouthUpper: 0,
|
|
93
|
+
mouthLower: -0.25,
|
|
77
94
|
mouthWidth: 0.84,
|
|
78
95
|
cheek: 0.28,
|
|
79
96
|
gazeY: -0.14,
|
package/dist/core/looks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"looks.js","sourceRoot":"","sources":["../../src/core/looks.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,OAAO,EAAgB,MAAM,iBAAiB,CAAA;AA0DvD,MAAM,CAAC,MAAM,OAAO,GAAS;IAC3B,QAAQ,EAAE,CAAC;IACX,QAAQ,EAAE,CAAC;IACX,QAAQ,EAAE,CAAC;IACX,OAAO,EAAE,CAAC;IACV,UAAU,EAAE,CAAC;IACb,UAAU,EAAE,CAAC;IACb,UAAU,EAAE,CAAC;IACb,UAAU,EAAE,CAAC;IACb,KAAK,EAAE,CAAC;IACR,OAAO,EAAE,CAAC;IACV,KAAK,EAAE,CAAC;IACR,KAAK,EAAE,CAAC;IACR,MAAM,EAAE,CAAC;IACT,IAAI,EAAE,CAAC;CACR,CAAA;AAED,MAAM,CAAC,MAAM,KAAK,GAAoC;IACpD,OAAO,EAAE,OAAO;IAChB,KAAK,EAAE;QACL,GAAG,OAAO;QACV,QAAQ,EAAE,GAAG;QACb,2EAA2E;QAC3E,QAAQ,EAAE,CAAC,IAAI;QACf,QAAQ,EAAE,IAAI;QACd,UAAU,EAAE,CAAC;QACb,UAAU,EAAE,GAAG;QACf,UAAU,EAAE,IAAI;QAChB,KAAK,EAAE,GAAG;QACV,OAAO,EAAE,CAAC;QACV,MAAM,EAAE,IAAI;KACb;IACD,GAAG,EAAE;QACH,GAAG,OAAO;QACV,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,CAAC,IAAI;QACf,QAAQ,EAAE,IAAI;QACd,UAAU,EAAE,CAAC;QACb,UAAU,EAAE,GAAG;QACf,UAAU,EAAE,IAAI;QAChB,KAAK,EAAE,CAAC;QACR,KAAK,EAAE,CAAC,IAAI;QACZ,KAAK,EAAE,IAAI;QACX,MAAM,EAAE,IAAI;QACZ,IAAI,EAAE,CAAC,IAAI;KACZ;IACD,GAAG,EAAE;QACH,GAAG,OAAO;QACV,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,CAAC,IAAI;QACd,UAAU,EAAE,CAAC;QACb,UAAU,EAAE,CAAC,GAAG;QAChB,UAAU,EAAE,GAAG;QACf,KAAK,EAAE,IAAI;QACX,MAAM,EAAE,CAAC,IAAI;KACd;IACD,KAAK,EAAE;QACL,GAAG,OAAO;QACV,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;QACd,QAAQ,EAAE,IAAI;QACd,OAAO,EAAE,IAAI;QACb,UAAU,EAAE,CAAC;QACb,UAAU,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"looks.js","sourceRoot":"","sources":["../../src/core/looks.ts"],"names":[],"mappings":"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"}
|
package/dist/core/plain.d.ts
CHANGED
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import type { FaceSpec } from './spec.js';
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
3
|
+
* A starting point for a character of your own, and deliberately NOT a good one.
|
|
4
4
|
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
5
|
+
* This was the default face, from a design where Mochi was reserved and did not
|
|
6
|
+
* ship; a generic body was the only thing an engine could honestly hand out.
|
|
7
|
+
* She ships now and she is the default, so `PLAIN` has the job it was always
|
|
8
|
+
* better suited to: the thing you start from and change.
|
|
9
|
+
*
|
|
10
|
+
* It is built to be visibly a different creature from her, along exactly the
|
|
11
|
+
* axes that identify her:
|
|
10
12
|
*
|
|
11
13
|
* | | Mochi | PLAIN |
|
|
12
14
|
* |---|---|---|
|
|
@@ -17,7 +19,8 @@ import type { FaceSpec } from './spec.js';
|
|
|
17
19
|
* | face | low on the body, small eyes | centred, larger eyes |
|
|
18
20
|
*
|
|
19
21
|
* Every one of those is a choice you are expected to replace. Start here, move
|
|
20
|
-
* the numbers, and the result is yours — that is what the format is for
|
|
22
|
+
* the numbers, and the result is yours — that is what the format is for, and
|
|
23
|
+
* nothing about it owes anything to her.
|
|
21
24
|
*/
|
|
22
25
|
export declare const PLAIN: FaceSpec;
|
|
23
26
|
//# sourceMappingURL=plain.d.ts.map
|
package/dist/core/plain.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plain.d.ts","sourceRoot":"","sources":["../../src/core/plain.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAEzC
|
|
1
|
+
{"version":3,"file":"plain.d.ts","sourceRoot":"","sources":["../../src/core/plain.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAA;AAEzC;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,eAAO,MAAM,KAAK,EAAE,QA+CnB,CAAA"}
|
package/dist/core/plain.js
CHANGED
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* A starting point for a character of your own, and deliberately NOT a good one.
|
|
3
3
|
*
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
4
|
+
* This was the default face, from a design where Mochi was reserved and did not
|
|
5
|
+
* ship; a generic body was the only thing an engine could honestly hand out.
|
|
6
|
+
* She ships now and she is the default, so `PLAIN` has the job it was always
|
|
7
|
+
* better suited to: the thing you start from and change.
|
|
8
|
+
*
|
|
9
|
+
* It is built to be visibly a different creature from her, along exactly the
|
|
10
|
+
* axes that identify her:
|
|
9
11
|
*
|
|
10
12
|
* | | Mochi | PLAIN |
|
|
11
13
|
* |---|---|---|
|
|
@@ -16,7 +18,8 @@
|
|
|
16
18
|
* | face | low on the body, small eyes | centred, larger eyes |
|
|
17
19
|
*
|
|
18
20
|
* Every one of those is a choice you are expected to replace. Start here, move
|
|
19
|
-
* the numbers, and the result is yours — that is what the format is for
|
|
21
|
+
* the numbers, and the result is yours — that is what the format is for, and
|
|
22
|
+
* nothing about it owes anything to her.
|
|
20
23
|
*/
|
|
21
24
|
export const PLAIN = {
|
|
22
25
|
size: 100,
|
package/dist/core/plain.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plain.js","sourceRoot":"","sources":["../../src/core/plain.ts"],"names":[],"mappings":"AAEA
|
|
1
|
+
{"version":3,"file":"plain.js","sourceRoot":"","sources":["../../src/core/plain.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,CAAC,MAAM,KAAK,GAAa;IAC7B,IAAI,EAAE,GAAG;IACT,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,EAAE;IACT,KAAK,EAAE,IAAI;IACX,aAAa,EAAE,GAAG;IAClB,aAAa,EAAE,GAAG;IAClB,KAAK,EAAE,GAAG;IACV,KAAK,EAAE,GAAG;IAEV,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;IACV,KAAK,EAAE,GAAG;IACV,QAAQ,EAAE,GAAG;IACb,QAAQ,EAAE,GAAG;IACb,OAAO,EAAE,CAAC;IACV,QAAQ,EAAE,CAAC;IACX,QAAQ,EAAE,GAAG;IACb,UAAU,EAAE,GAAG;IAEf,MAAM,EAAE,IAAI;IACZ,OAAO,EAAE,CAAC;IACV,UAAU,EAAE,CAAC;IACb,UAAU,EAAE,GAAG;IACf,UAAU,EAAE,CAAC;IACb,aAAa,EAAE,CAAC;IAEhB,UAAU,EAAE,CAAC;IACb,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,EAAE;IAEV,SAAS,EAAE,IAAI;IACf,QAAQ,EAAE,IAAI;IACd,SAAS,EAAE,GAAG;IACd,OAAO,EAAE,EAAE;IAEX,yEAAyE;IACzE,0EAA0E;IAC1E,OAAO,EAAE,CAAC;IACV,OAAO,EAAE,CAAC;IAEV,OAAO,EAAE,SAAS;IAClB,SAAS,EAAE,SAAS;IACpB,MAAM,EAAE,SAAS;IACjB,QAAQ,EAAE,SAAS;IACnB,QAAQ,EAAE,SAAS;CACpB,CAAA"}
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
*/
|
|
15
15
|
import { DoughAvatar } from '../canvas2d/avatar.js';
|
|
16
16
|
import { parseFaceSpec } from '../core/spec.js';
|
|
17
|
-
import {
|
|
17
|
+
import { MOCHI } from '../characters/mochi.js';
|
|
18
18
|
import { EMOTIONS } from '../core/vocabulary.js';
|
|
19
19
|
function isEmotion(value) {
|
|
20
20
|
return value !== null && EMOTIONS.includes(value);
|
|
@@ -113,13 +113,13 @@ export class DoughAvatarElement extends HTMLElement {
|
|
|
113
113
|
/** The face, as a `FaceSpec`. Set this instead of the attribute when you have one. */
|
|
114
114
|
set faceSpec(face) {
|
|
115
115
|
this.face = face;
|
|
116
|
-
// Cleared means "back to the
|
|
117
|
-
//
|
|
118
|
-
//
|
|
116
|
+
// Cleared means "back to the default", applied to the LIVE avatar too.
|
|
117
|
+
// Clearing only the stored copy left the current face on screen until the
|
|
118
|
+
// next reconnect, at which point it silently changed — the same input
|
|
119
119
|
// producing two different results depending on DOM history.
|
|
120
120
|
if (this.avatar === null)
|
|
121
121
|
return;
|
|
122
|
-
this.avatar.setFace(face ??
|
|
122
|
+
this.avatar.setFace(face ?? MOCHI);
|
|
123
123
|
}
|
|
124
124
|
get faceSpec() {
|
|
125
125
|
return this.face;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dough-avatar.js","sourceRoot":"","sources":["../../src/element/dough-avatar.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAA;AACnD,OAAO,EAAE,aAAa,EAAiB,MAAM,iBAAiB,CAAA;AAC9D,OAAO,EAAE,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"dough-avatar.js","sourceRoot":"","sources":["../../src/element/dough-avatar.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -15,7 +15,8 @@
|
|
|
15
15
|
* shape.
|
|
16
16
|
*
|
|
17
17
|
* A face is DATA — see `FaceSpec` — so a design is a JSON file rather than a
|
|
18
|
-
* fork. `
|
|
18
|
+
* fork. `MOCHI` is the default. `PLAIN` is a deliberately generic body to start
|
|
19
|
+
* your own character from.
|
|
19
20
|
*/
|
|
20
21
|
export * from './core/spec.js';
|
|
21
22
|
export * from './core/plain.js';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,sBAAsB,CAAA;AACpC,cAAc,kBAAkB,CAAA;AAChC,cAAc,oBAAoB,CAAA;AAClC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,kBAAkB,CAAA;AAGhC,cAAc,sBAAsB,CAAA;AACpC,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA;AAGnC,cAAc,qBAAqB,CAAA;AAGnC,cAAc,uBAAuB,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -15,7 +15,8 @@
|
|
|
15
15
|
* shape.
|
|
16
16
|
*
|
|
17
17
|
* A face is DATA — see `FaceSpec` — so a design is a JSON file rather than a
|
|
18
|
-
* fork. `
|
|
18
|
+
* fork. `MOCHI` is the default. `PLAIN` is a deliberately generic body to start
|
|
19
|
+
* your own character from.
|
|
19
20
|
*/
|
|
20
21
|
// --- core: the character as arithmetic -------------------------------------
|
|
21
22
|
export * from './core/spec.js';
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,8EAA8E;AAC9E,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,sBAAsB,CAAA;AACpC,cAAc,kBAAkB,CAAA;AAChC,cAAc,oBAAoB,CAAA;AAClC,cAAc,gBAAgB,CAAA;AAC9B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,kBAAkB,CAAA;AAChC,cAAc,kBAAkB,CAAA;AAChC,cAAc,oBAAoB,CAAA;AAClC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,kBAAkB,CAAA;AAEhC,8EAA8E;AAC9E,cAAc,sBAAsB,CAAA;AACpC,cAAc,oBAAoB,CAAA;AAClC,cAAc,qBAAqB,CAAA;AAEnC,8EAA8E;AAC9E,cAAc,qBAAqB,CAAA;AAEnC,+EAA+E;AAC/E,cAAc,uBAAuB,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "mochi-avatar",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.1.0",
|
|
4
4
|
"description": "Mochi \u2014 a soft-body companion character, and the engine that draws her. Superellipse geometry, area-preserving squash, spring physics and an idle layer. Canvas2D, SVG, or one custom element. Zero runtime dependencies.",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
6
6
|
"author": "HANDO K.K.",
|
|
@@ -67,6 +67,8 @@
|
|
|
67
67
|
"packageManager": "pnpm@10.33.0",
|
|
68
68
|
"scripts": {
|
|
69
69
|
"build": "tsc -p tsconfig.build.json",
|
|
70
|
+
"assets": "pnpm build && node scripts/hero.mjs",
|
|
71
|
+
"pets": "pnpm build && for f in matcha sakura kinako yuzu ramune budo; do node examples/codex-pet/render.mjs $f && python3 examples/codex-pet/assemble.py $f >/dev/null; done",
|
|
70
72
|
"test": "vitest run",
|
|
71
73
|
"test:watch": "vitest",
|
|
72
74
|
"test:coverage": "vitest run --coverage",
|