add 'inventory' property to slot ui element

This commit is contained in:
MihailRis 2025-12-10 21:45:22 +03:00
parent 2668b8e17b
commit 4d99508ca1
3 changed files with 10 additions and 3 deletions

View file

@ -382,7 +382,7 @@ void SlotView::performLeftClick(ItemStack& stack, ItemStack& grabbed) {
void SlotView::performRightClick(ItemStack& stack, ItemStack& grabbed) {
if (layout.rightClick) {
layout.rightClick(inventoryid, stack);
layout.rightClick(inventoryId, stack);
if (layout.updateFunc) {
layout.updateFunc(layout.index, stack);
}
@ -454,7 +454,7 @@ const std::wstring& SlotView::getTooltip() const {
void SlotView::bind(
int64_t inventoryid, ItemStack& stack, const Content* content
) {
this->inventoryid = inventoryid;
this->inventoryId = inventoryid;
bound = &stack;
this->content = content;
}
@ -467,6 +467,10 @@ ItemStack& SlotView::getStack() {
return *bound;
}
int64_t SlotView::getInventoryId() const {
return inventoryId;
}
InventoryView::InventoryView(GUI& gui) : Container(gui, glm::vec2()) {
setColor(glm::vec4(0, 0, 0, 0.0f));
}

View file

@ -61,7 +61,7 @@ namespace gui {
SlotLayout layout;
bool highlighted = false;
int64_t inventoryid = 0;
int64_t inventoryId = 0;
ItemStack* bound = nullptr;
void performLeftClick(ItemStack& stack, ItemStack& grabbed);
@ -105,6 +105,7 @@ namespace gui {
ItemStack& getStack();
const SlotLayout& getLayout() const;
int64_t getInventoryId() const;
static inline std::string EXCHANGE_SLOT_NAME = "exchange-slot";
};

View file

@ -209,6 +209,8 @@ static int p_get_inventory(UINode* node, lua::State* L) {
if (auto inventory = dynamic_cast<InventoryView*>(node)) {
auto inv = inventory->getInventory();
return lua::pushinteger(L, inv ? inv->getId() : 0);
} else if (auto slot = dynamic_cast<SlotView*>(node)) {
return lua::pushinteger(L, slot->getInventoryId());
}
return 0;
}