stroke around quogs
This commit is contained in:
parent
0a59aa66f6
commit
2d7ebe8c1e
6 changed files with 54 additions and 46 deletions
|
@ -1,21 +1,22 @@
|
||||||
{
|
{
|
||||||
"belly1": [39, 67],
|
"stroke": [ 0, 0 ],
|
||||||
"belly2": [92, 95],
|
"belly1": [ 59, 87 ],
|
||||||
"claws": [191, 334],
|
"belly2": [ 112, 115 ],
|
||||||
"cuffs": [221, 215],
|
"claws": [ 211, 354 ],
|
||||||
"eyes": [685, 42],
|
"cuffs": [ 241, 235 ],
|
||||||
"eyeshine": [685, 42],
|
"eyes": [ 705, 62 ],
|
||||||
"fins1": [227, 60],
|
"eyeshine": [ 705, 62 ],
|
||||||
"fins2": [226, 61],
|
"fins1": [ 247, 80 ],
|
||||||
"fins3": [229, 195],
|
"fins2": [ 246, 81 ],
|
||||||
"lines": [0, 0],
|
"fins3": [ 249, 215 ],
|
||||||
"masks": [643, 1],
|
"lines": [ 20, 20 ],
|
||||||
"outer": [2, 22],
|
"masks": [ 663, 21 ],
|
||||||
"spines": [337, 50],
|
"outer": [ 22, 42 ],
|
||||||
"static": [219, 41],
|
"spines": [ 357, 70 ],
|
||||||
"stripes": [219, 221],
|
"static": [ 239, 61 ],
|
||||||
"vitiligo1": [4, 22],
|
"stripes": [ 239, 241 ],
|
||||||
"vitiligo2": [102, 134],
|
"vitiligo1": [ 24, 42 ],
|
||||||
"vitiligo3": [46, 129],
|
"vitiligo2": [ 122, 154 ],
|
||||||
"vitiligo4": [221, 56]
|
"vitiligo3": [ 66, 149 ],
|
||||||
|
"vitiligo4": [ 241, 76 ]
|
||||||
}
|
}
|
||||||
|
|
BIN
rainbow-quox/back/stroke.webp
(Stored with Git LFS)
Normal file
BIN
rainbow-quox/back/stroke.webp
(Stored with Git LFS)
Normal file
Binary file not shown.
|
@ -1,21 +1,22 @@
|
||||||
{
|
{
|
||||||
"belly1": [186, 92],
|
"stroke": [ 0, 0 ],
|
||||||
"belly2": [186, 91],
|
"belly1": [ 206, 112 ],
|
||||||
"claws": [3, 168],
|
"belly2": [ 206, 111 ],
|
||||||
"cuffs": [42, 160],
|
"claws": [ 23, 188 ],
|
||||||
"eyes": [223, 52],
|
"cuffs": [ 62, 180 ],
|
||||||
"eyeshine": [223, 52],
|
"eyes": [ 243, 72 ],
|
||||||
"fins1": [381, 31],
|
"eyeshine": [ 243, 72 ],
|
||||||
"fins2": [387, 35],
|
"fins1": [ 401, 51 ],
|
||||||
"fins3": [495, 140],
|
"fins2": [ 407, 55 ],
|
||||||
"lines": [1, 0],
|
"fins3": [ 515, 160 ],
|
||||||
"masks": [173, 3],
|
"lines": [ 21, 20 ],
|
||||||
"outer": [28, 43],
|
"masks": [ 193, 23 ],
|
||||||
"spines": [372, 23],
|
"outer": [ 48, 63 ],
|
||||||
"static": [50, 52],
|
"spines": [ 392, 43 ],
|
||||||
"stripes": [50, 168],
|
"static": [ 70, 72 ],
|
||||||
"vitiligo1": [34, 23],
|
"stripes": [ 70, 188 ],
|
||||||
"vitiligo2": [198, 92],
|
"vitiligo1": [ 54, 43 ],
|
||||||
"vitiligo3": [214, 312],
|
"vitiligo2": [ 218, 112 ],
|
||||||
"vitiligo4": [647, 71]
|
"vitiligo3": [ 234, 332 ],
|
||||||
|
"vitiligo4": [ 667, 91 ]
|
||||||
}
|
}
|
||||||
|
|
BIN
rainbow-quox/front/stroke.webp
(Stored with Git LFS)
Normal file
BIN
rainbow-quox/front/stroke.webp
(Stored with Git LFS)
Normal file
Binary file not shown.
|
@ -43,10 +43,10 @@
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id=pic-holder>
|
<div id=pic-holder>
|
||||||
<canvas id=main width=1000 height=673>
|
<canvas id=main width=1040 height=713>
|
||||||
the canvas failed to load. sorry.
|
the canvas failed to load. sorry.
|
||||||
</canvas>
|
</canvas>
|
||||||
<canvas id=aux width=1000 height=673></canvas>
|
<canvas id=aux width=1040 height=713></canvas>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div id=palette-holder>
|
<div id=palette-holder>
|
||||||
|
|
|
@ -37,8 +37,8 @@ function loadImageData(url: string, buf?: Buffer): Promise<ImageData> {
|
||||||
else return loadDataFresh(url);
|
else return loadDataFresh(url);
|
||||||
}
|
}
|
||||||
|
|
||||||
const WIDTH = 1000;
|
const WIDTH = 1040;
|
||||||
const HEIGHT = 673;
|
const HEIGHT = 713;
|
||||||
|
|
||||||
function makeBuffer(width = WIDTH, height = HEIGHT): Buffer {
|
function makeBuffer(width = WIDTH, height = HEIGHT): Buffer {
|
||||||
return new OffscreenCanvas(width, height).getContext('2d')!;
|
return new OffscreenCanvas(width, height).getContext('2d')!;
|
||||||
|
@ -49,13 +49,13 @@ function makeBufferIfLocks(width?: number, height?: number): Buffer | undefined
|
||||||
else return undefined;
|
else return undefined;
|
||||||
}
|
}
|
||||||
|
|
||||||
export type Layer = 'static' | 'eyeshine' | Color.Layer;
|
export type Layer = 'stroke' | 'static' | 'eyeshine' | Color.Layer;
|
||||||
|
|
||||||
// in compositing order
|
// in compositing order
|
||||||
export const allLayers: Layer[] =
|
export const allLayers: Layer[] =
|
||||||
['static', 'outer', 'spines', 'stripes', 'cuffs', 'fins1', 'fins2', 'fins3',
|
['stroke', 'static', 'outer', 'spines', 'stripes', 'cuffs', 'fins1', 'fins2',
|
||||||
'belly1', 'belly2', 'masks', 'claws', 'vitiligo1', 'vitiligo2', 'vitiligo3',
|
'fins3', 'belly1', 'belly2', 'masks', 'claws', 'vitiligo1', 'vitiligo2',
|
||||||
'vitiligo4', 'eyes', 'eyeshine', 'lines'];
|
'vitiligo3', 'vitiligo4', 'eyes', 'eyeshine', 'lines'];
|
||||||
|
|
||||||
function makeLayerInfo<A>(f: (l: Layer) => A): Record<Layer, A> {
|
function makeLayerInfo<A>(f: (l: Layer) => A): Record<Layer, A> {
|
||||||
return Object.fromEntries(allLayers.map(l => [l, f(l)])) as Record<Layer, A>;
|
return Object.fromEntries(allLayers.map(l => [l, f(l)])) as Record<Layer, A>;
|
||||||
|
|
Loading…
Add table
Reference in a new issue