From 9777df9a67a9650bb1e061ca43b479c498308aee Mon Sep 17 00:00:00 2001 From: Azgaar Date: Sat, 19 Feb 2022 22:22:30 +0300 Subject: [PATCH] toggle loading menu --- index.html | 4 ++-- main.js | 23 +++++++++++++++++------ 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/index.html b/index.html index 01ebd05c..7e0377d1 100644 --- a/index.html +++ b/index.html @@ -162,14 +162,14 @@ - + - + diff --git a/main.js b/main.js index 50b0743b..c43ab673 100644 --- a/main.js +++ b/main.js @@ -192,15 +192,24 @@ if (!location.hostname) { d3.select("#loading-text").transition().duration(1000).style("opacity", 0); d3.select("#init-rose").transition().duration(4000).style("opacity", 0); } else { + hideLoading(); checkLoadParameters(); +} - // remove loading screen - d3.select("#loading").transition().duration(4000).style("opacity", 0).remove(); - d3.select("#initial").transition().duration(4000).attr("opacity", 0).remove(); +function hideLoading() { + d3.select("#loading").transition().duration(4000).style("opacity", 0); + d3.select("#initial").transition().duration(4000).attr("opacity", 0); d3.select("#optionsContainer").transition().duration(3000).style("opacity", 1); d3.select("#tooltip").transition().duration(4000).style("opacity", 1); } +function showLoading() { + d3.select("#loading").transition().duration(200).style("opacity", 1); + d3.select("#initial").transition().duration(200).attr("opacity", 1); + d3.select("#optionsContainer").transition().duration(100).style("opacity", 0); + d3.select("#tooltip").transition().duration(200).style("opacity", 0); +} + // decide which map should be loaded or generated on page load function checkLoadParameters() { const url = new URL(window.location.href); @@ -1921,16 +1930,18 @@ function showStatistics() { INFO && console.log(stats); } -const regenerateMap = debounce(function () { +const regenerateMap = debounce(async function () { WARN && console.warn("Generate new random map"); + showLoading(); closeDialogs("#worldConfigurator, #options3d"); customization = 0; - undraw(); resetZoom(1000); - generate(); + undraw(); + await generate(); restoreLayers(); if (ThreeD.options.isOn) ThreeD.redraw(); if ($("#worldConfigurator").is(":visible")) editWorld(); + hideLoading(); }, 1000); // clear the map