summaryrefslogtreecommitdiff
path: root/src/engine/entities
diff options
context:
space:
mode:
authorElizabeth Hunt <elizabeth.hunt@simponic.xyz>2024-03-02 01:34:19 -0700
committerElizabeth Hunt <elizabeth.hunt@simponic.xyz>2024-03-02 01:34:19 -0700
commitcd6a3a56b0a9f27dd7250c7641776fe1bd184888 (patch)
treeb26c2731e39c63b748ac3bc76cc977419bae4746 /src/engine/entities
parent1ec5a8d088f599d094f387abc6014f228607b605 (diff)
downloadthe-abstraction-engine-cd6a3a56b0a9f27dd7250c7641776fe1bd184888.tar.gz
the-abstraction-engine-cd6a3a56b0a9f27dd7250c7641776fe1bd184888.zip
add modal interaction with code
Diffstat (limited to 'src/engine/entities')
-rw-r--r--src/engine/entities/FunctionBox.ts19
1 files changed, 14 insertions, 5 deletions
diff --git a/src/engine/entities/FunctionBox.ts b/src/engine/entities/FunctionBox.ts
index 393514e..57eeedb 100644
--- a/src/engine/entities/FunctionBox.ts
+++ b/src/engine/entities/FunctionBox.ts
@@ -8,6 +8,7 @@ import {
Sprite,
} from "../components";
import { Coord2D } from "../interfaces";
+import { openModal, closeModal } from "../utils";
export class FunctionBox extends Entity {
private static spriteSpec: SpriteSpec = SPRITE_SPECS.get(
@@ -52,15 +53,23 @@ export class FunctionBox extends Entity {
this.hooks.set(ComponentNames.Highlight, {
add: () => {
- this.addComponent(new Interactable(() => this.viewInsides()));
+ let modalOpen = false;
+ const interaction = () => {
+ if (modalOpen) {
+ modalOpen = false;
+ closeModal();
+ return;
+ }
+ modalOpen = true;
+ openModal(this.code);
+ };
+
+ this.addComponent(new Interactable(interaction));
},
remove: () => {
+ closeModal();
this.removeComponent(ComponentNames.Interactable);
},
});
}
-
- public viewInsides() {
- console.log("I am a function box!");
- }
}