diff --git a/index.html b/index.html index 542dfc0..b0dd66a 100644 --- a/index.html +++ b/index.html @@ -19,11 +19,18 @@
- + +
- + + + + + + +
diff --git a/scripts/dev-mode.js b/scripts/dev-mode.js new file mode 100644 index 0000000..ec79d5a --- /dev/null +++ b/scripts/dev-mode.js @@ -0,0 +1,44 @@ +import { registerLoadCallback } from "./main.js"; +import { awaitEvent, emitEvent, listenTo } from "./events.js"; +import { loadExampleFile } from "./files.js"; +import { loadConfiguration } from "./configuration.js"; +import { recall, save } from "./storage.js"; +import { getElements } from "./dom-utils.js"; + +const devModeKey = "dev-mode"; +let devMode = false; + +registerLoadCallback(() => { + devMode = recall(devModeKey, false); + + getElements("toggle", "dev-mode:toggle").forEach(e => { + e.dataset.toggled = devMode.toString(); + }); + + listenTo("dev-mode:toggle", (e) => { + devMode = e.detail.state; + save(devModeKey, devMode); + console.log("debug mode toggled to", devMode); + }); + + document.addEventListener("keydown", e => { + if (!devMode) return; + + if (e.key === "H") { + emitEvent("dev:suppress-hover"); + } + if (e.key === "T") { + emitEvent("dev:suppress-tooltips"); + } + }); + + if (!devMode) return; + + awaitEvent("setup:end").then(() => { + void loadConfiguration("default"); + }); + + awaitEvent("config:end").then(() => { + void loadExampleFile("Pandora's Fission Reactor"); + }); +}); diff --git a/scripts/main.js b/scripts/main.js index c35194f..77046c2 100644 --- a/scripts/main.js +++ b/scripts/main.js @@ -1,12 +1,13 @@ import "./atlas.js"; import "./block-picker.js"; -import { loadConfiguration } from "./configuration.js"; +import "./configuration.js"; +import "./dev-mode.js"; import "./dialogs.js"; import "./dom-list.js"; import { debounce, getElements } from "./dom-utils.js"; import "./errors.js"; -import { emitEvent, listenTo } from "./events.js"; -import { loadExampleFile } from "./files.js" +import { awaitEvent, emitEvent, listenTo } from "./events.js"; +import "./files.js" import "./js-utils.js" import "./menu-bar.js"; import "./ncpf-utils.js"; @@ -29,7 +30,7 @@ function runLoadCallbacks() { } window.addEventListener("load", () => { - emitEvent("setup-start"); + emitEvent("setup:start"); getElements("state", "*").forEach(e => { e.classList.add("hidden"); @@ -81,11 +82,5 @@ window.addEventListener("load", () => { runLoadCallbacks(); - emitEvent("setup-end"); - - void loadConfiguration("default"); - // void loadConfiguration("fuel-test"); - - // awaitEvent("config:end").then(() => loadExampleFile("Pandora's Fission Reactor")); - // awaitEvent("config:end").then(() => loadExampleFile("multi-reactor")); + emitEvent("setup:end"); }); diff --git a/scripts/planner.js b/scripts/planner.js index 08c4286..1a044ba 100644 --- a/scripts/planner.js +++ b/scripts/planner.js @@ -75,11 +75,9 @@ registerLoadCallback(() => { listenTo("block-picker:selection", clearSelectedCells); - document.addEventListener("keydown", e => { - if (e.key === "H") { - suppressHover = !suppressHover; - console.log("Suppressing hover:", suppressHover); - } + listenTo("dev:suppress-hover", () => { + suppressHover = !suppressHover; + console.log("Suppressing hover:", suppressHover); }); }); diff --git a/scripts/tooltip.js b/scripts/tooltip.js index 0405fc4..3d6ea46 100644 --- a/scripts/tooltip.js +++ b/scripts/tooltip.js @@ -37,11 +37,9 @@ registerLoadCallback(() => { listenTo("tooltips:show", showTooltip); listenTo("tooltips:hide", hideTooltip); - document.addEventListener("keydown", e => { - if (e.key === "T") { - suppressTooltips = !suppressTooltips; - console.log("suppressing tooltips", suppressTooltips); - } + listenTo("dev:suppress-tooltips", () => { + suppressTooltips = !suppressTooltips; + console.log("suppressing tooltips", suppressTooltips); }); });