if not PriceTracker then return end local PriceTracker = PriceTracker local PriceTrackerEnchantingTable = {} PriceTracker.enchantingTable = PriceTrackerEnchantingTable PriceTrackerEnchantingTable.enchanting = ENCHANTING PriceTrackerEnchantingTable.enchantingRunes = { potency = { bagId = nil, itemIndex = nil }, essence = { bagId = nil, itemIndex = nil }, aspect = { bagId = nil, itemIndex = nil } } function PriceTrackerEnchantingTable:OnLoad(eventCode, addOnName) if(addOnName ~= "PriceTracker") then return end ZO_PreHookHandler(self.enchanting.runeSlots[1].control, "OnUpdate", function() self:OnUpdateEnchantingRune(self.enchanting.runeSlots[1], "aspect") end) ZO_PreHookHandler(self.enchanting.runeSlots[2].control, "OnUpdate", function() self:OnUpdateEnchantingRune(self.enchanting.runeSlots[2], "essence") end) ZO_PreHookHandler(self.enchanting.runeSlots[3].control, "OnUpdate", function() self:OnUpdateEnchantingRune(self.enchanting.runeSlots[3], "potency") end) ZO_PreHookHandler(self.enchanting.resultTooltip, "OnHide", function() PriceTracker:OnHideTooltip(self.enchanting.resultTooltip) end) end function PriceTrackerEnchantingTable:OnUpdateEnchantingRune(rune, runeType) if rune.bagId == self.enchantingRunes[runeType].bagId and rune.slotIndex == self.enchantingRunes[runeType].itemIndex then return end self.enchantingRunes[runeType].bagId = rune.bagId self.enchantingRunes[runeType].itemIndex = rune.slotIndex self:UpdateEnchantingTooltip() end function PriceTrackerEnchantingTable:UpdateEnchantingTooltip() if not self.enchantingRunes.potency.bagId or not self.enchantingRunes.potency.itemIndex or not self.enchantingRunes.essence.bagId or not self.enchantingRunes.essence.itemIndex or not self.enchantingRunes.aspect.bagId or not self.enchantingRunes.aspect.itemIndex then return end local name, icon, stack, sellPrice, meetsUsageRequirement, quality = GetEnchantingResultingItemInfo(self.enchantingRunes.potency.bagId, self.enchantingRunes.potency.itemIndex, self.enchantingRunes.essence.bagId, self.enchantingRunes.essence.itemIndex, self.enchantingRunes.aspect.bagId, self.enchantingRunes.aspect.itemIndex) local item = { dataEntry = { data = { name = PriceTracker:NormalizeName(name), stackCount = 1, purchasePrice = sellPrice } } } if(meetsUsageRequirement) then PriceTracker:OnUpdateTooltip(item, self.enchanting.resultTooltip) end end