Mercurial > wow > itemauditor
comparison Modules/Crafting.lua @ 72:8e9beb8a0330
Added options to enable or disable crafting deciders.
author | Asa Ayers <Asa.Ayers@Gmail.com> |
---|---|
date | Wed, 28 Jul 2010 23:17:30 -0700 |
parents | 3930518cb8d9 |
children | 71de6e86a1a4 |
comparison
equal
deleted
inserted
replaced
71:aaf9a155995b | 72:8e9beb8a0330 |
---|---|
63 name = "Crafting Threshold", | 63 name = "Crafting Threshold", |
64 desc = "Don't create items that will make less than this amount of profit", | 64 desc = "Don't create items that will make less than this amount of profit", |
65 values = craftingThresholdsDisplay, | 65 values = craftingThresholdsDisplay, |
66 get = function() return ItemAuditor.db.char.crafting_threshold end, | 66 get = function() return ItemAuditor.db.char.crafting_threshold end, |
67 set = function(info, value) ItemAuditor.db.char.crafting_threshold = value end, | 67 set = function(info, value) ItemAuditor.db.char.crafting_threshold = value end, |
68 order = 11, | 68 order = 0, |
69 }, | 69 }, |
70 queue_destination = { | 70 queue_destination = { |
71 type = "select", | 71 type = "select", |
72 name = "Queue Destination", | 72 name = "Queue Destination", |
73 desc = "Select the addon who's queue you would like ItemAuditor to post to.", | 73 desc = "Select the addon who's queue you would like ItemAuditor to post to.", |
74 values = displayCraftingDestinations, | 74 values = displayCraftingDestinations, |
75 get = function() return select(2, Crafting.GetQueueDestination()) end, | 75 get = function() return select(2, Crafting.GetQueueDestination()) end, |
76 set = function(info, value) ItemAuditor.db.profile.queue_destination = value end, | 76 set = function(info, value) ItemAuditor.db.profile.queue_destination = value end, |
77 order = 11, | 77 order = 1, |
78 }, | 78 }, |
79 deciders = { | |
80 type="header", | |
81 name="Crafting Deciders", | |
82 order = 10, | |
83 }, | |
84 | |
79 }, | 85 }, |
80 } | 86 } |
81 | 87 |
82 local function displayMoney(rowFrame, cellFrame, data, cols, row, realrow, column, fShow, table, ...) | 88 local function displayMoney(rowFrame, cellFrame, data, cols, row, realrow, column, fShow, table, ...) |
83 if fShow == true then | 89 if fShow == true then |
259 self:CreateFrame('tab_crafting') | 265 self:CreateFrame('tab_crafting') |
260 end | 266 end |
261 | 267 |
262 local craftingDeciders = {} | 268 local craftingDeciders = {} |
263 | 269 |
264 function Crafting.RegisterCraftingDecider(name, decider) | 270 function Crafting.RegisterCraftingDecider(name, decider, options) |
265 craftingDeciders[name] = decider | 271 craftingDeciders[name] = decider |
272 | |
273 ItemAuditor.Options.args.crafting_options.args['chk'..name] = { | |
274 type = "toggle", | |
275 name = "Enable "..name, | |
276 get = function() return not ItemAuditor.db.profile.disabled_deciders[name] end, | |
277 set = function(info, value) ItemAuditor.db.profile.disabled_deciders[name] = not value end, | |
278 order = 11, | |
279 } | |
280 | |
281 if options then | |
282 ItemAuditor.Options.args.crafting_options.args['decider_'..name] = { | |
283 handler = {}, | |
284 name = name, | |
285 type = 'group', | |
286 args = options, | |
287 } | |
288 end | |
266 end | 289 end |
267 | 290 |
268 local lastWinnder = "" | 291 local lastWinnder = "" |
269 local function Decide(data) | 292 local function Decide(data) |
270 local newDecision = 0 | 293 local newDecision = 0 |
271 for name, decider in pairs(craftingDeciders) do | 294 for name, decider in pairs(craftingDeciders) do |
272 if name ~= lastWinner then | 295 if not ItemAuditor.db.profile.disabled_deciders[name] and name ~= lastWinner then |
273 newDecision = decider(data) | 296 newDecision = decider(data) |
274 if newDecision > data.queue then | 297 if newDecision > data.queue then |
275 data.queue = newDecision | 298 data.queue = newDecision |
276 lastWinner = name | 299 lastWinner = name |
277 return Decide(data) | 300 return Decide(data) |
292 if data.profit > 0 and data.profit > ItemAuditor:GetCraftingThreshold() then | 315 if data.profit > 0 and data.profit > ItemAuditor:GetCraftingThreshold() then |
293 return 1 | 316 return 1 |
294 end | 317 end |
295 return -1 | 318 return -1 |
296 end | 319 end |
320 | |
297 Crafting.RegisterCraftingDecider('Is Profitable', isProfitable) | 321 Crafting.RegisterCraftingDecider('Is Profitable', isProfitable) |
298 | 322 |
299 local function tableFilter(self, row, ...) | 323 local function tableFilter(self, row, ...) |
300 -- column 5 is how many should be crafted | 324 -- column 5 is how many should be crafted |
301 return row[5] > 0 | 325 return row[5] > 0 |