annotate Classes/ItemData.class.lua @ 89:a12d22ef3f39
AceSerializer has been enabled again as it?s used when exporting/importing groups. All other unused libraries are now really removed.
Adjusted debug function to format only when a debug channel is available.
Fixed moving from guild banks, checking if items are locked is different then with banks.
Now unregistering the item locking event so it doesn?t continue to try to move every time an item is switched after the automated cycle has finished. (geeezus, this description is a total overkill)
Fixed item queueing.
Queue all when there?s a group without any items inside no longer crashes.
Removing cached container data after closing a container.
author |
Zerotorescue |
date |
Fri, 07 Jan 2011 22:19:03 +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
|