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;
|
||
|
}
|
||
|
}
|