annotate Modules/Api.lua @ 78:88a42e00b866 release 2010-08-01

Fixed a problem with how prices were being pulled from Auctioneer.
author Asa Ayers <Asa.Ayers@Gmail.com>
date Sun, 01 Aug 2010 22:02:12 -0700
parents cd00b87fad31
children 63823b6b5e28
rev   line source
Asa@64 1 local ItemAuditor = select(2, ...)
Asa@64 2
Asa@64 3 local Crafting = ItemAuditor:GetModule("Crafting")
Asa@64 4
Asa@64 5 IAapi = {}
Asa@64 6
Asa@64 7 --[[
Asa@64 8 You can register a callback here to influence which items will get crafted and how many.
Asa@64 9 The decider function needs to return the number of items the user should have in their
Asa@64 10 inventory. If the number owned is less than the highest decided number, that item will
Asa@64 11 be queued to be crafted unless any decider vetos the item.
Asa@64 12
Asa@64 13 There is no way to unregister your decider but it can be overwritten with a function that simply returns 0.
Asa@64 14
Asa@64 15 Please make sure your decider runs as fast as possible, It will be called at least once
Asa@64 16 for every tradeskill being considered.
Asa@64 17
Asa@64 18 I find the (non) word "Decider" to be amusing, so I used it.
Asa@64 19
Asa@64 20 ItemAuditor will veto any item that costs more to create than it will sell for, It will also
Asa@64 21 queue one of every item that is profitable. If you simply wanted to increase that to 5 of every
Asa@64 22 profitable item you could use this:
Asa@64 23
Asa@64 24 IAapi.RegisterCraftingDecider('Five', function() return 5 end)
Asa@64 25 ]]
Asa@73 26 function IAapi.RegisterCraftingDecider(name, decider, optionsTable)
Asa@70 27 assert(type(name) == 'string', 'name must be a string to identify your addon. This will be displayed to the user.')
Asa@73 28 assert(type(decider) == 'function', 'decider must be a function.')
Asa@73 29 assert(optionsTable == nil or type(optionsTable) == 'table')
Asa@73 30 Crafting.RegisterCraftingDecider(name, decider, optionsTable)
Asa@64 31 end
Asa@64 32
Asa@70 33 function IAapi.RegisterQueueDestination(name, destination)
Asa@70 34 assert(type(name) == 'string', 'name must be a string to identify your addon. This will be displayed to the user.')
Asa@70 35 assert(type(destination) == 'function', 'destination must be a function that will be called for each item when exporting the queue.')
Asa@70 36
Asa@70 37 Crafting.RegisterQueueDestination(name, destination)
Asa@70 38 end
Asa@64 39
Asa@70 40 function IAapi.UnRegisterQueueDestination(name)
Asa@70 41 assert(type(name) == 'string', 'name must be the string that was used to register your addon.')
Asa@70 42 Crafting.UnRegisterQueueDestination(name)
Asa@70 43 end
Asa@70 44
Asa@70 45 --@debug@
Asa@70 46 -- This is here so I have a second option in the menu and to serve as an example.
Asa@70 47 local function testDestination(data)
Asa@70 48 ItemAuditor:Print('queue: '..data.recipeLink)
Asa@70 49 end
Asa@70 50
Asa@70 51 IAapi.RegisterQueueDestination('Echo', testDestination)
Asa@70 52 --@end-debug@