#include "gui/guecstra.hpp" #include "game/level.hpp" #include #include "dbc.hpp" namespace guecs { Clickable make_action(guecs::Entity gui_id, game::Event event, const std::source_location location) { return {[&, gui_id, event, location](guecs::Modifiers mods){ auto world = GameDB::current_world(); dbc::log($F("SENDING EVENT: {}: {}", magic_enum::enum_name(event), mods.to_string()), location); world->send(event, gui_id, {}); }}; } Clickable make_action(guecs::Entity gui_id, game::Event event, std::any data, const std::source_location location) { return {[&, event, data, location](auto){ auto world = GameDB::current_world(); dbc::log($F("SENDING EVENT: {}", magic_enum::enum_name(event)), location); world->send(event, gui_id, data); }}; } DinkyECS::Entity GrabSource::grab() { fmt::println("> Grab entity {}", world_entity); return world_entity; } void GrabSource::setSprite(guecs::UI& gui, guecs::Entity gui_id) { if(auto sp = gui.get_if(gui_id)) { sprite = sp->sprite; } else if(auto sp = gui.get_if(gui_id)) { sprite = sp->sprite; } else { dbc::sentinel("GrabSource given sprite gui_id that doesn't exist"); } } void GrabSource::move(sf::Vector2f pos) { if(sprite) { sprite->setPosition(pos); } } }