Loot UI is now mostly formed, just need to get loot into it and make it work.
This commit is contained in:
parent
8545b8cf1d
commit
dfc6aa08e9
12 changed files with 38 additions and 146 deletions
|
@ -1,6 +1,5 @@
|
|||
#include "gui/combat_ui.hpp"
|
||||
#include "constants.hpp"
|
||||
#include "color.hpp"
|
||||
#include "rituals.hpp"
|
||||
#include <fmt/xchar.h>
|
||||
#include "guecstra.hpp"
|
||||
|
@ -37,7 +36,8 @@ namespace gui {
|
|||
}
|
||||
|
||||
void CombatUI::init() {
|
||||
$gui.set<Background>($gui.MAIN, {$gui.$parser, ColorValue::DARK_MID});
|
||||
using guecs::THEME;
|
||||
$gui.set<Background>($gui.MAIN, {$gui.$parser, THEME.DARK_MID});
|
||||
auto& the_belt = $level.world->get_the<ritual::Belt>();
|
||||
|
||||
for(int slot = 0; slot < the_belt.max_slots; slot++) {
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
#include "gui/debug_ui.hpp"
|
||||
#include "constants.hpp"
|
||||
#include "color.hpp"
|
||||
#include "events.hpp"
|
||||
#include <optional>
|
||||
#include <fmt/core.h>
|
||||
|
|
|
@ -420,6 +420,10 @@ namespace gui {
|
|||
case eGUI::NO_NEIGHBORS:
|
||||
event(Event::STOP_COMBAT);
|
||||
break;
|
||||
case eGUI::LOOT_CLOSE:
|
||||
// BUG: need to resolve GUI events vs. FSM events better
|
||||
event(Event::LOOT_OPEN);
|
||||
break;
|
||||
case eGUI::LOOT: {
|
||||
// auto &item = std::any_cast<InventoryItem&>(data);
|
||||
// $status_ui.log(fmt::format("You picked up a {}.",
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
#include "gui/loot_ui.hpp"
|
||||
#include "constants.hpp"
|
||||
#include "color.hpp"
|
||||
#include <fmt/xchar.h>
|
||||
#include "guecstra.hpp"
|
||||
|
||||
|
@ -14,25 +13,40 @@ namespace gui {
|
|||
RAY_VIEW_Y+RAY_VIEW_HEIGHT/2-200, 400, 400);
|
||||
|
||||
$gui.layout(
|
||||
"[button_0 | button_1|button_2 | button_3]"
|
||||
"[button_4 | button_5|button_6 | button_7]"
|
||||
"[button_8 | button_9|button_10 | button_11]"
|
||||
"[button_12 | button_13|button_14 | button_15]"
|
||||
"[item_0 | item_1|item_2 | item_3]"
|
||||
"[item_4 | item_5|item_6 | item_7]"
|
||||
"[item_8 | item_9|item_10 | item_11]"
|
||||
"[button_12|button_13|button_14|button_15]"
|
||||
"[_ | *%(200)close|_ | _]"
|
||||
);
|
||||
}
|
||||
|
||||
void LootUI::init() {
|
||||
$gui.set<Background>($gui.MAIN, {$gui.$parser, ColorValue::DARK_MID});
|
||||
for(auto [name, cell] : $gui.cells()) {
|
||||
auto id = $gui.entity(name);
|
||||
$gui.set<guecs::Rectangle>(id, {});
|
||||
if(id < 4) {
|
||||
$gui.set<guecs::Clickable>(id, {
|
||||
[=](auto, auto) { fmt::println("clicked {}", name); }
|
||||
});
|
||||
$gui.set<guecs::Sprite>(id, {"broken_yoyo-64"});
|
||||
}
|
||||
using guecs::THEME;
|
||||
auto bg_color = THEME.DARK_LIGHT;
|
||||
bg_color.a = 140;
|
||||
$gui.set<Background>($gui.MAIN, {$gui.$parser, bg_color});
|
||||
|
||||
// fill in 4 slots for prototype
|
||||
for(int i = 0; i < 4; i++) {
|
||||
auto id = $gui.entity("item_", i);
|
||||
|
||||
$gui.set<guecs::Rectangle>(id, {THEME.PADDING,
|
||||
THEME.TRANSPARENT, THEME.LIGHT_MID });
|
||||
|
||||
$gui.set<guecs::Effect>(id, {0.4f, "ui_shader"});
|
||||
$gui.set<guecs::Clickable>(id, {
|
||||
[=](auto, auto) { fmt::println("clicked button_{}", i); }
|
||||
});
|
||||
$gui.set<guecs::Sprite>(id, {"broken_yoyo-64"});
|
||||
}
|
||||
|
||||
auto close = $gui.entity("close");
|
||||
$gui.set<guecs::Rectangle>(close, {});
|
||||
$gui.set<guecs::Label>(close, {L"CLOSE"});
|
||||
$gui.set<guecs::Clickable>(close,
|
||||
guecs::make_action(*$level.world, Events::GUI::LOOT_CLOSE));
|
||||
|
||||
$gui.init();
|
||||
}
|
||||
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
#include "gui/overlay_ui.hpp"
|
||||
#include "constants.hpp"
|
||||
#include "color.hpp"
|
||||
#include "events.hpp"
|
||||
#include <optional>
|
||||
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
#include "gui/status_ui.hpp"
|
||||
#include "components.hpp"
|
||||
#include "inventory.hpp"
|
||||
#include "color.hpp"
|
||||
#include <guecs/ui.hpp>
|
||||
#include "rand.hpp"
|
||||
#include <fmt/xchar.h>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue