From cd6a3a56b0a9f27dd7250c7641776fe1bd184888 Mon Sep 17 00:00:00 2001 From: Elizabeth Hunt Date: Sat, 2 Mar 2024 01:34:19 -0700 Subject: add modal interaction with code --- src/engine/entities/FunctionBox.ts | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) (limited to 'src/engine/entities/FunctionBox.ts') 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!"); - } } -- cgit v1.2.3-70-g09d2