fix: pause menu on hudVisible=false (#512)

* fix: pause menu on hudVisible=false
This commit is contained in:
clasher113 2025-04-12 20:30:55 +03:00 committed by GitHub
parent 2b753a1dd2
commit d888ddec4c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -314,6 +314,7 @@ void Hud::updateWorldGenDebug() {
void Hud::update(bool visible) {
const auto& chunks = *player.chunks;
bool is_menu_open = menu.hasOpenPage();
debugPanel->setVisible(
debug && visible && !(inventoryOpen && inventoryView == nullptr)
@ -322,13 +323,13 @@ void Hud::update(bool visible) {
if (!visible && inventoryOpen) {
closeInventory();
}
if (pause && !menu.hasOpenPage()) {
if (pause && !is_menu_open) {
setPause(false);
}
if (!gui.isFocusCaught()) {
processInput(visible);
}
if ((menu.hasOpenPage() || inventoryOpen) == input.getCursor().locked) {
if ((is_menu_open || inventoryOpen) == input.getCursor().locked) {
input.toggleCursor();
}
@ -349,6 +350,8 @@ void Hud::update(bool visible) {
contentAccessPanel->setSize(glm::vec2(caSize.x, windowSize.y));
contentAccess->setMinSize(glm::vec2(1, windowSize.y));
hotbarView->setVisible(visible && !(secondUI && !inventoryView));
darkOverlay->setVisible(is_menu_open);
menu.setVisible(is_menu_open);
if (visible) {
for (auto& element : elements) {
@ -360,7 +363,7 @@ void Hud::update(bool visible) {
}
cleanup();
debugMinimap->setVisible(debug && showGeneratorMinimap);
debugMinimap->setVisible(debug && showGeneratorMinimap && visible);
if (debug && showGeneratorMinimap) {
updateWorldGenDebug();
}
@ -593,10 +596,6 @@ void Hud::setDebug(bool flag) {
void Hud::draw(const DrawContext& ctx){
const auto& viewport = ctx.getViewport();
bool is_menu_open = menu.hasOpenPage();
darkOverlay->setVisible(is_menu_open);
menu.setVisible(is_menu_open);
updateElementsPosition(viewport);
uicamera->setFov(viewport.y);