summaryrefslogtreecommitdiffstats
path: root/src/view/entity.ts
blob: 421a238be430c6a86871fd689770fc93f13bea8b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import { EntityData } from '../model/data/entity';
import { Renderer } from './renderer/renderer';
import { SpriteView, SpriteViewBuilder } from './sprite';
import { loadImage, mkTexture } from './util/image';

export async function loadEntity(
	r: Renderer,
	data: EntityData,
): Promise<SpriteView> {
	const tile = await loadImage(`resources/sprite/entity/${data.sprite}.png`);
	const texture = mkTexture(r.getContext(), tile);

	const [x, y] = data.anchor;

	const builder = new SpriteViewBuilder(r, texture);
	builder.addSprite([-x, -y, -x + 1, -y + 1], [0, 0, 1, 1]);
	return builder.build();
}