#include "gui/status_ui.hpp" #include "components.hpp" #include "inventory.hpp" #include #include "rand.hpp" #include namespace gui { using namespace guecs; using std::any, std::any_cast, std::string, std::make_any; StatusUI::StatusUI(GameLevel level) : $level(level), $ritual_ui(level) { $gui.position(STATUS_UI_X, STATUS_UI_Y, STATUS_UI_WIDTH, STATUS_UI_HEIGHT); $gui.layout( "[ ritual_ui ]" "[inv_slot1 | inv_slot2 | inv_slot3]" "[inv_slot4 | inv_slot5 | inv_slot6]" "[*%(200,300)character_view|_|stat1]" "[_|_|stat2]" "[_|_|stat3]"); size_t inv_id = 0; for(auto [name, entity] : $gui.$name_ents) { if(name.starts_with("inv_")) { $slots[name] = inv_id++; } } } void StatusUI::init() { $gui.set($gui.MAIN, {$gui.$parser}); for(auto& [name, cell] : $gui.cells()) { if(name == "character_view") { auto char_view = $gui.entity(name); $gui.set(char_view, {}); $gui.set(char_view, {"peasant_girl"}); } else if(name.starts_with("stat")) { auto stat = $gui.entity(name); $gui.set(stat, {}); $gui.set