30 lines
624 B
TypeScript
30 lines
624 B
TypeScript
import { Component, ComponentNames } from ".";
|
|
import { Direction } from "../interfaces";
|
|
|
|
export class LambdaSpawn extends Component {
|
|
public direction: Direction | null;
|
|
public spawnsLeft: number;
|
|
public code: string = "";
|
|
|
|
constructor(
|
|
spawnsLeft: number,
|
|
code: string,
|
|
direction: Direction | null = null,
|
|
) {
|
|
super(ComponentNames.LambdaSpawn);
|
|
|
|
this.spawnsLeft = spawnsLeft;
|
|
this.direction = direction;
|
|
this.code = code;
|
|
}
|
|
|
|
public spawn(direction: Direction) {
|
|
if (this.spawnsLeft <= 0) {
|
|
return;
|
|
}
|
|
|
|
this.direction = direction;
|
|
this.spawnsLeft -= 1;
|
|
}
|
|
}
|