Mercurial > wow > inventory
view Classes/ItemData.class.lua @ 140:cd461a41723c
Now keeping track how many times an item has been queued into your favorite crafting addon.
author | Zerotorescue |
---|---|
date | Tue, 18 Jan 2011 11:34:48 +0100 |
parents | 3bec0ea44607 |
children |
line wrap: on
line source
local addon = select(2, ...); -- Define the class addon.ItemData = {}; addon.ItemData.__index = addon.ItemData; -- Construct function addon.ItemData:New(itemId) local self = {}; setmetatable(self, addon.ItemData); local itemName, itemLink, itemRarity, _, _, _, _, _, _, itemTexture = GetItemInfo(itemId); -- Standard info everything needs self.id = itemId; self.name = itemName; self.link = itemLink; self.rarity = itemRarity; self.icon = itemTexture; -- Detailed stuff self.value = -3; self.globalCount = -3; self.localCount = -3; self.set = {}; return self; end function addon.ItemData:AddToGroup(groupName) if self:InGroup() then return false; end if not addon.db.profile.groups[groupName].items then addon.db.profile.groups[groupName].items = {}; end -- Set this item addon.db.profile.groups[groupName].items[self.id] = true; return true; end -- To remove an item without groupname just do RemoveFromGroup(InGroup()), although providing the group name is a nice sanity check function addon.ItemData:RemoveFromGroup(groupName) if self:InGroup() ~= groupName then return false; end -- Unset this item addon.db.profile.groups[groupName].items[self.id] = nil; return true; end function addon.ItemData:InGroup() -- Go through all groups to see if this item is already somewhere for groupName, values in pairs(addon.db.profile.groups) do if values.items and values.items[self.id] then return groupName; end end return; end