#include "combat_ui.hpp" #include "constants.hpp" #include "color.hpp" namespace gui { CombatUI::CombatUI(GameLevel level) : $level(level) { $gui.position(RAY_VIEW_X, RAY_VIEW_HEIGHT, RAY_VIEW_WIDTH, SCREEN_HEIGHT - RAY_VIEW_HEIGHT); $gui.layout( "[*%(100,150)button_attack1 | *%(100,150)button_attack2 | *%(100,150)button_attack3 | *%(100,150)button_heal]" "[ >.%(100,50)label_hp | *%.(100,50)bar_hp | _ ]"); } void CombatUI::render(TexturePack& textures) { auto& world = $gui.world(); for(auto& [name, cell] : $gui.cells()) { if(name.starts_with("button_")) { auto button = $gui.entity(name); world.set(button, cell); world.set(button, {"trash_button"}); world.set(button, {100}); world.set(button, {name}); } else if(name.starts_with("bar_")) { auto meter = $gui.entity(name); world.set(meter, cell); world.set(meter, {}); world.set(meter, {}); } else { // ignored, it's just space $gui.entity(name); } } $gui.init(textures); } void CombatUI::draw(sf::RenderWindow& window) { $gui.render(window); } }