56 lines
1.6 KiB
TypeScript
56 lines
1.6 KiB
TypeScript
import { Vector } from "https://jsr.io/@bearmetal/doodler/0.0.4/geometry/vector.ts";
|
|
import { TrainCar } from "./train.ts";
|
|
import { ResourceManager } from "../lib/resources.ts";
|
|
import { getContextItem } from "../lib/context.ts";
|
|
|
|
export class Tender extends TrainCar {
|
|
constructor() {
|
|
const resources = getContextItem<ResourceManager>("resources");
|
|
super(25, resources.get<HTMLImageElement>("engine-sprites")!, 40, 20, {
|
|
at: new Vector(80, 0),
|
|
width: 40,
|
|
height: 20,
|
|
});
|
|
}
|
|
}
|
|
export class Tank extends TrainCar {
|
|
constructor() {
|
|
const resources = getContextItem<ResourceManager>("resources");
|
|
super(50, resources.get<HTMLImageElement>("engine-sprites")!, 70, 20, {
|
|
at: new Vector(80, 20),
|
|
width: 70,
|
|
height: 20,
|
|
});
|
|
}
|
|
}
|
|
export class YellowDumpCar extends TrainCar {
|
|
constructor() {
|
|
const resources = getContextItem<ResourceManager>("resources");
|
|
super(50, resources.get<HTMLImageElement>("engine-sprites")!, 70, 20, {
|
|
at: new Vector(80, 40),
|
|
width: 70,
|
|
height: 20,
|
|
});
|
|
}
|
|
}
|
|
export class GrayDumpCar extends TrainCar {
|
|
constructor() {
|
|
const resources = getContextItem<ResourceManager>("resources");
|
|
super(50, resources.get<HTMLImageElement>("engine-sprites")!, 70, 20, {
|
|
at: new Vector(80, 60),
|
|
width: 70,
|
|
height: 20,
|
|
});
|
|
}
|
|
}
|
|
export class NullCar extends TrainCar {
|
|
constructor() {
|
|
const resources = getContextItem<ResourceManager>("resources");
|
|
super(50, resources.get<HTMLImageElement>("engine-sprites")!, 70, 20, {
|
|
at: new Vector(80, 80),
|
|
width: 70,
|
|
height: 20,
|
|
});
|
|
}
|
|
}
|