mirror of
https://github.com/ckaczor/TillerTracker.git
synced 2026-01-14 01:25:42 -05:00
Compare commits
14 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 5ae9aaa8c7 | |||
| 6da8b8bff1 | |||
| b14c4a358a | |||
| a80d3ded01 | |||
| 5b441d1dee | |||
| 6afc62a355 | |||
| 3fd9daf009 | |||
| c30f0fe3ae | |||
| 7ed4da43cd | |||
| b6d78b1caf | |||
| be513420c2 | |||
| ecc6f258a2 | |||
| d99c214111 | |||
| 294bb6dede |
29
.pkgmeta
29
.pkgmeta
@@ -2,41 +2,42 @@
|
||||
|
||||
externals:
|
||||
Libs/LibStub:
|
||||
url: svn://svn.wowace.com/wow/libstub/mainline/trunk
|
||||
url: https://repos.wowace.com/wow/libstub/trunk
|
||||
tag: latest
|
||||
Libs/CallbackHandler-1.0:
|
||||
url: svn://svn.wowace.com/wow/callbackhandler/mainline/trunk/CallbackHandler-1.0
|
||||
url: https://repos.wowace.com/wow/ace3/trunk/CallbackHandler-1.0
|
||||
tag: latest
|
||||
Libs/LibQTip-1.0:
|
||||
url: svn://svn.wowace.com/wow/libqtip-1-0/mainline/trunk
|
||||
tag: latest
|
||||
url: https://repos.curseforge.com/wow/libqtip-1-0
|
||||
Libs/LibDataBroker-1.1:
|
||||
url: git://github.com/tekkub/libdatabroker-1-1.git
|
||||
url: https://github.com/tekkub/libdatabroker-1-1
|
||||
tag: latest
|
||||
Libs/AceLocale-3.0:
|
||||
url: svn://svn.wowace.com/wow/ace3/mainline/trunk/AceLocale-3.0
|
||||
url: https://repos.wowace.com/wow/ace3/trunk/AceLocale-3.0
|
||||
tag: latest
|
||||
Libs/AceConsole-3.0:
|
||||
url: svn://svn.wowace.com/wow/ace3/mainline/trunk/AceConsole-3.0
|
||||
url: https://repos.wowace.com/wow/ace3/trunk/AceConsole-3.0
|
||||
tag: latest
|
||||
Libs/AceAddon-3.0:
|
||||
url: svn://svn.wowace.com/wow/ace3/mainline/trunk/AceAddon-3.0
|
||||
url: https://repos.wowace.com/wow/ace3/trunk/AceAddon-3.0
|
||||
tag: latest
|
||||
Libs/AceEvent-3.0:
|
||||
url: svn://svn.wowace.com/wow/ace3/mainline/trunk/AceEvent-3.0
|
||||
url: https://repos.wowace.com/wow/ace3/trunk/AceEvent-3.0
|
||||
tag: latest
|
||||
Libs/AceTimer-3.0:
|
||||
url: svn://svn.wowace.com/wow/ace3/mainline/trunk/AceTimer-3.0
|
||||
url: https://repos.wowace.com/wow/ace3/trunk/AceTimer-3.0
|
||||
tag: latest
|
||||
Libs/AceConfig-3.0:
|
||||
url: svn://svn.wowace.com/wow/ace3/mainline/trunk/AceConfig-3.0
|
||||
url: https://repos.wowace.com/wow/ace3/trunk/AceConfig-3.0
|
||||
tag: latest
|
||||
Libs/AceDB-3.0:
|
||||
url: svn://svn.wowace.com/wow/ace3/mainline/trunk/AceDB-3.0
|
||||
url: https://repos.wowace.com/wow/ace3/trunk/AceDB-3.0
|
||||
tag: latest
|
||||
Libs/AceGUI-3.0:
|
||||
url: svn://svn.wowace.com/wow/ace3/mainline/trunk/AceGUI-3.0
|
||||
url: https://repos.wowace.com/wow/ace3/trunk/AceGUI-3.0
|
||||
tag: latest
|
||||
Libs/LibDBIcon-1.0:
|
||||
url: svn://svn.wowace.com/wow/libdbicon-1-0/mainline/trunk/LibDBIcon-1.0
|
||||
url: https://repos.wowace.com/wow/libdbicon-1-0/trunk/LibDBIcon-1.0
|
||||
tag: latest
|
||||
|
||||
enable-nolib-creation: no
|
||||
@@ -34,7 +34,7 @@ L["Need"] = true
|
||||
|
||||
L["Gather:"] = true
|
||||
L["Done"] = true
|
||||
L["Disabled until level 90"] = true
|
||||
L["Disabled until level 10"] = true
|
||||
|
||||
L["Best Friends with everyone"] = true
|
||||
|
||||
|
||||
@@ -197,9 +197,8 @@ function TillerTracker:OnInitialize()
|
||||
private.pinned = false
|
||||
private.need_index = 1
|
||||
private.loaded = false
|
||||
private.item_wait_table = {}
|
||||
private.item_wait_count = 0
|
||||
|
||||
private.item_name_table = {}
|
||||
|
||||
-- Get rid of settings from before AceDB
|
||||
if TillerTrackerDB then
|
||||
TillerTrackerDB["SORT_FIELD"] = nil
|
||||
@@ -223,9 +222,9 @@ function TillerTracker:OnInitialize()
|
||||
end
|
||||
|
||||
function TillerTracker:OnEnable()
|
||||
-- Disable if the player is less than 90
|
||||
if (UnitLevel("player") < 90) then
|
||||
LDB.text = L["Disabled until level 90"]
|
||||
-- Disable if the player is less than 10
|
||||
if (UnitLevel("player") < 10) then
|
||||
LDB.text = L["Disabled until level 10"]
|
||||
|
||||
-- Register to get player level events
|
||||
self:RegisterEvent("PLAYER_LEVEL_UP")
|
||||
@@ -244,7 +243,7 @@ function TillerTracker:OnEnable()
|
||||
end
|
||||
|
||||
function TillerTracker:PLAYER_LEVEL_UP(event, newLevel)
|
||||
if (tonumber(newLevel) >= 90) then
|
||||
if (tonumber(newLevel) >= 10) then
|
||||
-- Do the real enable
|
||||
TillerTracker:OnEnableCore()
|
||||
|
||||
@@ -258,66 +257,56 @@ function TillerTracker:OnEnableCore()
|
||||
TillerTracker:Print(L["Loading..."])
|
||||
LDB.text = L["Loading..."]
|
||||
|
||||
-- Register to get item info events for now
|
||||
self:RegisterEvent("GET_ITEM_INFO_RECEIVED")
|
||||
|
||||
-- Attempt to load the cache
|
||||
-- Load item info from cache
|
||||
TillerTracker:LoadCache()
|
||||
|
||||
-- If everything is cached we're good to go
|
||||
if (private.item_wait_count == 0) then
|
||||
TillerTracker:OnLoaded(self)
|
||||
end
|
||||
end
|
||||
|
||||
function TillerTracker:LoadCache()
|
||||
local item_count = 0
|
||||
local item_loaded_count = 0
|
||||
local item_table = {}
|
||||
|
||||
private.item_name_table = {}
|
||||
|
||||
-- Loop over each quest in the data
|
||||
for _, quest_info in pairs(private.QUESTS) do
|
||||
|
||||
-- Get the item ID of the food
|
||||
local food_id = quest_info["FOOD_ID"]
|
||||
|
||||
-- Add the food to the list of items
|
||||
item_table[food_id] = Item:CreateFromItemID(food_id)
|
||||
item_count = item_count + 1
|
||||
|
||||
-- Try to get the info for the food
|
||||
local food_name = GetItemInfo(food_id)
|
||||
|
||||
-- If the information wasn't available add it to the list of waiting items
|
||||
if (food_name == nil) then
|
||||
private.item_wait_table[food_id] = true
|
||||
private.item_wait_count = private.item_wait_count + 1
|
||||
end
|
||||
|
||||
-- Loop over the mats required to cook the food for the quest
|
||||
for _, mat_data in pairs(quest_info["MATS"]) do
|
||||
|
||||
-- Get the item ID of the mat
|
||||
local mat_id = mat_data["ITEM_ID"]
|
||||
|
||||
-- Try to get the info for the mat
|
||||
local mat_name = GetItemInfo(mat_id)
|
||||
|
||||
-- If the information wasn't available add it to the list of waiting items
|
||||
if (mat_name == nil) then
|
||||
if (private.item_wait_table[mat_id] == nil) then
|
||||
private.item_wait_table[mat_id] = true
|
||||
private.item_wait_count = private.item_wait_count + 1
|
||||
end
|
||||
-- Add the mat to the list of items
|
||||
if (item_table[mat_id] == nil) then
|
||||
item_table[mat_id] = Item:CreateFromItemID(mat_id)
|
||||
item_count = item_count + 1
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function TillerTracker:GET_ITEM_INFO_RECEIVED()
|
||||
for id, _ in pairs(private.item_wait_table) do
|
||||
if GetItemInfo(id) then
|
||||
private.item_wait_table[id] = nil
|
||||
-- Loop over all items we need to cache
|
||||
for _, item in pairs(item_table) do
|
||||
|
||||
-- Wait for the item to load
|
||||
item:ContinueOnItemLoad(function()
|
||||
|
||||
private.item_wait_count = private.item_wait_count - 1
|
||||
end
|
||||
end
|
||||
|
||||
-- If everything is cached we're good to go
|
||||
if (private.item_wait_count == 0) then
|
||||
TillerTracker:OnLoaded(self)
|
||||
-- Save the name
|
||||
private.item_name_table[item:GetItemID()] = item:GetItemName()
|
||||
item_loaded_count = item_loaded_count + 1
|
||||
|
||||
-- If everything is cached we're good to go
|
||||
if (item_count == item_loaded_count) then
|
||||
TillerTracker:OnLoaded(self)
|
||||
end
|
||||
end)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -326,9 +315,6 @@ function TillerTracker:OnLoaded(self)
|
||||
TillerTracker:Print(L["Loaded"])
|
||||
LDB.text = L["Loaded"]
|
||||
|
||||
-- Done with item info events
|
||||
self:UnregisterEvent("GET_ITEM_INFO_RECEIVED")
|
||||
|
||||
self:RegisterEvent("QUEST_LOG_UPDATE")
|
||||
self:RegisterEvent("BAG_UPDATE")
|
||||
|
||||
@@ -344,9 +330,10 @@ local function Entry_OnMouseUp(frame, info, button)
|
||||
return
|
||||
end
|
||||
|
||||
local m = TomTom:GetCurrentPlayerPosition()
|
||||
local location = info["LOCATION"]
|
||||
|
||||
_G.TomTom:AddMFWaypoint(807, nil, location[1] / 100, location[2] / 100, { title = info["NAME"] })
|
||||
_G.TomTom:AddWaypoint(m, location[1] / 100, location[2] / 100, { title = info["NAME"] })
|
||||
end
|
||||
end
|
||||
|
||||
@@ -362,13 +349,17 @@ local function SetSort(cell, sort)
|
||||
private.db.global.sort_dir = "ASC"
|
||||
end
|
||||
|
||||
if not private.loaded then
|
||||
return
|
||||
end
|
||||
|
||||
TillerTracker:UpdateData()
|
||||
TillerTracker:UpdateTooltip()
|
||||
end
|
||||
|
||||
function TillerTracker:ReputationDone(reputationId)
|
||||
-- Get the reputation information
|
||||
local _, friendRep = GetFriendshipReputation(reputationId)
|
||||
local friendRep = C_GossipInfo.GetFriendshipReputation(reputationId).standing
|
||||
|
||||
-- Done if over exalted
|
||||
return (friendRep > 42000)
|
||||
@@ -386,7 +377,7 @@ end
|
||||
|
||||
function TillerTracker:UpdateData()
|
||||
-- Get information on all quests completed
|
||||
local questsCompleted = GetQuestsCompleted()
|
||||
local questsCompleted = C_QuestLog.GetAllCompletedQuestIDs()
|
||||
|
||||
-- Create a table to store our current inventory of required mats
|
||||
local inv_table = {}
|
||||
@@ -426,7 +417,7 @@ function TillerTracker:UpdateData()
|
||||
local food_id = quest_info["FOOD_ID"]
|
||||
|
||||
-- Get the name of the food for display
|
||||
local food_name = GetItemInfo(food_id)
|
||||
local food_name = private.item_name_table[food_id]
|
||||
|
||||
-- Get how many of the food we have in our bags
|
||||
local food_count = GetItemCount(food_id, true, false)
|
||||
@@ -487,7 +478,7 @@ function TillerTracker:UpdateData()
|
||||
if (mat_count > 0) then
|
||||
|
||||
-- Get the name of the mat
|
||||
local mat_name = GetItemInfo(mat_id)
|
||||
local mat_name = private.item_name_table[mat_id]
|
||||
|
||||
-- Set the mat need string to the count needed and the name
|
||||
local mat_need = mat_count .. " " .. mat_name
|
||||
@@ -626,7 +617,7 @@ function TillerTracker:UpdateText()
|
||||
-- Loop over the need table
|
||||
for need_id, need_count in pairs(private.need_table) do
|
||||
if need_index == private.need_index then
|
||||
LDB.text = L["Gather:"] .. " " .. need_count .. " " .. GetItemInfo(need_id)
|
||||
LDB.text = L["Gather:"] .. " " .. need_count .. " " .. private.item_name_table[need_id]
|
||||
|
||||
return
|
||||
end
|
||||
@@ -647,6 +638,10 @@ function LDB.OnEnter(self)
|
||||
end
|
||||
|
||||
function TillerTracker:QUEST_LOG_UPDATE()
|
||||
if not private.loaded then
|
||||
return
|
||||
end
|
||||
|
||||
TillerTracker:UpdateData()
|
||||
TillerTracker:UpdateText()
|
||||
|
||||
@@ -658,6 +653,10 @@ function TillerTracker:QUEST_LOG_UPDATE()
|
||||
end
|
||||
|
||||
function TillerTracker:BAG_UPDATE()
|
||||
if not private.loaded then
|
||||
return
|
||||
end
|
||||
|
||||
TillerTracker:UpdateData()
|
||||
TillerTracker:UpdateText()
|
||||
|
||||
@@ -717,6 +716,10 @@ end
|
||||
function TillerTracker:SetPlanAhead(value)
|
||||
private.db.global.plan_ahead = value
|
||||
|
||||
if not private.loaded then
|
||||
return
|
||||
end
|
||||
|
||||
TillerTracker:UpdateData()
|
||||
TillerTracker:UpdateText()
|
||||
|
||||
@@ -725,4 +728,4 @@ function TillerTracker:SetPlanAhead(value)
|
||||
end
|
||||
|
||||
TillerTracker:UpdateTooltip()
|
||||
end
|
||||
end
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
## Interface: 90001
|
||||
## Interface: 100005
|
||||
## Title: Tiller Tracker
|
||||
## Version: 9.0.0
|
||||
## Version: 10.0.4
|
||||
## Notes: Helps with the daily Tiller food quests ("A Dish for...") by keeping track of what quests have been completed that day, how many dishes need to be cooked, and what materials are required.
|
||||
## Author: Amanoa
|
||||
## SavedVariables: TillerTrackerDB
|
||||
|
||||
Reference in New Issue
Block a user