Files
tower/ts/sequence_tile_factory.ts
2021-05-17 04:26:18 +00:00

35 lines
989 B
TypeScript

import { AnimatableTileFactory } from './animatable_tile_factory.js';
import { SequenceTile } from './sequence_tile.js';
import { TileFactory } from './tile_factory.js';
export class SequenceTileFactory extends AnimatableTileFactory {
tile_factories: TileFactory[];
delay: number;
repeat: boolean;
constructor(tile_factories: TileFactory[], delay: number, repeat: boolean) {
super(
tile_factories[0].layer_name,
tile_factories[0].width,
tile_factories[0].height,
);
this.tile_factories = tile_factories;
this.delay = delay;
this.repeat = repeat;
}
build(tileset: string): SequenceTile {
const tiles = [];
for (const tile_factory of this.tile_factories) {
tiles.push(tile_factory.build(tileset));
}
return new SequenceTile(...this.animatable_tile_args(), tiles, this.delay, this.repeat);
}
copy(): SequenceTileFactory {
return new SequenceTileFactory(this.tile_factories, this.delay, this.repeat);
}
}