Worked out an initial stab at a GrabSource for drag-n-drop or just simple grabbing things in the UI.
This commit is contained in:
parent
94385b195d
commit
842aac3127
5 changed files with 47 additions and 32 deletions
|
@ -1,7 +1,6 @@
|
|||
#include "gui/loot_ui.hpp"
|
||||
#include "constants.hpp"
|
||||
#include <fmt/xchar.h>
|
||||
#include "gui/guecstra.hpp"
|
||||
|
||||
namespace gui {
|
||||
using namespace guecs;
|
||||
|
@ -55,12 +54,6 @@ namespace gui {
|
|||
}
|
||||
}
|
||||
|
||||
shared_ptr<sf::Sprite> LootUI::grab_sprite(int slot_id) {
|
||||
auto id = $gui.entity("item_", slot_id);
|
||||
auto& sprite = $gui.get<guecs::Sprite>(id);
|
||||
return sprite.sprite;
|
||||
}
|
||||
|
||||
void LootUI::remove_slot(int slot_id) {
|
||||
dbc::check(size_t(slot_id) < contents.size(),
|
||||
fmt::format("invalid slot id {} give, contents.size={}",
|
||||
|
@ -83,12 +76,16 @@ namespace gui {
|
|||
if(i < contents.size()) {
|
||||
auto item = contents.at(i);
|
||||
auto& sprite = $level.world->get<components::Sprite>(item);
|
||||
fmt::println("NEW SPRITE SPRITE {}", sprite.name);
|
||||
$gui.set_init<guecs::Sprite>(id, {sprite.name});
|
||||
guecs::GrabSource grabber{sprite.name};
|
||||
$gui.set_init<guecs::Sprite>(id, grabber);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
guecs::GrabSource& LootUI::get_grabber(DinkyECS::Entity entity) {
|
||||
return static_cast<guecs::GrabSource&>($gui.get<guecs::Sprite>(entity));
|
||||
}
|
||||
|
||||
void LootUI::render(sf::RenderWindow& window) {
|
||||
$gui.render(window);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue