WoW API: EquipmentManager:UnpackLocation

Revision as of 07:49, 22 September 2013 by Bear (talk | contribs)

WoW API < EquipmentManager:UnpackLocation

"I" iconThis function is implemented in Lua here FrameXML/EquipmentManager.lua.

Takes an integer location value as returned by GetEquipmentSetLocations and returns unpacked location info.

player, bank, bags, slot, bag = EquipmentManager_UnpackLocation(location)

Arguments

location
integer - This is the integer returned for a specific slot by GetEquipmentSetLocations

Returns

player, bank, bags, slot, bag
player
boolean - Is the item currently available to the player (either equipped, or in the player's bags)
bank
boolean - Is the item in the bank (only true if the item is in the bank, and the player has the bank frame open)
bags
boolean - Is the item in a bag (if bank is also true, then it is in a bank bag)
slot
integer - Which slot number is the item in, may be an inventory slot or bag slot (see notes)
bag
integer - Which bag is the item in (nil if bags is false)


Notes

If player or bank is true and bags is false, then slot is an inventory location - i.e. the item is either equipped in the given inventory slot or in the given bank slot.

If bags is true, then bag is a bag number and slot is the slot number of that bag where the item is located.


Example

local array = {}; -- It is always a good idea to use a reusable array if calling GetEquipmentSetLocations multiple times.
function FindMainHand(eqset) -- let eqset be a string equal to the name of a valid equipment set

    GetEquipmentSetLocations(eqset, array);
    local player, bank, bags, slot, bag = EquipmentManager_UnpackLocation(array[16]); -- 16 is the Main Hand weapon slot

    if (player and not bags) then
        print("The Main Hand is equipped in slot #", slot);

    elseif (player and bags) then
        print("The Main Hand is in bag #", bag, "in slot #", slot);

    elseif (bank and not bags) then
        print("The Main Hand is in bank slot #", slot);

    elseif (bank and bags) then
        print("The Main Hand is in bank bag #", bag, "in slot #", slot);

    else
        print("The Main Hand could not be found.");
    end
end