44 lines
1.0 KiB
TypeScript
44 lines
1.0 KiB
TypeScript
|
import { IMAGES, SPRITE_SPECS, SpriteSpec, Sprites } from "../config";
|
||
|
import { Entity, EntityNames } from ".";
|
||
|
import { BoundingBox, Grid, Sprite } from "../components";
|
||
|
import { Coord2D } from "../interfaces";
|
||
|
|
||
|
export class FunctionBox extends Entity {
|
||
|
private static spriteSpec: SpriteSpec = SPRITE_SPECS.get(
|
||
|
Sprites.FUNCTION_BOX,
|
||
|
) as SpriteSpec;
|
||
|
|
||
|
constructor(gridPosition: Coord2D) {
|
||
|
super(EntityNames.FunctionBox);
|
||
|
|
||
|
this.addComponent(
|
||
|
new BoundingBox(
|
||
|
{
|
||
|
x: 0,
|
||
|
y: 0,
|
||
|
},
|
||
|
{
|
||
|
width: FunctionBox.spriteSpec.width,
|
||
|
height: FunctionBox.spriteSpec.height,
|
||
|
},
|
||
|
0,
|
||
|
),
|
||
|
);
|
||
|
|
||
|
this.addComponent(new Grid(true, gridPosition));
|
||
|
|
||
|
this.addComponent(
|
||
|
new Sprite(
|
||
|
IMAGES.get(FunctionBox.spriteSpec.sheet)!,
|
||
|
{ x: 0, y: 0 },
|
||
|
{
|
||
|
width: FunctionBox.spriteSpec.width,
|
||
|
height: FunctionBox.spriteSpec.height,
|
||
|
},
|
||
|
FunctionBox.spriteSpec.msPerFrame,
|
||
|
FunctionBox.spriteSpec.frames,
|
||
|
),
|
||
|
);
|
||
|
}
|
||
|
}
|