Mercurial > wow > inventory
comparison Core.lua @ 50:9607b3251655
Added OnSelect event support to both item count as crafting addons.
Added basic local item count data support.
Fixed "Show in summary when below" option to allow a value of up to 10.000%.
Summary should now respect virtual groups.
| author | Zerotorescue |
|---|---|
| date | Sat, 18 Dec 2010 00:22:06 +0100 |
| parents | 87d68ccf0a8f |
| children | 03c0610e9c1e |
comparison
equal
deleted
inserted
replaced
| 49:51d85a84b40c | 50:9607b3251655 |
|---|---|
| 647 end | 647 end |
| 648 | 648 |
| 649 return temp; | 649 return temp; |
| 650 end, | 650 end, |
| 651 get = function() return self.db.global.defaults.itemCountAddon; end, | 651 get = function() return self.db.global.defaults.itemCountAddon; end, |
| 652 set = function(i, v) self.db.global.defaults.itemCountAddon = v; end, | 652 set = function(i, v) |
| 653 self.db.global.defaults.itemCountAddon = v; | |
| 654 | |
| 655 if self.supportedAddons.itemCount[v].OnSelect then | |
| 656 self.supportedAddons.itemCount[v].OnSelect(); | |
| 657 end | |
| 658 end, | |
| 653 }, | 659 }, |
| 654 craftingAddon = { | 660 craftingAddon = { |
| 655 order = 30, | 661 order = 30, |
| 656 type = "select", | 662 type = "select", |
| 657 name = "Prefered crafting addon", | 663 name = "Prefered crafting addon", |
| 663 end | 669 end |
| 664 | 670 |
| 665 return temp; | 671 return temp; |
| 666 end, | 672 end, |
| 667 get = function() return self.db.global.defaults.craftingAddon; end, | 673 get = function() return self.db.global.defaults.craftingAddon; end, |
| 668 set = function(i, v) self.db.global.defaults.craftingAddon = v; end, | 674 set = function(i, v) |
| 669 }, | 675 self.db.global.defaults.craftingAddon = v; |
| 670 --[[localItemData = { | 676 |
| 677 if self.supportedAddons.crafting[v].OnSelect then | |
| 678 self.supportedAddons.crafting[v].OnSelect(); | |
| 679 end | |
| 680 end, | |
| 681 }, | |
| 682 localItemData = { | |
| 671 order = 40, | 683 order = 40, |
| 672 type = "multiselect", | 684 type = "multiselect", |
| 673 name = "Include in local item data", | 685 name = "Include in local item data", |
| 674 desc = "Select which data should be included in the local item data.", | 686 desc = "Select which data should be included in the local item data.", |
| 675 values = { | 687 values = { |
| 679 ["Mailbox"] = "Mailbox", | 691 ["Mailbox"] = "Mailbox", |
| 680 }, | 692 }, |
| 681 get = function(i, v) return self.db.global.defaults.localItemData and self.db.global.defaults.localItemData[v]; end, | 693 get = function(i, v) return self.db.global.defaults.localItemData and self.db.global.defaults.localItemData[v]; end, |
| 682 set = function(i, v, e) self.db.global.defaults.localItemData[v] = e or nil; end, | 694 set = function(i, v, e) self.db.global.defaults.localItemData[v] = e or nil; end, |
| 683 --dialogControl = "Dropdown", -- this is not standard, normal multiselect control gives us a list of all chars with toggle-boxes. UGLY! We want a multiselect-box instead. | 695 --dialogControl = "Dropdown", -- this is not standard, normal multiselect control gives us a list of all chars with toggle-boxes. UGLY! We want a multiselect-box instead. |
| 684 },]] | 696 }, |
| 685 }, | 697 }, |
| 686 }, | 698 }, |
| 687 minimumStock = { | 699 minimumStock = { |
| 688 order = 10, | 700 order = 10, |
| 689 type = "group", | 701 type = "group", |
| 714 }, | 726 }, |
| 715 summaryThresholdShow = { | 727 summaryThresholdShow = { |
| 716 order = 20, | 728 order = 20, |
| 717 type = "range", | 729 type = "range", |
| 718 min = 0, | 730 min = 0, |
| 719 max = 100, | 731 max = 10, |
| 720 softMax = 10, | 732 softMax = 100, |
| 721 step = 0.05, | 733 step = 0.05, |
| 722 isPercent = true, | 734 isPercent = true, |
| 723 name = "Show in summary when below", | 735 name = "Show in summary when below", |
| 724 desc = "Show items in the summary when below this percentage of the minimum stock.\n\nYou can manually enter a value between 1.000% and 10.000% in the edit box if the provided range is insufficient.", | 736 desc = "Show items in the summary when below this percentage of the minimum stock.\n\nYou can manually enter a value between 1.000% and 10.000% in the edit box if the provided range is insufficient.", |
| 725 get = function() return self.db.global.defaults.summaryThresholdShow; end, | 737 get = function() return self.db.global.defaults.summaryThresholdShow; end, |
| 1278 temp[name] = name; | 1290 temp[name] = name; |
| 1279 end | 1291 end |
| 1280 | 1292 |
| 1281 return temp; | 1293 return temp; |
| 1282 end, | 1294 end, |
| 1295 set = function(info, value) | |
| 1296 local groupName = groupIdToName[info[2]]; | |
| 1297 local optionName = info[#info]; | |
| 1298 | |
| 1299 addon.db.global.groups[groupName][optionName] = value ~= "" and value; | |
| 1300 | |
| 1301 if addon.supportedAddons.itemCount[value].OnSelect then | |
| 1302 addon.supportedAddons.itemCount[value].OnSelect(); | |
| 1303 end | |
| 1304 end, | |
| 1283 arg = "overrideItemCountAddon", | 1305 arg = "overrideItemCountAddon", |
| 1284 }, | 1306 }, |
| 1285 overrideCraftingAddon = { | 1307 overrideCraftingAddon = { |
| 1286 order = 29, | 1308 order = 29, |
| 1287 type = "toggle", | 1309 type = "toggle", |
| 1300 temp[name] = name; | 1322 temp[name] = name; |
| 1301 end | 1323 end |
| 1302 | 1324 |
| 1303 return temp; | 1325 return temp; |
| 1304 end, | 1326 end, |
| 1327 set = function(info, value) | |
| 1328 local groupName = groupIdToName[info[2]]; | |
| 1329 local optionName = info[#info]; | |
| 1330 | |
| 1331 addon.db.global.groups[groupName][optionName] = value ~= "" and value; | |
| 1332 | |
| 1333 if addon.supportedAddons.crafting[value].OnSelect then | |
| 1334 addon.supportedAddons.crafting[value].OnSelect(); | |
| 1335 end | |
| 1336 end, | |
| 1305 arg = "overrideCraftingAddon", | 1337 arg = "overrideCraftingAddon", |
| 1306 }, | 1338 }, |
| 1307 --[[overrideLocalItemData = { | 1339 overrideLocalItemData = { |
| 1308 order = 39, | 1340 order = 39, |
| 1309 type = "toggle", | 1341 type = "toggle", |
| 1310 name = "Override local item data", | 1342 name = "Override local item data", |
| 1311 desc = "Allows you to override the local item data setting for this group.", | 1343 desc = "Allows you to override the local item data setting for this group.", |
| 1312 arg = "localItemData", | 1344 arg = "localItemData", |
| 1323 ["Mailbox"] = "Mailbox", | 1355 ["Mailbox"] = "Mailbox", |
| 1324 }, | 1356 }, |
| 1325 get = GetMultiOption, | 1357 get = GetMultiOption, |
| 1326 --dialogControl = "Dropdown", -- this is not standard, normal multiselect control gives us a list of all chars with toggle-boxes. UGLY! We want a multiselect-box instead. | 1358 --dialogControl = "Dropdown", -- this is not standard, normal multiselect control gives us a list of all chars with toggle-boxes. UGLY! We want a multiselect-box instead. |
| 1327 arg = "overrideLocalItemData", | 1359 arg = "overrideLocalItemData", |
| 1328 },]] | 1360 }, |
| 1329 virtualGroup = { | 1361 virtualGroup = { |
| 1330 order = 50, | 1362 order = 50, |
| 1331 type = "select", | 1363 type = "select", |
| 1332 name = "Use virtual group settings", | 1364 name = "Use virtual group settings", |
| 1333 desc = "Use the settings from a virtual group before using the general defaults.\n\n|cffff9933This is an advanced option, you will probably not need it unless you manage a lot of groups.|r\n\n|cfffed000Off|r: Use the overridden options in this group and then the defaults.\n\n|cfffed000On|r: Use the overridden options in this group, then the ones in the selected virtual group and then the defaults.", | 1365 desc = "Use the settings from a virtual group before using the general defaults.\n\n|cffff9933This is an advanced option, you will probably not need it unless you manage a lot of groups.|r\n\n|cfffed000Off|r: Use the overridden options in this group and then the defaults.\n\n|cfffed000On|r: Use the overridden options in this group, then the ones in the selected virtual group and then the defaults.", |
| 1401 }, | 1433 }, |
| 1402 summaryThresholdShow = { | 1434 summaryThresholdShow = { |
| 1403 order = 20, | 1435 order = 20, |
| 1404 type = "range", | 1436 type = "range", |
| 1405 min = 0, | 1437 min = 0, |
| 1406 max = 100, | 1438 max = 10, |
| 1407 softMax = 10, | 1439 softMax = 100, |
| 1408 step = 0.05, | 1440 step = 0.05, |
| 1409 isPercent = true, | 1441 isPercent = true, |
| 1410 name = "Show in summary when below", | 1442 name = "Show in summary when below", |
| 1411 desc = "Show items in the summary when below the specified percentage of the minimum stock.\n\nYou can manually enter a value between 1.000% and 10.000% in the edit box if the provided range is insufficient.", | 1443 desc = "Show items in the summary when below the specified percentage of the minimum stock.\n\nYou can manually enter a value between 1.000% and 10.000% in the edit box if the provided range is insufficient.", |
| 1412 arg = "overrideSummaryThresholdShow", | 1444 arg = "overrideSummaryThresholdShow", |
| 2190 local itemCountAddon = self:GetItemCountAddon(group); | 2222 local itemCountAddon = self:GetItemCountAddon(group); |
| 2191 | 2223 |
| 2192 return (itemCountAddon and itemCountAddon.GetTotalCount(itemId)) or -1; | 2224 return (itemCountAddon and itemCountAddon.GetTotalCount(itemId)) or -1; |
| 2193 end | 2225 end |
| 2194 | 2226 |
| 2227 function addon:GetLocalItemCount(itemId, group) | |
| 2228 itemId = tonumber(itemId); | |
| 2229 | |
| 2230 if not itemId then return; end | |
| 2231 | |
| 2232 local itemCountAddon = self:GetItemCountAddon(group); | |
| 2233 | |
| 2234 local currentItemCount; | |
| 2235 | |
| 2236 if itemCountAddon and itemCountAddon.GetCharacterCount then | |
| 2237 local bag, bank, auctionHouse, mail = itemCountAddon.GetCharacterCount(itemId); | |
| 2238 | |
| 2239 local selectedLocalItemCountSources = self:GetOptionByKey(group, "localItemData"); | |
| 2240 | |
| 2241 currentItemCount = 0; | |
| 2242 if selectedLocalItemCountSources["Bag"] then | |
| 2243 currentItemCount = currentItemCount + bag; | |
| 2244 end | |
| 2245 if selectedLocalItemCountSources["Bank"] then | |
| 2246 currentItemCount = currentItemCount + bank; | |
| 2247 end | |
| 2248 if selectedLocalItemCountSources["Auction House"] then | |
| 2249 currentItemCount = currentItemCount + auctionHouse; | |
| 2250 end | |
| 2251 if selectedLocalItemCountSources["Mailbox"] then | |
| 2252 currentItemCount = currentItemCount + mail; | |
| 2253 end | |
| 2254 end | |
| 2255 | |
| 2256 return currentItemCount or -1; | |
| 2257 end | |
| 2258 | |
| 2195 function addon:GetAuctionValue(itemLink, group) | 2259 function addon:GetAuctionValue(itemLink, group) |
| 2196 if not itemLink then return -5; end | 2260 if not itemLink then return -5; end |
| 2197 | 2261 |
| 2198 local selectedExternalAddon = self:GetOptionByKey(group, "auctionPricingAddon"); | 2262 local selectedExternalAddon = self:GetOptionByKey(group, "auctionPricingAddon"); |
| 2199 | 2263 |
| 2224 IsEnabled = enabled, | 2288 IsEnabled = enabled, |
| 2225 OnSelect = onSelect, | 2289 OnSelect = onSelect, |
| 2226 }; | 2290 }; |
| 2227 end | 2291 end |
| 2228 | 2292 |
| 2229 function IMRegisterItemCountAddon(name, getTotal, getCharacter, enabled) | 2293 function IMRegisterItemCountAddon(name, getTotal, getCharacter, enabled, onSelect) |
| 2230 addon.supportedAddons.itemCount[name] = { | 2294 addon.supportedAddons.itemCount[name] = { |
| 2231 GetTotalCount = getTotal, | 2295 GetTotalCount = getTotal, |
| 2232 GetCharacterCount = getCharacter, | 2296 GetCharacterCount = getCharacter, |
| 2233 IsEnabled = enabled, | 2297 IsEnabled = enabled, |
| 2298 OnSelect = onSelect, | |
| 2234 }; | 2299 }; |
| 2235 end | 2300 end |
| 2236 | 2301 |
| 2237 function IMRegisterCraftingAddon(name, queue, enabled) | 2302 function IMRegisterCraftingAddon(name, queue, enabled, onSelect) |
| 2238 addon.supportedAddons.crafting[name] = { | 2303 addon.supportedAddons.crafting[name] = { |
| 2239 Queue = queue, | 2304 Queue = queue, |
| 2240 IsEnabled = enabled, | 2305 IsEnabled = enabled, |
| 2306 OnSelect = onSelect, | |
| 2241 }; | 2307 }; |
| 2242 end | 2308 end |
| 2243 | 2309 |
| 2244 | 2310 |
| 2245 | 2311 |
