|
|
|
|
local Routes = LibStub("AceAddon-3.0"):GetAddon("Routes", 1)
|
|
|
|
|
if not Routes then return end
|
|
|
|
|
|
|
|
|
|
local SourceName = "Gatherer"
|
|
|
|
|
local L = LibStub("AceLocale-3.0"):GetLocale("Routes")
|
|
|
|
|
|
|
|
|
|
------------------------------------------
|
|
|
|
|
-- setup
|
|
|
|
|
Routes.plugins[SourceName] = {}
|
|
|
|
|
local source = Routes.plugins[SourceName]
|
|
|
|
|
|
|
|
|
|
do
|
|
|
|
|
local loaded = true
|
|
|
|
|
local function IsActive() -- Can we gather data?
|
|
|
|
|
return Gatherer and loaded
|
|
|
|
|
end
|
|
|
|
|
source.IsActive = IsActive
|
|
|
|
|
|
|
|
|
|
-- stop loading if the addon is not enabled, or
|
|
|
|
|
-- stop loading if there is a reason why it can't be loaded ("MISSING" or "DISABLED")
|
|
|
|
|
local enabled = GetAddOnEnableState(UnitName("player"), SourceName)
|
|
|
|
|
local name, title, notes, loadable, reason, security = GetAddOnInfo(SourceName)
|
|
|
|
|
if not enabled or (reason ~= nil and reason ~= "DEMAND_LOADED") then
|
|
|
|
|
loaded = false
|
|
|
|
|
return
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
------------------------------------------
|
|
|
|
|
-- functions
|
|
|
|
|
|
|
|
|
|
local function Summarize(data, zone)
|
|
|
|
|
local amount_of = {}
|
|
|
|
|
local db_type_of = {}
|
|
|
|
|
local zoneID = Routes.LZName[zone]
|
|
|
|
|
|
|
|
|
|
-- This loop works only because of a bug in Gatherer.
|
|
|
|
|
-- Gatherer may be fixed in the future and break this loop.
|
|
|
|
|
for _, node, db_type in Gatherer.Storage.ZoneGatherNames(zoneID) do
|
|
|
|
|
amount_of[node] = (amount_of[node] or 0) + 1
|
|
|
|
|
db_type_of[node] = db_type
|
|
|
|
|
end
|
|
|
|
|
for node, count in pairs(amount_of) do
|
|
|
|
|
local db_type = db_type_of[node]
|
|
|
|
|
local translatednode = Gatherer.Util.GetNodeName(node)
|
|
|
|
|
data[ ("%s;%s;%s;%s"):format(SourceName, db_type, node, count) ] = ("%s - %s (%d)"):format(L[SourceName..db_type], translatednode, count)
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
return data
|
|
|
|
|
end
|
|
|
|
|
source.Summarize = Summarize
|
|
|
|
|
|
|
|
|
|
-- returns the english name, translated name for the node so we can store it was being requested
|
|
|
|
|
-- also returns the type of db for use with auto show/hide route
|
|
|
|
|
local translate_db_type = {
|
|
|
|
|
["HERB"] = "Herbalism",
|
|
|
|
|
["MINE"] = "Mining",
|
|
|
|
|
["OPEN"] = "Treasure",
|
|
|
|
|
["ARCH"] = "Archaeology",
|
|
|
|
|
}
|
|
|
|
|
local function AppendNodes(node_list, zone, db_type, node_type)
|
|
|
|
|
local zoneID = Routes.LZName[zone]
|
|
|
|
|
node_type = tonumber(node_type)
|
|
|
|
|
|
|
|
|
|
-- posX, posY, timesGathered, indoors, harvested, inspected, source = GetGatherInfo(C, Z, node_type, db_type, index)
|
|
|
|
|
for index, posX, posY, inspected, indoors in Gatherer.Storage.ZoneGatherNodes(zoneID, db_type) do
|
|
|
|
|
if Gatherer.Storage.GetGatherInfo(zoneID, node_type, db_type, index) then
|
|
|
|
|
tinsert( node_list, floor(posX * 10000 + 0.5) * 10000 + floor(posY * 10000 + 0.5) )
|
|
|
|
|
end
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
-- return the node_type for auto-adding
|
|
|
|
|
local translatednode = Gatherer.Util.GetNodeName(node_type)
|
|
|
|
|
return translatednode, translatednode, translate_db_type[db_type]
|
|
|
|
|
end
|
|
|
|
|
source.AppendNodes = AppendNodes
|
|
|
|
|
|
|
|
|
|
-- continent/zone - GetMapZones() stuff
|
|
|
|
|
-- nodeType - HERB/MINE/OPEN
|
|
|
|
|
-- x, y - the coordinate [0,1]
|
|
|
|
|
-- node_name - the node being removed, can be an ID, as long as I can convert this to a localized or english string of the node such as "Copper Vein"
|
|
|
|
|
local function InsertNode(continent, zone, nodeType, x, y, node_name)
|
|
|
|
|
--Routes:InsertNode(zone, coord, node_name)
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
local function DeleteNode(continent, zone, nodeType, x, y, node_name)
|
|
|
|
|
--Routes:DeleteNode(zone, coord, node_name)
|
|
|
|
|
end
|
|
|
|
|
|
|
|
|
|
local function AddCallbacks()
|
|
|
|
|
--Functions to add Gatherer callbacks
|
|
|
|
|
end
|
|
|
|
|
source.AddCallbacks = AddCallbacks
|
|
|
|
|
|
|
|
|
|
local function RemoveCallbacks()
|
|
|
|
|
--Functions to remove Gatherer callbacks
|
|
|
|
|
end
|
|
|
|
|
source.RemoveCallbacks = RemoveCallbacks
|
|
|
|
|
|
|
|
|
|
-- vim: ts=4 noexpandtab
|