From 94799733661bd3f9a6a0a34f2fec73d1a76135f7 Mon Sep 17 00:00:00 2001 From: Kelsi Date: Thu, 7 May 2026 18:19:24 -0700 Subject: [PATCH] feat(editor): status bar shows active biome MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Adds a public EditorApp::getActiveBiome() accessor and renders the biome name in the status bar between the tile coords and the dirty marker. So the bar reads, e.g., "[Sculpt] mymap [32,32] Forest *" — at a glance the user knows what biome the painting/ auto-paint passes will use. Useful especially after creating a new terrain: the biome selection previously only mattered at create time + during "Generate Complete Zone", with no visible feedback that it was remembered. --- tools/editor/editor_app.hpp | 3 +++ tools/editor/editor_ui.cpp | 3 ++- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/tools/editor/editor_app.hpp b/tools/editor/editor_app.hpp index adcd0cfe..3ca62573 100644 --- a/tools/editor/editor_app.hpp +++ b/tools/editor/editor_app.hpp @@ -207,6 +207,9 @@ private: // reads this so subsequent generations honor the active biome instead of // reapplying the same hardcoded heightband textures every time. Biome activeBiome_ = Biome::Grassland; +public: + Biome getActiveBiome() const { return activeBiome_; } +private: // "Click on terrain to place crater" mode. The Crater button arms this // with the user's chosen radius/depth/rim; the next left-click on diff --git a/tools/editor/editor_ui.cpp b/tools/editor/editor_ui.cpp index 0ead3ecb..d88cfdce 100644 --- a/tools/editor/editor_ui.cpp +++ b/tools/editor/editor_ui.cpp @@ -3119,8 +3119,9 @@ void EditorUI::renderStatusBar(EditorApp& app) { if (app.hasTerrainLoaded()) { bool dirty = app.getTerrainEditor().hasUnsavedChanges() || app.hasUnsavedNonTerrainChanges(); - ImGui::Text("[%s] %s [%d,%d]%s", m, app.getLoadedMap().c_str(), + ImGui::Text("[%s] %s [%d,%d] %s%s", m, app.getLoadedMap().c_str(), app.getLoadedTileX(), app.getLoadedTileY(), + getBiomeName(app.getActiveBiome()), dirty ? " *" : ""); ImGui::SameLine(vp->Size.x * 0.35f); ImGui::Text("Obj:%zu NPC:%zu Q:%zu",