made scan completely independent

This commit is contained in:
Manuel Simon Hirsig
2015-09-08 01:49:13 +02:00
parent d95b8b108e
commit c3ec6b670e
3 changed files with 40 additions and 40 deletions
+1 -22
View File
@@ -11,8 +11,6 @@ auctionatorEntries = {}
local AUCTIONATOR_TAB_INDEX = 4
local timeOfLastUpdate = GetTime()
-----------------------------------------
local Auctionator_Orig_AuctionFrameBrowse_Update
@@ -45,7 +43,6 @@ function Auctionator_EventHandler()
if event == "VARIABLES_LOADED" then Auctionator_OnLoad() end
if event == "ADDON_LOADED" then Auctionator_OnAddonLoaded() end
if event == "AUCTION_ITEM_LIST_UPDATE" then Auctionator_OnAuctionUpdate() end
if event == "AUCTION_OWNED_LIST_UPDATE" then Auctionator_OnAuctionOwnedUpdate() end
if event == "AUCTION_HOUSE_SHOW" then Auctionator_OnAuctionHouseShow() end
if event == "AUCTION_HOUSE_CLOSED" then Auctionator_OnAuctionHouseClosed() end
@@ -352,14 +349,6 @@ end
-----------------------------------------
function Auctionator_OnAuctionUpdate()
if Auctionator_Scan_State_Postquery() then
Auctionator_Scan_Process()
end
end
-----------------------------------------
function Auctionator_SetMessage(msg)
Auctionator_HideElems(recommendationElements)
AuctionatorMessage:SetText(msg)
@@ -445,7 +434,6 @@ function Auctionator_UpdateRecommendation()
MoneyInputFrame_SetCopper(BuyoutPrice, newBuyoutPrice)
MoneyInputFrame_SetCopper(StartPrice, newStartPrice)
log(MoneyInputFrame_GetCopper(BuyoutPrice, newBuyoutPrice))
if selectedAuctionatorEntry.stackSize == auctionatorEntries[currentAuctionItemName][1].stackSize and selectedAuctionatorEntry.buyoutPrice == auctionatorEntries[currentAuctionItemName][1].buyoutPrice then
Auctionator_Recommend_Basis_Text:SetText("(based on cheapest)")
elseif bestPriceOurStackSize and selectedAuctionatorEntry.stackSize == bestPriceOurStackSize.stackSize and selectedAuctionatorEntry.buyoutPrice == bestPriceOurStackSize.buyoutPrice then
@@ -494,9 +482,7 @@ function Auctionator_OnNewAuctionUpdate()
return
end
if not Auctionator_Scan_State_Idle() then
Auctionator_Scan_Abort()
end
Auctionator_Scan_Abort()
currentAuctionItemName, currentAuctionItemTexture, currentAuctionItemStackSize = GetAuctionSellItemInfo()
@@ -535,14 +521,7 @@ function Auctionator_OnUpdate()
return
end
if Auctionator_Scan_State_Prequery() and GetTime() - timeOfLastUpdate > 0.5 then
timeOfLastUpdate = GetTime()
if CanSendAuctionQuery() then
Auctionator_Scan_Query()
end
end
if forceRefresh then
Auctionator_OnNewAuctionUpdate()
+1 -2
View File
@@ -3,12 +3,11 @@
<Script file="Auctionator.lua"/>
<!-- Frame to handle all core events -->
<Frame name="Auctionator_core">
<Frame name="Auctionator_Core">
<Scripts>
<OnLoad>
this:RegisterEvent("VARIABLES_LOADED")
this:RegisterEvent("ADDON_LOADED")
this:RegisterEvent("AUCTION_ITEM_LIST_UPDATE")
this:RegisterEvent("AUCTION_OWNED_LIST_UPDATE")
this:RegisterEvent("AUCTION_HOUSE_SHOW")
this:RegisterEvent("AUCTION_HOUSE_CLOSED")
+38 -16
View File
@@ -1,27 +1,49 @@
local SCAN_STATE_IDLE = 0
local SCAN_STATE_PREQUERY = 1
local SCAN_STATE_POSTQUERY = 2
local timeOfLastUpdate = GetTime()
NUM_AUCTION_ITEMS_PER_PAGE = 50
local eventFrame = CreateFrame("Frame")
eventFrame:SetScript("OnUpdate", function()
if state == STATE_PREQUERY and GetTime() - timeOfLastUpdate > 0.5 then
timeOfLastUpdate = GetTime()
if CanSendAuctionQuery() then
Auctionator_Scan_Query()
end
end
end)
eventFrame:RegisterEvent("AUCTION_ITEM_LIST_UPDATE")
eventFrame:SetScript("OnEvent", function(event)
if state == STATE_POSTQUERY then
Auctionator_Scan_Process()
end
end)
-----------------------------------------
local STATE_IDLE = 0
local STATE_PREQUERY = 1
local STATE_POSTQUERY = 2
local NUM_AUCTION_ITEMS_PER_PAGE = 50
local currentQuery
local currentPage
local scanState = SCAN_STATE_IDLE
local state = STATE_IDLE
local scanData
-----------------------------------------
function Auctionator_Scan_State_Idle()
return scanState == SCAN_STATE_IDLE
return state == STATE_IDLE
end
function Auctionator_Scan_State_Prequery()
return scanState == SCAN_STATE_PREQUERY
return state == STATE_PREQUERY
end
function Auctionator_Scan_State_Postquery()
return scanState == SCAN_STATE_POSTQUERY
return state == STATE_POSTQUERY
end
-----------------------------------------
@@ -35,7 +57,7 @@ function Auctionator_Scan_Complete()
currentQuery = nil
currentPage = nil
scanData = nil
scanState = SCAN_STATE_IDLE
state = STATE_IDLE
end
-----------------------------------------
@@ -49,13 +71,13 @@ function Auctionator_Scan_Abort()
currentQuery = nil
currentPage = nil
scanData = nil
scanState = SCAN_STATE_IDLE
state = STATE_IDLE
end
-----------------------------------------
function Auctionator_Scan_Query()
if scanState == SCAN_STATE_PREQUERY then
if state == STATE_PREQUERY then
QueryAuctionItems(
currentQuery.name,
@@ -68,7 +90,7 @@ function Auctionator_Scan_Query()
currentQuery.isUsable,
currentQuery.qualityIndex
)
scanState = SCAN_STATE_POSTQUERY
state = STATE_POSTQUERY
currentPage = currentPage + 1
end
end
@@ -77,7 +99,7 @@ end
function Auctionator_Scan_Process()
if scanState == SCAN_STATE_POSTQUERY then
if state == STATE_POSTQUERY then
-- SortAuctionItems("list", "buyout")
-- if IsAuctionSortReversed("list", "buyout") then
@@ -120,7 +142,7 @@ function Auctionator_Scan_Process()
end
if numBatchAuctions == NUM_AUCTION_ITEMS_PER_PAGE then
scanState = SCAN_STATE_PREQUERY
state = STATE_PREQUERY
else
Auctionator_Scan_Complete()
end
@@ -133,14 +155,14 @@ function Auctionator_Scan_Start(query)
Auctionator_SetMessage("Scanning auctions ...")
if scanState ~= SCAN_STATE_IDLE then
if state ~= STATE_IDLE then
Auctionator_Scan_Abort()
end
currentQuery = query
currentPage = 0
scanData = {}
scanState = SCAN_STATE_PREQUERY
state = STATE_PREQUERY
end
-----------------------------------------