WoW:BagId: Difference between revisions

103 bytes added ,  15 August 2023
m
Move page script moved page BagId to WoW:BagId without leaving a redirect
(Make 2.0 changes seem less new. Document constant names and how you SHOULD code.)
m (Move page script moved page BagId to WoW:BagId without leaving a redirect)
 
(5 intermediate revisions by 5 users not shown)
Line 1: Line 1:
{{wowapitype}}
{{wowapitype}}
While dealing with container and inventory items, many developers use a bag/slot couple and set bag to -1 for the case of an inventory item. But a problem occurs when the bank is opened (after BANKFRAME_OPENED event being fired) because the 28 slots of the bank count as actual container slots with -1 as bagID. In the same idea, items in the bank bags can be accessed via container item functions (like [[API GetContainerItemLink|GetContainerItemLink(bagID, slotID)]], [[API PickupContainerItem|PickupContainerItem(bagID, slotID)]]) with 5 as bagID for the first bank bag, 6 for the second ... until 11 for the seventh.
While dealing with container and inventory items, many developers use a bag/slot couple and set bag to -1 for the case of an inventory item. But a problem occurs when the bank is opened (after BANKFRAME_OPENED event being fired) because the 28 slots of the bank count as actual container slots with -1 as bagID. In the same idea, items in the bank bags can be accessed via container item functions (like [[API GetContainerItemLink|GetContainerItemLink(bagID, slotID)]], [[API PickupContainerItem|PickupContainerItem(bagID, slotID)]]) with 5 as bagID for the first bank bag, 6 for the second ... until 11 for the seventh.


Line 8: Line 7:
* 1 to 4 for the bags on the character (numbered right to left)
* 1 to 4 for the bags on the character (numbered right to left)
* -2 for the keyring
* -2 for the keyring
* -4 for the tokens bag


While the bank is opened:
While the bank is opened:
Line 19: Line 19:


* 0 is your backpack
* 0 is your backpack
* 1 -- NUM_BAG_SLOTS are your bags
* 1 to NUM_BAG_SLOTS are your bags
* KEYRING_CONTAINER is the keyring
* KEYRING_CONTAINER is the keyring


While the bank is opened:
While the bank is opened:
* BANK_CONTAINER is the bank window
* BANK_CONTAINER is the bank window
* NUM_BAG_SLOTS+1 -- NUM_BAG_SLOTS+NUM_BANKBAGSLOTS are your bank bags
* NUM_BAG_SLOTS+1 to NUM_BAG_SLOTS+NUM_BANKBAGSLOTS are your bank bags


This follows the way [[FrameXML]] works. Future changes to APIs are less likely to make your addon break if you follow it.
This follows the way [[FrameXML]] works. Future changes to APIs are less likely to make your addon break if you follow it. Many of these globals are defined in FrameXML\Constants.lua, if you're curious.
Anonymous user