91 lines
1.9 KiB
TypeScript
91 lines
1.9 KiB
TypeScript
import { Vector } from "@bearmetal/doodler";
|
|
import { TrainCar } from "./train.ts";
|
|
import { getContextItem } from "../lib/context.ts";
|
|
import { ResourceManager } from "../lib/resources.ts";
|
|
|
|
export class RedEngine extends TrainCar {
|
|
constructor() {
|
|
const resources = getContextItem<ResourceManager>("resources");
|
|
super(
|
|
55,
|
|
10,
|
|
resources.get<HTMLImageElement>("snr:sprite/engine")!,
|
|
80,
|
|
20,
|
|
{
|
|
at: new Vector(0, 60),
|
|
width: 80,
|
|
height: 20,
|
|
},
|
|
);
|
|
}
|
|
}
|
|
export class PurpleEngine extends TrainCar {
|
|
constructor() {
|
|
const resources = getContextItem<ResourceManager>("resources");
|
|
super(
|
|
55,
|
|
10,
|
|
resources.get<HTMLImageElement>("snr:sprite/engine")!,
|
|
80,
|
|
20,
|
|
{
|
|
at: new Vector(0, 60),
|
|
width: 80,
|
|
height: 20,
|
|
},
|
|
);
|
|
}
|
|
}
|
|
export class GreenEngine extends TrainCar {
|
|
constructor() {
|
|
const resources = getContextItem<ResourceManager>("resources");
|
|
super(
|
|
55,
|
|
10,
|
|
resources.get<HTMLImageElement>("snr:sprite/engine")!,
|
|
80,
|
|
20,
|
|
{
|
|
at: new Vector(0, 40),
|
|
width: 80,
|
|
height: 20,
|
|
},
|
|
);
|
|
}
|
|
}
|
|
export class GrayEngine extends TrainCar {
|
|
constructor() {
|
|
const resources = getContextItem<ResourceManager>("resources");
|
|
super(
|
|
55,
|
|
10,
|
|
resources.get<HTMLImageElement>("snr:sprite/engine")!,
|
|
80,
|
|
20,
|
|
{
|
|
at: new Vector(0, 20),
|
|
width: 80,
|
|
height: 20,
|
|
},
|
|
);
|
|
}
|
|
}
|
|
export class BlueEngine extends TrainCar {
|
|
constructor() {
|
|
const resources = getContextItem<ResourceManager>("resources");
|
|
super(
|
|
55,
|
|
10,
|
|
resources.get<HTMLImageElement>("snr:sprite/engine")!,
|
|
80,
|
|
20,
|
|
{
|
|
at: new Vector(0, 0),
|
|
width: 80,
|
|
height: 20,
|
|
},
|
|
);
|
|
}
|
|
}
|