diff options
author | Elizabeth Hunt <elizabeth.hunt@simponic.xyz> | 2024-03-02 01:34:19 -0700 |
---|---|---|
committer | Elizabeth Hunt <elizabeth.hunt@simponic.xyz> | 2024-03-02 01:34:19 -0700 |
commit | cd6a3a56b0a9f27dd7250c7641776fe1bd184888 (patch) | |
tree | b26c2731e39c63b748ac3bc76cc977419bae4746 /src/engine/entities/FunctionBox.ts | |
parent | 1ec5a8d088f599d094f387abc6014f228607b605 (diff) | |
download | the-abstraction-engine-cd6a3a56b0a9f27dd7250c7641776fe1bd184888.tar.gz the-abstraction-engine-cd6a3a56b0a9f27dd7250c7641776fe1bd184888.zip |
add modal interaction with code
Diffstat (limited to 'src/engine/entities/FunctionBox.ts')
-rw-r--r-- | src/engine/entities/FunctionBox.ts | 19 |
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!"); - } } |