From 233048773e1fcc038e17e343da90247a133e6497 Mon Sep 17 00:00:00 2001 From: Darthpred Date: Sat, 16 Mar 2013 15:48:47 +0400 Subject: [PATCH] Fixed error when running update all on first load when not on farm + Fixed fps drops on getting/loosing items that are not seeds when on farm --- ElvUI_SLE/modules/farm/farm.lua | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/ElvUI_SLE/modules/farm/farm.lua b/ElvUI_SLE/modules/farm/farm.lua index 70c7fe8..ee41987 100755 --- a/ElvUI_SLE/modules/farm/farm.lua +++ b/ElvUI_SLE/modules/farm/farm.lua @@ -129,6 +129,8 @@ local quests = { --[31671] = {80591, 84783}, -- Scallion } +local buttoncounts = {} + function F:CanSeed() local subzone = GetSubZoneText() for _, zone in ipairs(farmzones) do @@ -150,7 +152,8 @@ function F:InventoryUpdate(event) else F:UnregisterEvent("PLAYER_REGEN_ENABLED") end - + + local SeedChange = false for i = 1, 5 do for _, button in ipairs(FseedButtons[i]) do button.items = GetItemCount(button.itemId, nil, true) @@ -162,6 +165,13 @@ function F:InventoryUpdate(event) end end end + if not buttoncounts[button.itemId] then + buttoncounts[button.itemId] = button.items + end + if button.items ~= buttoncounts[button.itemId] then + SeedChange = true + buttoncounts[button.itemId] = button.items + end button.text:SetText(button.items) button.icon:SetDesaturated(button.items == 0) button.icon:SetAlpha(button.items == 0 and .25 or 1) @@ -170,18 +180,32 @@ function F:InventoryUpdate(event) for _, button in ipairs(FtoolButtons) do button.items = GetItemCount(button.itemId) + if not buttoncounts[button.itemId] then + buttoncounts[button.itemId] = button.items + end + if button.items ~= buttoncounts[button.itemId] then + SeedChange = true + buttoncounts[button.itemId] = button.items + end button.icon:SetDesaturated(button.items == 0) button.icon:SetAlpha(button.items == 0 and .25 or 1) end for _, button in ipairs(FportalButtons) do button.items = GetItemCount(button.itemId) + if not buttoncounts[button.itemId] then + buttoncounts[button.itemId] = button.items + end + if button.items ~= buttoncounts[button.itemId] then + SeedChange = true + buttoncounts[button.itemId] = button.items + end button.text:SetText(button.items) button.icon:SetDesaturated(button.items == 0) button.icon:SetAlpha(button.items == 0 and .25 or 1) end - if event and event ~= "BAG_UPDATE_COOLDOWN" then + if event and event ~= "BAG_UPDATE_COOLDOWN" and SeedChange == true then F:UpdateLayout() end end @@ -194,6 +218,7 @@ function F:UpdateBarLayout(bar, anchor, buttons) for i, button in ipairs(buttons) do button:ClearAllPoints() + if not button.items then F:InventoryUpdate() end if not E.db.sle.farm.active or button.items > 0 then button:Point("TOPLEFT", bar, "TOPLEFT", (count * (size+(E.PixelMode and 2 or 1)))+(E.PixelMode and 1 or 0), -1) button:Show() -- 1.7.9.5