I have the overlay display the low health blood using the gui system.
This commit is contained in:
parent
70a9420c11
commit
d8e1fc7aa3
5 changed files with 50 additions and 24 deletions
|
@ -6,8 +6,9 @@
|
|||
namespace gui {
|
||||
using namespace guecs;
|
||||
|
||||
OverlayUI::OverlayUI(GameLevel level) :
|
||||
$level(level)
|
||||
OverlayUI::OverlayUI(GameLevel level, TexturePack& textures) :
|
||||
$level(level),
|
||||
$textures(textures)
|
||||
{
|
||||
$gui.position(RAY_VIEW_X, RAY_VIEW_Y, RAY_VIEW_WIDTH, RAY_VIEW_HEIGHT);
|
||||
$gui.layout(
|
||||
|
@ -19,18 +20,29 @@ namespace gui {
|
|||
);
|
||||
}
|
||||
|
||||
void OverlayUI::render(TexturePack &textures) {
|
||||
void OverlayUI::render() {
|
||||
auto &world = $gui.world();
|
||||
for(auto &[name, cell] : $gui.cells()) {
|
||||
auto region = $gui.entity(name);
|
||||
$name_ents.insert_or_assign(name, region);
|
||||
world.set<lel::Cell>(region, cell);
|
||||
}
|
||||
$gui.init(textures);
|
||||
$gui.init($textures);
|
||||
}
|
||||
|
||||
void OverlayUI::draw(sf::RenderWindow& window) {
|
||||
$gui.render(window);
|
||||
}
|
||||
|
||||
void OverlayUI::show_damage(bool show) {
|
||||
auto middle = $gui.entity("middle");
|
||||
|
||||
if(show) {
|
||||
Sprite blood{"blood_splatter"};
|
||||
auto& cell = $gui.cell_for(middle);
|
||||
blood.init(cell, $textures);
|
||||
$gui.set<guecs::Sprite>(middle, blood);
|
||||
} else {
|
||||
$gui.remove<guecs::Sprite>(middle);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue