savedvariables refactoring

This commit is contained in:
Manuel Simon Hirsig
2017-03-18 15:13:12 +01:00
parent ca9c897bf6
commit 31ec5cbb97
4 changed files with 36 additions and 32 deletions
-1
View File
@@ -2,7 +2,6 @@
## Author: shirsig ## Author: shirsig
## Title: aux ## Title: aux
## Notes: Auction House replacement ## Notes: Auction House replacement
## SavedVariablesPerCharacter: aux_tooltip_value, aux_tooltip_daily, aux_tooltip_merchant_buy, aux_tooltip_merchant_sell, aux_tooltip_disenchant_value, aux_tooltip_disenchant_distribution
## SavedVariables: aux, aux_scale, aux_post_bid, aux_ignore_owner, aux_items, aux_item_ids, aux_auctionable_items, aux_merchant_buy, aux_merchant_sell ## SavedVariables: aux, aux_scale, aux_post_bid, aux_ignore_owner, aux_items, aux_item_ids, aux_auctionable_items, aux_merchant_buy, aux_merchant_sell
libs\inspect.lua libs\inspect.lua
+25 -20
View File
@@ -3,6 +3,11 @@ module 'aux.core.slash'
include 'aux' include 'aux'
local cache = require 'aux.core.cache' local cache = require 'aux.core.cache'
local persistence = require 'aux.util.persistence'
function LOAD2()
tooltip_settings = persistence.player'tooltip'
end
_G.aux_ignore_owner = true _G.aux_ignore_owner = true
@@ -26,23 +31,23 @@ function SlashCmdList.AUX(command)
_G.aux_post_bid = not aux_post_bid _G.aux_post_bid = not aux_post_bid
print('post bid ' .. status(aux_post_bid)) print('post bid ' .. status(aux_post_bid))
elseif arguments[1] == 'tooltip' and arguments[2] == 'value' then elseif arguments[1] == 'tooltip' and arguments[2] == 'value' then
_G.aux_tooltip_value = not aux_tooltip_value tooltip_settings.value = not tooltip_settings.value
print('tooltip value ' .. status(aux_tooltip_value)) print('tooltip value ' .. status(tooltip_settings.value))
elseif arguments[1] == 'tooltip' and arguments[2] == 'daily' then elseif arguments[1] == 'tooltip' and arguments[2] == 'daily' then
_G.aux_tooltip_daily = not aux_tooltip_daily tooltip_settings.daily = not tooltip_settings.daily
print('tooltip daily ' .. status(aux_tooltip_daily)) print('tooltip daily ' .. status(tooltip_settings.daily))
elseif arguments[1] == 'tooltip' and arguments[2] == 'vendor' and arguments[3] == 'buy' then elseif arguments[1] == 'tooltip' and arguments[2] == 'merchant' and arguments[3] == 'buy' then
_G.aux_tooltip_merchant_buy = not aux_tooltip_merchant_buy tooltip_settings.merchant_buy = not tooltip_settings.merchant_buy
print('tooltip vendor buy ' .. status(aux_tooltip_merchant_buy)) print('tooltip merchant buy ' .. status(tooltip_settings.merchant_buy))
elseif arguments[1] == 'tooltip' and arguments[2] == 'vendor' and arguments[3] == 'sell' then elseif arguments[1] == 'tooltip' and arguments[2] == 'merchant' and arguments[3] == 'sell' then
_G.aux_tooltip_merchant_sell = not aux_tooltip_merchant_sell tooltip_settings.merchant_sell = not tooltip_settings.merchant_sell
print('tooltip vendor sell ' .. status(aux_tooltip_merchant_sell)) print('tooltip merchant sell ' .. status(tooltip_settings.merchant_sell))
elseif arguments[1] == 'tooltip' and arguments[2] == 'disenchant' and arguments[3] == 'value' then elseif arguments[1] == 'tooltip' and arguments[2] == 'disenchant' and arguments[3] == 'value' then
_G.aux_tooltip_disenchant_value = not aux_tooltip_disenchant_value tooltip_settings.disenchant_value = not tooltip_settings.disenchant_value
print('tooltip disenchant value ' .. status(aux_tooltip_disenchant_value)) print('tooltip disenchant value ' .. status(tooltip_settings.disenchant_value))
elseif arguments[1] == 'tooltip' and arguments[2] == 'disenchant' and arguments[3] == 'distribution' then elseif arguments[1] == 'tooltip' and arguments[2] == 'disenchant' and arguments[3] == 'distribution' then
_G.aux_tooltip_disenchant_distribution = not aux_tooltip_disenchant_distribution tooltip_settings.disenchant_distribution = not tooltip_settings.disenchant_distribution
print('tooltip disenchant distribution ' .. status(aux_tooltip_disenchant_distribution)) print('tooltip disenchant distribution ' .. status(tooltip_settings.disenchant_distribution))
elseif arguments[1] == 'clear' and arguments[2] == 'item' and arguments[3] == 'cache' then elseif arguments[1] == 'clear' and arguments[2] == 'item' and arguments[3] == 'cache' then
_G.aux_items = {} _G.aux_items = {}
_G.aux_item_ids = {} _G.aux_item_ids = {}
@@ -55,12 +60,12 @@ function SlashCmdList.AUX(command)
print('- scale [' .. color.blue(aux_scale) .. ']') print('- scale [' .. color.blue(aux_scale) .. ']')
print('- ignore owner [' .. status(aux_ignore_owner) .. ']') print('- ignore owner [' .. status(aux_ignore_owner) .. ']')
print('- post bid [' .. status(aux_post_bid) .. ']') print('- post bid [' .. status(aux_post_bid) .. ']')
print('- tooltip value [' .. status(aux_tooltip_value) .. ']') print('- tooltip value [' .. status(tooltip_settings.value) .. ']')
print('- tooltip daily [' .. status(aux_tooltip_daily) .. ']') print('- tooltip daily [' .. status(tooltip_settings.daily) .. ']')
print('- tooltip vendor buy [' .. status(aux_tooltip_merchant_buy) .. ']') print('- tooltip merchant buy [' .. status(tooltip_settings.merchant_buy) .. ']')
print('- tooltip vendor sell [' .. status(aux_tooltip_merchant_sell) .. ']') print('- tooltip merchant sell [' .. status(tooltip_settings.merchant_sell) .. ']')
print('- tooltip disenchant value [' .. status(aux_tooltip_disenchant_value) .. ']') print('- tooltip disenchant value [' .. status(tooltip_settings.disenchant_value) .. ']')
print('- tooltip disenchant distribution [' .. status(aux_tooltip_disenchant_distribution) .. ']') print('- tooltip disenchant distribution [' .. status(tooltip_settings.disenchant_distribution) .. ']')
print('- clear item cache') print('- clear item cache')
print('- populate wdb') print('- populate wdb')
end end
+9 -9
View File
@@ -6,17 +6,17 @@ include 'aux'
local info = require 'aux.util.info' local info = require 'aux.util.info'
local money = require 'aux.util.money' local money = require 'aux.util.money'
local cache = require 'aux.core.cache' local cache = require 'aux.core.cache'
local persistence = require 'aux.util.persistence'
local disenchant = require 'aux.core.disenchant' local disenchant = require 'aux.core.disenchant'
local history = require 'aux.core.history' local history = require 'aux.core.history'
local auction_listing = require 'aux.gui.auction_listing' local auction_listing = require 'aux.gui.auction_listing'
local UNKNOWN = GRAY_FONT_COLOR_CODE .. '?' .. FONT_COLOR_CODE_CLOSE local UNKNOWN = GRAY_FONT_COLOR_CODE .. '?' .. FONT_COLOR_CODE_CLOSE
_G.aux_tooltip_value = true
local game_tooltip_hooks, game_tooltip_money = {}, 0 local game_tooltip_hooks, game_tooltip_money = {}, 0
function LOAD() function LOAD()
settings = persistence.player('tooltip', {value=true})
do do
local inside_hook = false local inside_hook = false
for name, f in game_tooltip_hooks do for name, f in game_tooltip_hooks do
@@ -30,7 +30,7 @@ function LOAD()
return ret(tmp) return ret(tmp)
end) end)
end end
local orig = GameTooltip:GetScript('OnTooltipAddMoney') local orig = GameTooltip:GetScript'OnTooltipAddMoney'
GameTooltip:SetScript('OnTooltipAddMoney', vararg-function(arg) GameTooltip:SetScript('OnTooltipAddMoney', vararg-function(arg)
if inside_hook then if inside_hook then
game_tooltip_money = arg1 game_tooltip_money = arg1
@@ -59,7 +59,7 @@ function M.extend_tooltip(tooltip, link, quantity)
if item_info then if item_info then
local distribution = disenchant.distribution(item_info.slot, item_info.quality, item_info.level) local distribution = disenchant.distribution(item_info.slot, item_info.quality, item_info.level)
if getn(distribution) > 0 then if getn(distribution) > 0 then
if aux_tooltip_disenchant_distribution then if settings.disenchant_distribution then
tooltip:AddLine('Disenchants into:', color.tooltip.disenchant.distribution()) tooltip:AddLine('Disenchants into:', color.tooltip.disenchant.distribution())
sort(distribution, function(a,b) return a.probability > b.probability end) sort(distribution, function(a,b) return a.probability > b.probability end)
for i = 1, getn(distribution) do for i = 1, getn(distribution) do
@@ -67,19 +67,19 @@ function M.extend_tooltip(tooltip, link, quantity)
tooltip:AddLine(format(' %s%% %s (%s-%s)', event.probability * 100, info.display_name(event.item_id, true) or 'item:' .. event.item_id, event.min_quantity, event.max_quantity), color.tooltip.disenchant.distribution()) tooltip:AddLine(format(' %s%% %s (%s-%s)', event.probability * 100, info.display_name(event.item_id, true) or 'item:' .. event.item_id, event.min_quantity, event.max_quantity), color.tooltip.disenchant.distribution())
end end
end end
if aux_tooltip_disenchant_value then if settings.disenchant_value then
local disenchant_value = disenchant.value(item_info.slot, item_info.quality, item_info.level) local disenchant_value = disenchant.value(item_info.slot, item_info.quality, item_info.level)
tooltip:AddLine('Disenchant: ' .. (disenchant_value and money.to_string2(disenchant_value) or UNKNOWN), color.tooltip.disenchant.value()) tooltip:AddLine('Disenchant: ' .. (disenchant_value and money.to_string2(disenchant_value) or UNKNOWN), color.tooltip.disenchant.value())
end end
end end
end end
if aux_tooltip_merchant_buy then if settings.merchant_buy then
local _, price, limited = cache.merchant_info(item_id) local _, price, limited = cache.merchant_info(item_id)
if price then if price then
tooltip:AddLine('Vendor Buy ' .. (limited and '(limited): ' or ': ') .. money.to_string2(price * quantity), color.tooltip.merchant()) tooltip:AddLine('Vendor Buy ' .. (limited and '(limited): ' or ': ') .. money.to_string2(price * quantity), color.tooltip.merchant())
end end
end end
if aux_tooltip_merchant_sell then if settings.merchant_sell then
local price = cache.merchant_info(item_id) local price = cache.merchant_info(item_id)
if price ~= 0 then if price ~= 0 then
tooltip:AddLine('Vendor: ' .. (price and money.to_string2(price * quantity) or UNKNOWN), color.tooltip.merchant()) tooltip:AddLine('Vendor: ' .. (price and money.to_string2(price * quantity) or UNKNOWN), color.tooltip.merchant())
@@ -89,10 +89,10 @@ function M.extend_tooltip(tooltip, link, quantity)
local item_key = (item_id or 0) .. ':' .. (suffix_id or 0) local item_key = (item_id or 0) .. ':' .. (suffix_id or 0)
local value = history.value(item_key) local value = history.value(item_key)
if auctionable then if auctionable then
if aux_tooltip_value then if settings.value then
tooltip:AddLine('Value: ' .. (value and money.to_string2(value * quantity) or UNKNOWN), color.tooltip.value()) tooltip:AddLine('Value: ' .. (value and money.to_string2(value * quantity) or UNKNOWN), color.tooltip.value())
end end
if aux_tooltip_daily then if settings.daily then
local market_value = history.market_value(item_key) local market_value = history.market_value(item_key)
tooltip:AddLine('Today: ' .. (market_value and money.to_string2(market_value * quantity) .. ' (' .. auction_listing.percentage_historical(round(market_value / value * 100)) .. ')' or UNKNOWN), color.tooltip.value()) tooltip:AddLine('Today: ' .. (market_value and money.to_string2(market_value * quantity) .. ' (' .. auction_listing.percentage_historical(round(market_value / value * 100)) .. ')' or UNKNOWN), color.tooltip.value())
end end
+2 -2
View File
@@ -34,9 +34,9 @@ do
end end
for scope in temp-S('player', 'faction', 'realm', 'account') do for scope in temp-S('player', 'faction', 'realm', 'account') do
local scope = scope local scope = scope
M[scope] = function(k) M[scope] = function(k, v)
if not cache[scope] then error('Cache not ready', 2) end if not cache[scope] then error('Cache not ready', 2) end
cache[scope][k] = cache[scope][k] or {} cache[scope][k] = cache[scope][k] or v or {}
return cache[scope][k] return cache[scope][k]
end end
end end