annotate Modules/Options.lua @ 19:67f4151d535c

Expanded the queue system to calculate what the new QA threshold would be and to consider buying items from vendors. It also sets a threshold so that items with less than 5g profit will not be crafted. I will turn this into an option later.
author Asa Ayers <Asa.Ayers@Gmail.com>
date Sun, 04 Jul 2010 07:24:12 -0700
parents c7b3585c73df
children ff9a698caebc
rev   line source
Asa@3 1 local addonName, addonTable = ...;
Asa@3 2 local addon = _G[addonName]
Asa@3 3
Asa@3 4 local utils = addonTable.utils
Asa@3 5
Asa@13 6 local currentFaction = UnitFactionGroup("player")
Asa@13 7 local AHFactions = { currentFaction, 'Neutral' }
Asa@13 8
Asa@3 9 local options = {
Asa@13 10 handler = addon,
Asa@3 11 name = "ItemAuditor",
Asa@3 12 type = 'group',
Asa@3 13 args = {
Asa@13 14 prices = {
Asa@13 15 name = "Prices",
Asa@13 16 desc = "Control how your minimum price is calculated.",
Asa@13 17 type = 'group',
Asa@13 18 args = {
Asa@13 19 auction_house = {
Asa@13 20 type = "select",
Asa@13 21 name = "Auction House",
Asa@13 22 desc = "",
Asa@13 23 values = { currentFaction, 'Neutral' },
Asa@13 24 get = 'GetAH',
Asa@13 25 set = 'SetAH',
Asa@13 26 },
Asa@13 27 },
Asa@3 28 },
Asa@13 29
Asa@13 30
Asa@13 31 messages = {
Asa@13 32 name = "Messages",
Asa@13 33 desc = "Control which messages display in your chat window.",
Asa@13 34 type = 'group',
Asa@13 35 args = {
Asa@13 36 dbg = {
Asa@13 37 type = "toggle",
Asa@13 38 name = "Debug",
Asa@13 39 desc = "Toggles debug messages in chat",
Asa@13 40 get = "GetDebug",
Asa@13 41 set = "SetDebug",
Asa@16 42 order = 100,
Asa@16 43 },
Asa@16 44 item_cost = {
Asa@16 45 type = "toggle",
Asa@16 46 name = "Item Cost",
Asa@16 47 desc = "Shows a message every time an item's cost changes",
Asa@16 48 get = function() return ItemAuditor.db.profile.messages.cost_updates end,
Asa@16 49 set = function(info, value) ItemAuditor.db.profile.messages.cost_updates = value end,
Asa@13 50 order = 0,
Asa@13 51 },
Asa@13 52 },
Asa@3 53 },
Asa@13 54
Asa@13 55 qa_options = {
Asa@13 56 name = "QA Options",
Asa@13 57 desc = "Control how ItemAuditor integrates with QuickAuctions",
Asa@13 58 type = 'group',
Asa@13 59 -- disabled = (not addon.QA_compatibile),
Asa@13 60 disabled = function() return not ItemAuditor:IsQACompatible() end,
Asa@13 61 args = {
Asa@13 62 toggle_qa = {
Asa@13 63 type = "toggle",
Asa@13 64 name = "Enable Quick Auctions",
Asa@13 65 desc = "This will enable or disable Quick Auctions integration",
Asa@13 66 get = "IsQAEnabled",
Asa@13 67 set = "SetQAEnabled",
Asa@13 68 order = 0,
Asa@13 69 },
Asa@13 70 --[[
Asa@13 71 add_mail = {
Asa@13 72 type = "toggle",
Asa@13 73 name = "Add mail cost to QA Threshold",
Asa@13 74 get = "IsQAEnabled",
Asa@13 75 set = "SetQAEnabled",
Asa@13 76 order = 1,
Asa@13 77 },
Asa@13 78 ]]
Asa@13 79 refresh_qa = {
Asa@13 80 type = "execute",
Asa@13 81 name = "Refresh QA Thresholds",
Asa@13 82 desc = "Resets all Quick Auctions thresholds",
Asa@13 83 func = "RefreshQAGroups",
Asa@13 84 disabled = 'IsQADisabled',
Asa@13 85 },
Asa@13 86 }
Asa@12 87 },
Asa@3 88 options = {
Asa@3 89 type = "execute",
Asa@3 90 name = "options",
Asa@3 91 desc = "Show Blizzard's options GUI",
Asa@3 92 func = "ShowOptionsGUI",
Asa@3 93 guiHidden = true,
Asa@3 94 },
Asa@18 95 queue = {
Asa@18 96 type = "execute",
Asa@18 97 name = "queue",
Asa@18 98 desc = "Queue",
Asa@18 99 func = "Queue",
Asa@18 100 guiHidden = true,
Asa@18 101 },
Asa@18 102
Asa@18 103
Asa@3 104 },
Asa@3 105 }
Asa@3 106
Asa@3 107 function addon:RegisterOptions()
Asa@3 108 self.optionsFrame = LibStub("AceConfigDialog-3.0"):AddToBlizOptions("ItemAuditor", "ItemAuditor")
Asa@3 109 LibStub("AceConfig-3.0"):RegisterOptionsTable("ItemAuditor", options, {"ia"})
Asa@3 110 end
Asa@3 111
Asa@7 112 local function pairsByKeys (t, f)
Asa@7 113 local a = {}
Asa@7 114 for n in pairs(t) do table.insert(a, n) end
Asa@7 115 table.sort(a, f)
Asa@7 116 local i = 0 -- iterator variable
Asa@7 117 local iter = function () -- iterator function
Asa@7 118 i = i + 1
Asa@7 119 if a[i] == nil then return nil
Asa@7 120 else return a[i], t[a[i]]
Asa@7 121 end
Asa@7 122 end
Asa@7 123 return iter
Asa@7 124 end
Asa@7 125
Asa@13 126 function addon:GetAH()
Asa@13 127 return ItemAuditor.db.char.ah
Asa@13 128 end
Asa@13 129
Asa@13 130 function addon:SetAH(info, value)
Asa@13 131 ItemAuditor.db.char.ah = value
Asa@13 132 end
Asa@13 133
Asa@13 134 function addon:GetAHCut()
Asa@13 135 if ItemAuditor.db.char.ah == 1 then
Asa@13 136 return 0.05
Asa@13 137 end
Asa@13 138 return 0.15
Asa@13 139 end
Asa@13 140
Asa@13 141 function addon:GetAHFaction()
Asa@13 142 return AHFactions[ItemAuditor.db.char.ah]
Asa@13 143 end
Asa@13 144
Asa@3 145 function addon:DumpInfo()
Asa@7 146 for itemName, value in pairsByKeys(self.db.factionrealm.item_account) do
Asa@15 147 self:Print(itemName .. ": " .. self:FormatMoney(value))
Asa@7 148 end
Asa@3 149 end
Asa@3 150
Asa@7 151
Asa@3 152 function addon:ShowOptionsGUI()
Asa@3 153 InterfaceOptionsFrame_OpenToCategory(self.optionsFrame)
Asa@3 154 end
Asa@3 155
Asa@3 156