summaryrefslogtreecommitdiff
path: root/src/engine/entities/FunctionBox.ts
diff options
context:
space:
mode:
Diffstat (limited to 'src/engine/entities/FunctionBox.ts')
-rw-r--r--src/engine/entities/FunctionBox.ts27
1 files changed, 25 insertions, 2 deletions
diff --git a/src/engine/entities/FunctionBox.ts b/src/engine/entities/FunctionBox.ts
index e6c41c2..393514e 100644
--- a/src/engine/entities/FunctionBox.ts
+++ b/src/engine/entities/FunctionBox.ts
@@ -1,6 +1,12 @@
import { IMAGES, SPRITE_SPECS, SpriteSpec, Sprites } from "../config";
import { Entity, EntityNames } from ".";
-import { BoundingBox, Grid, Sprite } from "../components";
+import {
+ BoundingBox,
+ ComponentNames,
+ Grid,
+ Interactable,
+ Sprite,
+} from "../components";
import { Coord2D } from "../interfaces";
export class FunctionBox extends Entity {
@@ -8,9 +14,13 @@ export class FunctionBox extends Entity {
Sprites.FUNCTION_BOX,
) as SpriteSpec;
- constructor(gridPosition: Coord2D) {
+ private code: string;
+
+ constructor(gridPosition: Coord2D, code: string) {
super(EntityNames.FunctionBox);
+ this.code = code;
+
this.addComponent(
new BoundingBox(
{
@@ -39,5 +49,18 @@ export class FunctionBox extends Entity {
FunctionBox.spriteSpec.frames,
),
);
+
+ this.hooks.set(ComponentNames.Highlight, {
+ add: () => {
+ this.addComponent(new Interactable(() => this.viewInsides()));
+ },
+ remove: () => {
+ this.removeComponent(ComponentNames.Interactable);
+ },
+ });
+ }
+
+ public viewInsides() {
+ console.log("I am a function box!");
}
}