Mercurial > wow > inventory
view Classes/ItemData.class.lua @ 119:dc6f405c1a5d
Now resizing the mover frame based on text size.
addon.Locations table now uses location names as value, rather than random numbers.
Added proper Merchant restocking support. Please note this currently doesn?t take the bonus queue nor the min crafting queue options into account.
author | Zerotorescue |
---|---|
date | Sat, 15 Jan 2011 17:03:05 +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