Inventory Helper
Overviewโ
The Inventory Helper module provides a comprehensive set of utility functions that aims to make your life easier when working with items. Below, we'll explore its functionality.
Including the Moduleโ
As with all other LUA modules developed by us, you will need to import the Inventory Helper module into your project. To do so, you can use the following lines:
---@type inventory_helper
local inventory_helper = require("common/utility/inventory_helper")
To access the module's functions, you must use :
instead of .
For example, this code is not correct:
---@type inventory_helper
local inventory_helper = require("common/utility/pvp_helper")
local function check_if_player(unit)
return inventory_helper.get_bank_slots(unit)
end
And this would be the corrected code:
---@type inventory_helper
local inventory_helper = require("common/utility/pvp_helper")
local function check_if_player(unit)
return inventory_helper:get_bank_slots(unit)
end
Functionsโ
get_all_slots() -> table<slot_data>
โ
Retrieves all item slots available to the player, including both character bags and bank slots.
- Returns:
slots
(table<slot_data>
): A table containing slot data for all items.
get_character_bag_slots() -> table<slot_data>
โ
Retrieves all item slots from the character's bags, excluding bank slots.
- Returns:
slots
(table<slot_data>
): A table containing slot data for items in character bags.
get_bank_slots() -> table<slot_data>
โ
Retrieves all item slots from the bank.
- Returns:
slots
(table<slot_data>
): A table containing slot data for items in the bank.
get_current_consumables_list() -> table<consumable_data>
โ
Retrieves a list of consumables currently in the player's inventory.
- Returns:
consumables
(table<consumable_data>
): A table containing data for each consumable item.
update_consumables_list()
โ
Updates the internal list of consumables. Call this function whenever the inventory changes to refresh the consumables list.
Example:
---@type inventory_helper
local inventory_helper = require("common/utility/pvp_helper")
-- After picking up new consumables
inventory_helper:update_consumables_list()
debug_print_consumables()
โ
Prints the current consumables list to the debug log for debugging purposes.
Data Structuresโ
Slot Data Structure ๐โ
The slot_data
class represents an item slot in the inventory or bank.
Fields:โ
item
(game_object
): The item object in this slot.global_slot
(number
): Global slot identifier.bag_id
(integer
): ID of the bag containing the item.bag_slot
(integer
): Slot number within the bag.stack_count
(integer
): Stack count of the item in this slot.
Example:
local slot = all_slots[1]
core.log("Item: " .. slot.item:get_name())
core.log("Stack Count: " .. tostring(slot.stack_count))
Consumable Data Structure ๐งชโ
The consumable_data
class represents a consumable item in the inventory.
Fields:โ
is_mana_potion
(boolean
): Whether the item is a mana potion.is_health_potion
(boolean
): Whether the item is a health potion.is_damage_bonus_potion
(boolean
): Whether the item is a damage bonus potion.item
(game_object
): The item object for the consumable.bag_id
(integer
): ID of the bag containing the item.bag_slot
(integer
): Slot number within the bag.stack_count
(integer
): Stack count of the item in this slot.
Examplesโ
Iterating Over All Inventory Slotsโ
---@type inventory_helper
local inventory = require("common/utility/inventory_helper")
local function print_all_items()
local all_slots = inventory:get_all_slots()
for _, slot in ipairs(all_slots) do
core.log("Item: " .. slot.item:get_name() .. " in slot: " .. tostring(slot.global_slot))
end
end
print_all_items()