|
|
@ -75,7 +75,8 @@ namespace gui { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
void StatusUI::update() { |
|
|
|
void StatusUI::update() { |
|
|
|
auto& inventory = $level.world->get_the<inventory::Model>(); |
|
|
|
auto player = $level.world->get_the<components::Player>(); |
|
|
|
|
|
|
|
auto& inventory = $level.world->get<inventory::Model>(player.entity); |
|
|
|
for(auto& [slot, world_entity] : inventory.by_slot) { |
|
|
|
for(auto& [slot, world_entity] : inventory.by_slot) { |
|
|
|
auto gui_id = $gui.entity(slot); |
|
|
|
auto gui_id = $gui.entity(slot); |
|
|
|
|
|
|
|
|
|
|
@ -102,7 +103,8 @@ namespace gui { |
|
|
|
|
|
|
|
|
|
|
|
bool StatusUI::place_slot(guecs::Entity gui_id, DinkyECS::Entity world_entity) { |
|
|
|
bool StatusUI::place_slot(guecs::Entity gui_id, DinkyECS::Entity world_entity) { |
|
|
|
auto& slot_name = $slot_to_name.at(gui_id); |
|
|
|
auto& slot_name = $slot_to_name.at(gui_id); |
|
|
|
auto& inventory = $level.world->get_the<inventory::Model>(); |
|
|
|
auto player = $level.world->get_the<components::Player>(); |
|
|
|
|
|
|
|
auto& inventory = $level.world->get<inventory::Model>(player.entity); |
|
|
|
|
|
|
|
|
|
|
|
if(inventory.add(slot_name, world_entity)) { |
|
|
|
if(inventory.add(slot_name, world_entity)) { |
|
|
|
$level.world->make_constant(world_entity); |
|
|
|
$level.world->make_constant(world_entity); |
|
|
@ -128,7 +130,10 @@ namespace gui { |
|
|
|
// do it.
|
|
|
|
// do it.
|
|
|
|
dbc::log(fmt::format("removing slot: {}", slot_id)); |
|
|
|
dbc::log(fmt::format("removing slot: {}", slot_id)); |
|
|
|
auto& slot_name = $slot_to_name.at(slot_id); |
|
|
|
auto& slot_name = $slot_to_name.at(slot_id); |
|
|
|
auto& inventory = $level.world->get_the<inventory::Model>(); |
|
|
|
|
|
|
|
|
|
|
|
auto player = $level.world->get_the<components::Player>(); |
|
|
|
|
|
|
|
auto& inventory = $level.world->get<inventory::Model>(player.entity); |
|
|
|
|
|
|
|
|
|
|
|
auto world_entity = inventory.get(slot_name); |
|
|
|
auto world_entity = inventory.get(slot_name); |
|
|
|
inventory.remove(world_entity); |
|
|
|
inventory.remove(world_entity); |
|
|
|
|
|
|
|
|
|
|
@ -138,7 +143,9 @@ namespace gui { |
|
|
|
|
|
|
|
|
|
|
|
void StatusUI::swap(guecs::Entity gui_a, guecs::Entity gui_b) { |
|
|
|
void StatusUI::swap(guecs::Entity gui_a, guecs::Entity gui_b) { |
|
|
|
if(gui_a != gui_b) { |
|
|
|
if(gui_a != gui_b) { |
|
|
|
auto& inventory = $level.world->get_the<inventory::Model>(); |
|
|
|
auto player = $level.world->get_the<components::Player>(); |
|
|
|
|
|
|
|
auto& inventory = $level.world->get<inventory::Model>(player.entity); |
|
|
|
|
|
|
|
|
|
|
|
auto& a_name = $slot_to_name.at(gui_a); |
|
|
|
auto& a_name = $slot_to_name.at(gui_a); |
|
|
|
auto& b_name = $slot_to_name.at(gui_b); |
|
|
|
auto& b_name = $slot_to_name.at(gui_b); |
|
|
|
auto a_ent = inventory.get(a_name); |
|
|
|
auto a_ent = inventory.get(a_name); |
|
|
@ -152,7 +159,8 @@ namespace gui { |
|
|
|
bool StatusUI::occupied(guecs::Entity slot) { |
|
|
|
bool StatusUI::occupied(guecs::Entity slot) { |
|
|
|
dbc::check($slot_to_name.contains(slot), "jank ass slot to name thing isn't loaded right you idiot."); |
|
|
|
dbc::check($slot_to_name.contains(slot), "jank ass slot to name thing isn't loaded right you idiot."); |
|
|
|
|
|
|
|
|
|
|
|
auto& inventory = $level.world->get_the<inventory::Model>(); |
|
|
|
auto player = $level.world->get_the<components::Player>(); |
|
|
|
|
|
|
|
auto& inventory = $level.world->get<inventory::Model>(player.entity); |
|
|
|
auto& slot_name = $slot_to_name.at(slot); |
|
|
|
auto& slot_name = $slot_to_name.at(slot); |
|
|
|
return inventory.has(slot_name); |
|
|
|
return inventory.has(slot_name); |
|
|
|
} |
|
|
|
} |
|
|
|