Mercurial > wow > inventory
view ItemData.class.lua @ 76:958aba5f3297
Moved the group functions to the item data class.
Added a new subgroup under the general config group called ?extra? which will provide features such as database character removal and perhaps guild selecting.
Added a new custom .Print function to the addon object which takes two parameters: (string)text, (Color)color. The latter can be retrieved from the addon.Colors var (e.g. addon.Colors.Red).
The ItemId parameter of the ItemData class constructor is now optional.
author | Zerotorescue |
---|---|
date | Sat, 25 Dec 2010 22:07:07 +0100 |
parents | 8d11fc88ecab |
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