Compare commits
No commits in common. "48b672eec4fbf6b6c6252495bad0fb3c4ee5d312" and "c390ca5616fe2afdf81791144d43a80bdd392915" have entirely different histories.
48b672eec4
...
c390ca5616
3 changed files with 9 additions and 36 deletions
|
|
@ -15,29 +15,22 @@ struct TestMeters {
|
|||
|
||||
void init() {
|
||||
$gui.position(0, 0, 1280, 720);
|
||||
$gui.layout(
|
||||
"[*%(300,100)meter1|_|_|*%(100,400)vert1|*%(100,400)vert2|*%(100,400)vert3]"
|
||||
"[*%(300,100)meter2|_|_|_|_|_]"
|
||||
"[*%(300,100)meter3|_|_|_|_|_]"
|
||||
"[*%(300,100)meter4|_|_|_|_|_]");
|
||||
$gui.layout("[meter1][=meter2][meter3][meter4]");
|
||||
|
||||
for(auto& [name, cell] : $gui.cells()) {
|
||||
auto gui_id = $gui.entity(name);
|
||||
|
||||
$gui.set<guecs::Rectangle>(gui_id, {guecs::THEME.PADDING, {120, 25, 25, 255}});
|
||||
|
||||
if(name.starts_with("meter")) {
|
||||
$gui.set<guecs::Meter>(gui_id, {1.0f, guecs::THEME.DARK_LIGHT, guecs::THEME.PADDING});
|
||||
} else {
|
||||
$gui.set<guecs::Meter>(gui_id, {1.0f, guecs::THEME.DARK_LIGHT, guecs::THEME.PADDING, true});
|
||||
}
|
||||
|
||||
$gui.set<guecs::Rectangle>(gui_id, {4, {0, 255, 0, 255}});
|
||||
$gui.set<guecs::Meter>(gui_id, {1.0f, {255, 0, 0, 255}, 4});
|
||||
$gui.set<guecs::Effect>(gui_id, {});
|
||||
$gui.set<guecs::Text>(gui_id, {guecs::to_wstring(name)});
|
||||
$gui.set<guecs::Clickable>(gui_id, {
|
||||
[&, gui_id, name](auto) {
|
||||
auto& meter = $gui.get<guecs::Meter>(gui_id);
|
||||
meter.update_percent(1.0f);
|
||||
meter.update_percent(meter.percent - 0.1f);
|
||||
if(meter.percent < 0.0f) {
|
||||
meter.percent = 1.0f;
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
@ -92,14 +85,6 @@ int main() {
|
|||
}
|
||||
}
|
||||
|
||||
gui.$gui.query<guecs::Meter>([](auto ent, auto& meter) {
|
||||
if(meter.percent <= 0.0f) {
|
||||
meter.update_percent(1.0f);
|
||||
} else {
|
||||
meter.update_percent(meter.percent - (0.01f * float(ent)));
|
||||
}
|
||||
});
|
||||
|
||||
gui.update();
|
||||
gui.render(window);
|
||||
window.display();
|
||||
|
|
|
|||
|
|
@ -70,12 +70,9 @@ namespace guecs {
|
|||
float percent = 1.0f;
|
||||
sf::Color color = THEME.BG_COLOR_DARK;
|
||||
int padding = THEME.PADDING;
|
||||
bool vertical = false;
|
||||
Rectangle bar{padding, color};
|
||||
// this is set automatically if a Rectangle is configured for the cell
|
||||
Rectangle backing_rect{padding, color};
|
||||
size_t $cell_x = 0;
|
||||
size_t $cell_y = 0;
|
||||
size_t $cell_w = 0;
|
||||
size_t $cell_h = 0;
|
||||
|
||||
|
|
|
|||
|
|
@ -113,8 +113,6 @@ namespace guecs {
|
|||
}
|
||||
|
||||
void Meter::init(lel::Cell& cell) {
|
||||
$cell_x = cell.x;
|
||||
$cell_y = cell.y;
|
||||
$cell_w = cell.w;
|
||||
$cell_h = cell.h;
|
||||
bar.init(cell);
|
||||
|
|
@ -127,16 +125,9 @@ namespace guecs {
|
|||
|
||||
void Meter::update_percent(float pct) {
|
||||
percent = pct;
|
||||
if(vertical) {
|
||||
float level = std::clamp(percent, 0.0f, 1.0f) * float($cell_h);
|
||||
sf::Vector2f size{float($cell_w) - padding * 2, std::max(level, 0.0f) - padding};
|
||||
bar.shape->setSize(size);
|
||||
bar.shape->setPosition({float($cell_x + padding), float($cell_y) + (float($cell_h) - size.y)});
|
||||
} else {
|
||||
float level = std::clamp(percent, 0.0f, 1.0f) * float($cell_w);
|
||||
bar.shape->setSize({std::max(level, 0.0f) - padding * 2, float($cell_h) - padding * 2});
|
||||
}
|
||||
}
|
||||
|
||||
void Sound::play(bool hover) {
|
||||
if(!hover) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue