Mercurial > wow > inventory
annotate Classes/ItemData.class.lua @ 245:6416c15d6691 v1.0.0
Changelog update.
| author | Zerotorescue |
|---|---|
| date | Fri, 25 Feb 2011 17:44:21 +0100 |
| parents | 3bec0ea44607 |
| children |
| rev | line source |
|---|---|
| Zerotorescue@74 | 1 local addon = select(2, ...); |
| Zerotorescue@74 | 2 |
| Zerotorescue@74 | 3 -- Define the class |
| Zerotorescue@74 | 4 |
| Zerotorescue@74 | 5 addon.ItemData = {}; |
| Zerotorescue@74 | 6 addon.ItemData.__index = addon.ItemData; |
| Zerotorescue@74 | 7 |
| Zerotorescue@74 | 8 -- Construct |
| Zerotorescue@74 | 9 function addon.ItemData:New(itemId) |
| Zerotorescue@74 | 10 local self = {}; |
| Zerotorescue@74 | 11 |
| Zerotorescue@74 | 12 setmetatable(self, addon.ItemData); |
| Zerotorescue@74 | 13 |
| Zerotorescue@74 | 14 local itemName, itemLink, itemRarity, _, _, _, _, _, _, itemTexture = GetItemInfo(itemId); |
| Zerotorescue@74 | 15 |
| Zerotorescue@74 | 16 -- Standard info everything needs |
| Zerotorescue@74 | 17 self.id = itemId; |
| Zerotorescue@74 | 18 self.name = itemName; |
| Zerotorescue@74 | 19 self.link = itemLink; |
| Zerotorescue@74 | 20 self.rarity = itemRarity; |
| Zerotorescue@74 | 21 self.icon = itemTexture; |
| Zerotorescue@74 | 22 |
| Zerotorescue@74 | 23 -- Detailed stuff |
| Zerotorescue@74 | 24 self.value = -3; |
| Zerotorescue@74 | 25 self.globalCount = -3; |
| Zerotorescue@74 | 26 self.localCount = -3; |
| Zerotorescue@74 | 27 self.set = {}; |
| Zerotorescue@74 | 28 |
| Zerotorescue@74 | 29 return self; |
| Zerotorescue@74 | 30 end |
| Zerotorescue@76 | 31 |
| Zerotorescue@76 | 32 function addon.ItemData:AddToGroup(groupName) |
| Zerotorescue@76 | 33 if self:InGroup() then |
| Zerotorescue@76 | 34 return false; |
| Zerotorescue@76 | 35 end |
| Zerotorescue@76 | 36 |
| Zerotorescue@76 | 37 if not addon.db.profile.groups[groupName].items then |
| Zerotorescue@76 | 38 addon.db.profile.groups[groupName].items = {}; |
| Zerotorescue@76 | 39 end |
| Zerotorescue@76 | 40 |
| Zerotorescue@76 | 41 -- Set this item |
| Zerotorescue@76 | 42 addon.db.profile.groups[groupName].items[self.id] = true; |
| Zerotorescue@76 | 43 |
| Zerotorescue@76 | 44 return true; |
| Zerotorescue@76 | 45 end |
| Zerotorescue@76 | 46 |
| Zerotorescue@76 | 47 -- To remove an item without groupname just do RemoveFromGroup(InGroup()), although providing the group name is a nice sanity check |
| Zerotorescue@76 | 48 function addon.ItemData:RemoveFromGroup(groupName) |
| Zerotorescue@76 | 49 if self:InGroup() ~= groupName then |
| Zerotorescue@76 | 50 return false; |
| Zerotorescue@76 | 51 end |
| Zerotorescue@76 | 52 |
| Zerotorescue@76 | 53 -- Unset this item |
| Zerotorescue@76 | 54 addon.db.profile.groups[groupName].items[self.id] = nil; |
| Zerotorescue@76 | 55 |
| Zerotorescue@76 | 56 return true; |
| Zerotorescue@76 | 57 end |
| Zerotorescue@76 | 58 |
| Zerotorescue@76 | 59 function addon.ItemData:InGroup() |
| Zerotorescue@76 | 60 -- Go through all groups to see if this item is already somewhere |
| Zerotorescue@76 | 61 for groupName, values in pairs(addon.db.profile.groups) do |
| Zerotorescue@76 | 62 if values.items and values.items[self.id] then |
| Zerotorescue@76 | 63 return groupName; |
| Zerotorescue@76 | 64 end |
| Zerotorescue@76 | 65 end |
| Zerotorescue@76 | 66 |
| Zerotorescue@76 | 67 return; |
| Zerotorescue@76 | 68 end |
