mirror of
https://github.com/Terncode/pixel.horse.git
synced 2026-09-24 13:55:04 +02:00
110 lines
4.9 KiB
TypeScript
110 lines
4.9 KiB
TypeScript
import * as sprites from '../../generated/sprites';
|
|
import { ColorShadow, EntityFlags, InteractAction } from '../interfaces';
|
|
import { mixPickable, mixColliderRect } from '../mixins';
|
|
import { collectable, doodad, n, collectableInteractive, mixFlags, mixInteractAction } from './entitiesCore';
|
|
|
|
// pickables
|
|
|
|
const applePickable = mixPickable(29, 47);
|
|
export const apple = collectable(n('apple'), sprites.apple_1, 0, applePickable);
|
|
export const apple2 = collectable(n('apple-2'), sprites.apple_2, 0, applePickable);
|
|
export const appleGreen = collectable(n('apple-green'), sprites.apple_1, 1, applePickable);
|
|
export const appleGreen2 = collectable(n('apple-green-2'), sprites.apple_2, 1, applePickable);
|
|
|
|
const orangePickable = mixPickable(29, 46);
|
|
export const orange = collectable(n('orange'), sprites.orange_1, 0, orangePickable);
|
|
export const orange2 = collectable(n('orange-2'), sprites.orange_2, 0, orangePickable);
|
|
|
|
export const pear = collectable(n('pear'), sprites.pear, 0, mixPickable(30, 48));
|
|
|
|
export const banana = collectable(n('banana'), sprites.banana, 0, mixPickable(30, 44));
|
|
|
|
const lemonPickable = mixPickable(31, 45);
|
|
export const lemon = collectable(n('lemon'), sprites.lemon_1, 0, lemonPickable);
|
|
export const lime = collectable(n('lime'), sprites.lemon_1, 1, lemonPickable);
|
|
|
|
const carrotPalette = 1;
|
|
export const carrot1 = doodad(n('carrot-1'), sprites.carrot_1, 4, 9, carrotPalette, collectableInteractive);
|
|
export const carrot1b = doodad(n('carrot-1b'), sprites.carrot_1b, 4, 9, carrotPalette, collectableInteractive);
|
|
export const carrot2 = doodad(n('carrot-2'), sprites.carrot_2, 4, 9, carrotPalette);
|
|
export const carrot2b = doodad(n('carrot-2b'), sprites.carrot_2b, 4, 9, carrotPalette);
|
|
export const carrot3 = doodad(n('carrot-3'), sprites.carrot_3, 4, 9, carrotPalette);
|
|
export const carrot4 = doodad(n('carrot-4'), sprites.carrot_4, 4, 9, carrotPalette);
|
|
export const carrotHeld = doodad(n('carrot-held'), sprites.carrot_hold, 8, 4, carrotPalette, mixPickable(32, 44));
|
|
|
|
const grapesPickable = mixPickable(32, 54);
|
|
|
|
export const grapePurple = collectable(n('grape-purple'), sprites.grapes_one, 0, mixPickable(29, 43));
|
|
export const grapeGreen = collectable(n('grape-green'), sprites.grapes_one, 1, mixPickable(29, 43));
|
|
|
|
function grapes(name: string, sprite: ColorShadow, palette: number) {
|
|
return doodad(name, sprite, 5, 15, palette, collectableInteractive, grapesPickable);
|
|
}
|
|
|
|
export const grapesPurple = [
|
|
grapes(n('grapes-purple-1'), sprites.grapes_1, 0),
|
|
grapes(n('grapes-purple-2'), sprites.grapes_2, 0),
|
|
grapes(n('grapes-purple-3'), sprites.grapes_3, 0),
|
|
grapes(n('grapes-purple-4'), sprites.grapes_4, 0),
|
|
grapes(n('grapes-purple-5'), sprites.grapes_5, 0),
|
|
grapes(n('grapes-purple-6'), sprites.grapes_6, 0),
|
|
grapes(n('grapes-purple-7'), sprites.grapes_7, 0),
|
|
];
|
|
|
|
export const grapesGreen = [
|
|
grapes(n('grapes-green-1'), sprites.grapes_1, 1),
|
|
grapes(n('grapes-green-2'), sprites.grapes_2, 1),
|
|
grapes(n('grapes-green-3'), sprites.grapes_3, 1),
|
|
grapes(n('grapes-green-4'), sprites.grapes_4, 1),
|
|
grapes(n('grapes-green-5'), sprites.grapes_5, 1),
|
|
grapes(n('grapes-green-6'), sprites.grapes_6, 1),
|
|
grapes(n('grapes-green-7'), sprites.grapes_7, 1),
|
|
];
|
|
|
|
export const mango = collectable(n('mango'), sprites.mango, 0, mixPickable(31, 46));
|
|
|
|
export const candyCane1 = collectable(n('candy-cane-1'), sprites.candy_cane_1, 0, mixPickable(31, 46)); // horizontal
|
|
export const candyCane2 = collectable(n('candy-cane-2'), sprites.candy_cane_2, 0, mixPickable(31, 49)); // vertical
|
|
export const cookie = collectable(n('cookie'), sprites.cookie, 0, mixPickable(31, 46));
|
|
export const cookiePony = collectable(n('cookie-pony'), sprites.cookie_pony, 0, mixPickable(30, 45));
|
|
|
|
export const cookieTable = doodad(n('cookie-table'), sprites.cookie_table_1, 13, 28, 0,
|
|
mixFlags(EntityFlags.Interactive),
|
|
base => base.interactRange = 5,
|
|
mixInteractAction(InteractAction.GiveCookie1),
|
|
mixColliderRect(-13, -12, 26, 14));
|
|
|
|
export const cookieTable2 = doodad(n('cookie-table-2'), sprites.cookie_table_2, 13, 28, 0,
|
|
mixFlags(EntityFlags.Interactive),
|
|
base => base.interactRange = 5,
|
|
mixInteractAction(InteractAction.GiveCookie2),
|
|
mixColliderRect(-13, -12, 26, 14));
|
|
|
|
export const letter = doodad(n('letter'), sprites.letter, 4, 10, 0,
|
|
mixPickable(30, 50));
|
|
|
|
export const rose = doodad(n('rose'), sprites.rose, 8, 1, 0,
|
|
mixPickable(30, 41));
|
|
|
|
// tools
|
|
|
|
export const hammer = doodad(n('hammer'), sprites.hammer, 8, 10, 0,
|
|
mixPickable(25, 46),
|
|
mixFlags(EntityFlags.Usable));
|
|
|
|
export const shovel = doodad(n('shovel'), sprites.shovel, 16, 6, 0,
|
|
mixPickable(29, 42),
|
|
mixFlags(EntityFlags.Usable));
|
|
|
|
export const rake = doodad(n('rake'), sprites.rake, 16, 6, 0,
|
|
mixPickable(30, 42));
|
|
|
|
export const pickaxe = doodad(n('pickaxe'), sprites.pickaxe, 10, 8, 0,
|
|
mixPickable(28, 42));
|
|
|
|
export const broom = doodad(n('broom'), sprites.broom, 16, 6, 0,
|
|
mixPickable(27, 42));
|
|
|
|
export const saw = doodad(n('saw'), sprites.saw, 10, 7, 0,
|
|
mixPickable(26, 47));
|