← Files ModRetro Chromatic PluginARCHIVED FILE
examples/original-art/recipes.mjs
8.16 KB · Oct 4, 2026 · 12:37 UTC
// Original whole-cell artwork for the Chromatic starter, authored 2026-09-24.
// No upstream bitmap is read or transformed. Glyphs A,E,G,I,L,N,O,P,R,S,T
// reuse the original in-repository dogfood-assets.mjs glyph definitions from
// 5929961b938260ad112b87fc57145b7b23c7a196. Other glyph rows are authored here.
export const bgPalette={0:[7,24,33,255],1:[48,104,80,255],2:[134,192,108,255],3:[224,248,207,255]};
export const spritePalette={'.':[101,255,0,255],0:bgPalette[0],1:bgPalette[2],2:bgPalette[3]};
export const tiles={
'0':['22222222','22222222','22222222','22222222','22222222','22222222','22222222','22222222'],
'1':['12222222','22222222','22222222','22222222','22222222','22222222','22222222','22222222'],
'2':['00000000','12222221','12333321','12222221','12222221','12222221','11111111','22222222'],
'3':['00000000','11111111','22222222','22222222','22222222','22222222','11111111','33333333'],
'4':['01222222','01222222','01222222','01222222','01222222','01222222','01222222','01222222'],
'5':['22222210','22222210','22222210','22222210','22222210','22222210','22222210','22222210'],
'6':['22222222','33333333','11111111','00000000','11111111','11111111','11111111','00000000'],
'7':['00000000','03333330','03111330','03113330','03133330','03333330','03333330','00000000'],
'8':['00000000','03333330','03331130','03311130','03111330','03333330','03333330','00000000'],
'9':['11111111','12222221','12202221','12000221','12202221','12222221','00000000','11111111'],
'a':['11111111','12222221','12022021','12022021','12000021','12222221','00000000','11111111'],
'b':['11111111','12222221','12200221','12200221','12200221','12222221','00000000','11111111'],
'c':['22222222','21111112','21333312','21111112','21333312','21111112','22222222','22222222'],
'd':['22222222','22222222','22222222','22222222','22222222','22222222','22221111','22221333'],
'e':['22222222','22222222','22222222','22222222','22222222','22222222','11112222','33312222'],
'f':['00000000','01111110','01222210','01222210','01222210','01222210','01111110','00000000'],
};
// Twenty by eighteen, all visual walls occupy the outer ring or the top 3 rows.
export const tilemap=[
'f222222222222222222f','42cc22222cc222222225','429ab000000007878005',
'43333333333333333335','40000100001000010005','40000000000000000005',
'40000000000000000005','41000010000100001005','40000000000000000005',
'40000000000000000005','40001000010000100005','40000000000000000005',
'40000000000000000005','41000010000100001005','40000000000000000005',
'400000000de000000005','40000100001000010005','f666666666666666666f'
];
export const player={
down:[
'................','.....000000.....','....01222210....','...0122222210...',
'...0120000210...','...0120220210...','...0120000210...','....01111110....',
'.....000000.....','....01211210....','...0121221210...','...0101221010...',
'....01100110....','....010..010....','...0010..0100...','...0000..0000...'
],
up:[
'................','.....000000.....','....01222210....','...0122222210...',
'...0121111210...','...0120000210...','...0121111210...','....01111110....',
'.....000000.....','....01111110....','...0121001210...','...0101221010...',
'....01100110....','....010..010....','...0010..0100...','...0000..0000...'
],
right:[
'................','.....000000.....','....01222210....','...0122222210...',
'...0121102220...','...0120000220...','...0121102220...','....01111110....',
'.....000000.....','....01111210....','...0121012210...','...0101212010...',
'....01100110....','....010..010....','...0010..0100...','...0000..0000...'
]
};
export const glyphs={
' ':['00000','00000','00000','00000','00000','00000','00000'],
A:['01110','10001','10001','11111','10001','10001','10001'],
B:['11110','10001','10001','11110','10001','10001','11110'],
C:['01111','10000','10000','10000','10000','10000','01111'],
D:['11110','10001','10001','10001','10001','10001','11110'],
E:['11111','10000','10000','11110','10000','10000','11111'],
F:['11111','10000','10000','11110','10000','10000','10000'],
G:['01111','10000','10000','10111','10001','10001','01110'],
H:['10001','10001','10001','11111','10001','10001','10001'],
I:['11111','00100','00100','00100','00100','00100','11111'],
J:['00111','00010','00010','00010','10010','10010','01100'],
K:['10001','10010','10100','11000','10100','10010','10001'],
L:['10000','10000','10000','10000','10000','10000','11111'],
M:['10001','11011','10101','10101','10001','10001','10001'],
N:['10001','11001','10101','10011','10001','10001','10001'],
O:['01110','10001','10001','10001','10001','10001','01110'],
P:['11110','10001','10001','11110','10000','10000','10000'],
Q:['01110','10001','10001','10001','10101','10010','01101'],
R:['11110','10001','10001','11110','10100','10010','10001'],
S:['01111','10000','10000','01110','00001','00001','11110'],
T:['11111','00100','00100','00100','00100','00100','00100'],
U:['10001','10001','10001','10001','10001','10001','01110'],
V:['10001','10001','10001','10001','10001','01010','00100'],
W:['10001','10001','10001','10101','10101','11011','10001'],
X:['10001','10001','01010','00100','01010','10001','10001'],
Y:['10001','10001','01010','00100','00100','00100','00100'],
Z:['11111','00001','00010','00100','01000','10000','11111'],
'0':['01110','10001','10011','10101','11001','10001','01110'],
'1':['00100','01100','00100','00100','00100','00100','01110'],
'2':['01110','10001','00001','00010','00100','01000','11111'],
'3':['11110','00001','00001','01110','00001','00001','11110'],
'4':['00010','00110','01010','10010','11111','00010','00010'],
'5':['11111','10000','10000','11110','00001','00001','11110'],
'6':['01110','10000','10000','11110','10001','10001','01110'],
'7':['11111','00001','00010','00100','01000','01000','01000'],
'8':['01110','10001','10001','01110','10001','10001','01110'],
'9':['01110','10001','10001','01111','00001','00001','01110'],
'!':['00100','00100','00100','00100','00100','00000','00100'],
'"':['01010','01010','01010','00000','00000','00000','00000'],
'#':['01010','11111','01010','01010','11111','01010','00000'],
'$':['00100','01111','10100','01110','00101','11110','00100'],
'%':['11001','11010','00010','00100','01000','01011','10011'],
'&':['01100','10010','10100','01000','10101','10010','01101'],
"'":['00100','00100','01000','00000','00000','00000','00000'],
'(':['00010','00100','01000','01000','01000','00100','00010'],
')':['01000','00100','00010','00010','00010','00100','01000'],
'*':['00000','10101','01110','11111','01110','10101','00000'],
'+':['00000','00100','00100','11111','00100','00100','00000'],
',':['00000','00000','00000','00000','00100','00100','01000'],
'-':['00000','00000','00000','11111','00000','00000','00000'],
'.':['00000','00000','00000','00000','00000','00110','00110'],
'/':['00001','00010','00010','00100','01000','01000','10000'],
':':['00000','00110','00110','00000','00110','00110','00000'],
';':['00000','00110','00110','00000','00100','00100','01000'],
'<':['00001','00010','00100','01000','00100','00010','00001'],
'=':['00000','00000','11111','00000','11111','00000','00000'],
'>':['10000','01000','00100','00010','00100','01000','10000'],
'?':['01110','10001','00001','00010','00100','00000','00100'],
'@':['01110','10001','10111','10101','10111','10000','01111'],
'[':['01110','01000','01000','01000','01000','01000','01110'],
'\\':['10000','01000','01000','00100','00010','00010','00001'],
']':['01110','00010','00010','00010','00010','00010','01110'],
'^':['00100','01010','10001','00000','00000','00000','00000'],
'_':['00000','00000','00000','00000','00000','00000','11111'],
'`':['01000','00100','00010','00000','00000','00000','00000'],
'{':['00010','00100','00100','01000','00100','00100','00010'],
'|':['00100','00100','00100','00100','00100','00100','00100'],
'}':['01000','00100','00100','00010','00100','00100','01000'],
'~':['00000','00000','01001','10110','00000','00000','00000']
};
// This intentionally small caps face gives lowercase ASCII the corresponding
// uppercase cell. It covers every printable ASCII code without platform art.
export const glyphFor=ch=>glyphs[ch]||glyphs[ch.toUpperCase()]||glyphs['?'];
export const cursor=[
'33333333','33033333','33003333','33020333',
'33022033','33020333','33003333','33033333'
];
SHA-256: 94c792a276434db59f02e30c4d967e673600e2343fba75f3858f31fd18aa1ca3