Mercurial > wow > inventory
annotate Classes/ItemData.class.lua @ 249:fa21e06ca268 tip
Added tag v1.0.1-ALPHA for changeset 50aece0904ec
author | Zerotorescue |
---|---|
date | Tue, 08 Mar 2011 12:07:24 +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 |