initial commit
This commit is contained in:
77
Core/Service/Sniper/Core.lua
Normal file
77
Core/Service/Sniper/Core.lua
Normal file
@@ -0,0 +1,77 @@
|
||||
-- ------------------------------------------------------------------------------ --
|
||||
-- TradeSkillMaster --
|
||||
-- https://tradeskillmaster.com --
|
||||
-- All Rights Reserved - Detailed license information included with addon. --
|
||||
-- ------------------------------------------------------------------------------ --
|
||||
|
||||
local _, TSM = ...
|
||||
local Sniper = TSM:NewPackage("Sniper")
|
||||
local Threading = TSM.Include("Service.Threading")
|
||||
local SniperSearchContext = TSM.Include("LibTSMClass").DefineClass("SniperSearchContext")
|
||||
TSM.Sniper.SniperSearchContext = SniperSearchContext
|
||||
|
||||
|
||||
|
||||
-- ============================================================================
|
||||
-- Module Methods
|
||||
-- ============================================================================
|
||||
|
||||
function Sniper.PopulateItemList(itemList)
|
||||
local baseHasOperation = false
|
||||
for _ in TSM.Operations.GroupOperationIterator("Sniper", TSM.CONST.ROOT_GROUP_PATH) do
|
||||
baseHasOperation = true
|
||||
end
|
||||
if baseHasOperation and TSM.IsWowClassic() then
|
||||
return false
|
||||
end
|
||||
|
||||
-- add all the items from groups with Sniper operations
|
||||
for _, groupPath in TSM.Groups.GroupIterator() do
|
||||
local hasOperations = false
|
||||
for _ in TSM.Operations.GroupOperationIterator("Sniper", groupPath) do
|
||||
hasOperations = true
|
||||
end
|
||||
if hasOperations then
|
||||
for _, itemString in TSM.Groups.ItemIterator(groupPath) do
|
||||
if TSM.Operations.Sniper.IsOperationValid(itemString) then
|
||||
tinsert(itemList, itemString)
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
return true
|
||||
end
|
||||
|
||||
|
||||
|
||||
-- ============================================================================
|
||||
-- SniperSearchContext - Public Class Methods
|
||||
-- ============================================================================
|
||||
|
||||
function SniperSearchContext.__init(self, threadId, marketValueFunc, scanType)
|
||||
assert(threadId and marketValueFunc and (scanType == "BUYOUT" or scanType == "BID"))
|
||||
self._threadId = threadId
|
||||
self._marketValueFunc = marketValueFunc
|
||||
self._scanType = scanType
|
||||
end
|
||||
|
||||
function SniperSearchContext.StartThread(self, callback, auctionScan)
|
||||
Threading.SetCallback(self._threadId, callback)
|
||||
Threading.Start(self._threadId, auctionScan)
|
||||
end
|
||||
|
||||
function SniperSearchContext.KillThread(self)
|
||||
Threading.Kill(self._threadId)
|
||||
end
|
||||
|
||||
function SniperSearchContext.GetMarketValueFunc(self)
|
||||
return self._marketValueFunc
|
||||
end
|
||||
|
||||
function SniperSearchContext.IsBuyoutScan(self)
|
||||
return self._scanType == "BUYOUT"
|
||||
end
|
||||
|
||||
function SniperSearchContext.IsBidScan(self)
|
||||
return self._scanType == "BID"
|
||||
end
|
||||
Reference in New Issue
Block a user