vanilla-wow-addons – Rev 1

Subversion Repositories:
Rev:
local locals = KC_ITEMS_LOCALS.modules.sellvalue

KC_SellValue = KC_ItemsModule:new({
        type             = "sellvalue",
        name             = locals.name,
        desc             = locals.description,
        cmdOptions       = locals.chat,
        dependencies = {"common"},
        optPath          = {"sellvalue", "options"},
})

KC_Items:Register(KC_SellValue)

function KC_SellValue:Enable()
        self:RegisterEvent("MERCHANT_SHOW", "MerchantOpen")
        if (self.app.tooltip) then
                self.app.tooltip:RegisterFunc(self, "Tooltip")
        end
end

function KC_SellValue:Disable()
        KC_ItemsModule.Disable(self)
        if (self.app.tooltip) then
                self.app.tooltip:UnregisterFunc(self, "Tooltip")
        end
end

function KC_SellValue:MerchantOpen()
        self:GetSellPrices();
        self:GetBuyPrices();
end

function KC_SellValue:GetSellPrices()
        self:Hook("SetTooltipMoney")
        self._itemPrice = nil

        for bag = 0, 4 do
                for slot = 1, GetContainerNumSlots(bag) do
                        GameTooltip:SetBagItem(bag, slot)
                        if(self._itemPrice) then
                                local _, qty = GetContainerItemInfo(bag, slot)
                                self.common:SetItemPrices(GetContainerItemLink(bag, slot), self._itemPrice/qty, nil)
                                self._itemPrice = nil
                        end
                end
        end
        self:Unhook("SetTooltipMoney")
end

function KC_SellValue:SetTooltipMoney(obj, money)
        self._itemPrice = money
        self:CallHook("SetTooltipMoney", obj, money)
end

function KC_SellValue:GetBuyPrices()
        for item = 1, GetMerchantNumItems() do
                local name, texture, price, qty, numAvailable, isUsable = GetMerchantItemInfo(item);
                self.common:SetItemPrices(GetMerchantItemLink(item), nil, price/qty);
        end
end

function KC_SellValue:Tooltip(tooltip, code, lcode, qty, hooker)
        local sell, buy = self.common:GetItemPrices(code)

        local short = self:GetOpt(self.optPath, "short")
        local single = self:GetOpt(self.optPath, "single")
        
        local sLabel = format(short and locals.labels.sell.short or locals.labels.sell.long, qty, single and qty > 1)
        local bLabel = format(short and locals.labels.buy.short  or locals.labels.buy.long,  qty, single and qty > 1)
        
        _ = (sell and sell > 0) and hooker:AddPriceLine(tooltip, sell * qty, sLabel, locals.sep, locals.sepcolor);
        _ = (buy and buy > 0) and hooker:AddPriceLine(tooltip, buy  * qty, bLabel,  locals.sep, locals.sepcolor);
end

Generated by GNU Enscript 1.6.5.90.