diff options
author | Elizabeth Hunt <elizabeth.hunt@simponic.xyz> | 2024-03-02 04:02:20 -0700 |
---|---|---|
committer | Elizabeth Hunt <elizabeth.hunt@simponic.xyz> | 2024-03-02 04:02:20 -0700 |
commit | 4b9349b3f8bee21eb086cfd6e7668532a50e6048 (patch) | |
tree | fa3ae95f516d8ec10fb0de57886ff88410b6d11d /src/engine/components/LambdaSpawn.ts | |
parent | 06bb4177202b432d5f42141975ec82b5a8837f0e (diff) | |
download | the-abstraction-engine-4b9349b3f8bee21eb086cfd6e7668532a50e6048.tar.gz the-abstraction-engine-4b9349b3f8bee21eb086cfd6e7668532a50e6048.zip |
add text on lambda factory
Diffstat (limited to 'src/engine/components/LambdaSpawn.ts')
-rw-r--r-- | src/engine/components/LambdaSpawn.ts | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/engine/components/LambdaSpawn.ts b/src/engine/components/LambdaSpawn.ts new file mode 100644 index 0000000..c45092a --- /dev/null +++ b/src/engine/components/LambdaSpawn.ts @@ -0,0 +1,29 @@ +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; + } +} |