Archive commit

This commit is contained in:
Erik McClure
2019-08-28 21:15:02 -07:00
commit 735845746e
1435 changed files with 140724 additions and 0 deletions
+195
View File
@@ -0,0 +1,195 @@
// generated file
/* tslint:disable */
import {
Sprite, SpriteBorder, PonyNose, PonyEye, ColorExtra, ColorExtraSets, Shadow, ColorShadow, TileSprites, SpriteSheet
} from '../common/interfaces';
import { parseSpriteColor } from '../common/utils';
import { bitReaderCustom } from '../common/bitUtils';
// [frame][type][pattern]
export type StaticSprites = (ColorExtra[] | undefined)[];
export type AnimatedSprites = (StaticSprites | undefined)[];
export type StaticSpritesExtra = (ColorExtra[] | undefined)[];
export type AnimatedSpritesExtra = (StaticSprites | undefined)[];
export type PonyEyes = ((PonyEye | undefined)[] | undefined)[];
const sprites = createSprites('/*SPRITES*/');
const sprites2 = createSprites('/*SPRITES_PALETTE*/');
/*FONTS*/
const palettes: Uint32Array[] = createPalettes('/*COLORS*/', [
/*PALETTES*/
]);
/*NAMED_SPRITES*/
/*NAMED_PALETTES*/
export const spriteSheets: SpriteSheet[] = [
{
src: '/*SPRITE_SHEET*/',
data: undefined, texture: undefined, sprites: sprites, palette: false
},
{
src: '/*SPRITE_SHEET_PALETTE*/', srcA: '/*SPRITE_SHEET_PALETTE_ALPHA*/',
data: undefined, texture: undefined, sprites: sprites2, palette: true
},
];
export const normalSpriteSheet = spriteSheets[0];
export const paletteSpriteSheet = spriteSheets[1];
export function createSprites(data: string): Sprite[] {
const sprites: Sprite[] = [
{ x: 0, y: 0, w: 0, h: 0, ox: 0, oy: 0, type: 0 },
];
let offset = 0;
const read = bitReaderCustom(() => {
const value = parseInt(data.substr(offset, 2), 16);
offset += 2;
return value;
});
while (offset < data.length) {
sprites.push({
x: read(12),
y: read(12),
w: read(9),
h: read(9),
ox: read(8),
oy: read(8),
type: read(6),
});
}
return sprites;
}
export function createFont(sprites: Sprite[], groups: [number, number[]][]) {
const chars: { code: number; sprite: Sprite; }[] = [];
for (const [start, codes] of groups) {
for (let i = 0; i < codes.length; i++) {
if (codes[i]) {
chars.push({ code: start + i, sprite: sprites[codes[i]] });
}
}
}
return chars;
}
export function createButton(
border: number, topLeft: number, top: number, topRight: number, left: number, bg: number, right: number,
bottomLeft: number, bottom: number, bottomRight: number
): SpriteBorder {
return {
border,
topLeft: sprites[topLeft],
top: sprites[top],
topRight: sprites[topRight],
left: sprites[left],
bg: sprites[bg],
right: sprites[right],
bottomLeft: sprites[bottomLeft],
bottom: sprites[bottom],
bottomRight: sprites[bottomRight]
};
}
export function mapSprites(frames: number[]) {
return frames.map(i => sprites[i]);
}
export function mapSprites2(frames: number[]) {
return frames.map(i => sprites2[i]);
}
export function createPalettes(colorsString: string, palettes: number[][]): Uint32Array[] {
const colors = colorsString.split(/ /g).map(parseSpriteColor);
return palettes.map(palette => {
const result = new Uint32Array(palette.length);
for (let i = 0; i < palette.length; i++) {
result[i] = colors[palette[i]] >>> 0;
}
return result;
});
}
export function createColorPal(color: number, colors: number): ColorExtra {
return { color: sprites2[color], colors };
}
export function colorPal(colors: number) {
return (color: number) => createColorPal(color, colors);
}
const colorPal3 = colorPal(3);
const colorPal5 = colorPal(5);
const colorPal7 = colorPal(7);
const colorPal9 = colorPal(9);
const colorPal11 = colorPal(11);
const colorPal13 = colorPal(13);
const colorPal17 = colorPal(17);
export function getPalette(index: number) {
return palettes[index];
}
const emptyPalette = new Uint32Array(0);
export function emptyColorPalette(): ColorExtra {
return { color: sprites2[0], palettes: [emptyPalette] };
}
export function createSpritesPalette(sprites: number[], paletteIndexes: number[]): TileSprites {
return { sprites: sprites.map(i => sprites2[i]), palettes: paletteIndexes.map(getPalette) };
}
export function createColorPalette(color: number, paletteIndexes: number[]): ColorExtra {
return { color: sprites2[color], palettes: paletteIndexes.map(getPalette) };
}
export function createColorExtraPal(color: number, colors: number, extra: number, paletteIndexes: number[]): ColorExtra {
return { color: sprites2[color], colors, extra: sprites2[extra], palettes: paletteIndexes.map(getPalette) };
}
export function createShadow(shadow: number): Shadow {
return { shadow: sprites2[shadow] };
}
export function createColorShadowPalette(color: number, shadow: number, paletteIndexes: number[]): ColorShadow {
return { color: sprites2[color], shadow: sprites2[shadow], palettes: paletteIndexes.map(getPalette) };
}
export function createNose(color: number, colors: number, mouth: number, fangs: number) {
return { color: sprites2[color], colors, mouth: sprites2[mouth], fangs: sprites2[fangs] };
}
export function createEye(base: number, irises: number[], shadow?: number, shine?: number): PonyEye {
return { base: sprites2[base], irises: mapSprites2(irises), shadow: sprites2[shadow || 0], shine: sprites2[shine || 0] };
}
export function createAnimation(frames: number[]) {
return { frames: mapSprites(frames) };
}
export function createAnimationPalette(frames: number[], palette: number) {
return { frames: mapSprites2(frames), palette: getPalette(palette) };
}
export function createAnimationShadow(frames: number[], shadow: number, palette: number) {
return { frames: mapSprites2(frames), shadow: sprites2[shadow], palette: getPalette(palette) };
}
export {
Sprite, SpriteBorder, PonyNose, PonyEye, ColorExtra, ColorExtraSets,
colorPal3, colorPal5, colorPal7, colorPal9, colorPal11, colorPal13, colorPal17
};