11 Commits

6 changed files with 110 additions and 33 deletions

View File

@@ -8,8 +8,7 @@ externals:
url: https://repos.wowace.com/wow/ace3/trunk/CallbackHandler-1.0 url: https://repos.wowace.com/wow/ace3/trunk/CallbackHandler-1.0
tag: latest tag: latest
Libs/LibQTip-1.0: Libs/LibQTip-1.0:
url: https://repos.wowace.com/wow/libqtip-1-0 url: https://repos.curseforge.com/wow/libqtip-1-0
tag: latest
Libs/LibDataBroker-1.1: Libs/LibDataBroker-1.1:
url: https://github.com/tekkub/libdatabroker-1-1 url: https://github.com/tekkub/libdatabroker-1-1
tag: latest tag: latest
@@ -39,4 +38,6 @@ externals:
tag: latest tag: latest
Libs/LibDBIcon-1.0: Libs/LibDBIcon-1.0:
url: https://repos.wowace.com/wow/libdbicon-1-0/trunk/LibDBIcon-1.0 url: https://repos.wowace.com/wow/libdbicon-1-0/trunk/LibDBIcon-1.0
tag: latest tag: latest
enable-nolib-creation: no

View File

@@ -9,7 +9,8 @@ private.QUESTS = {
LOCATION = { 34.4, 46.8 }, LOCATION = { 34.4, 46.8 },
MATS = { { COUNT = 1, ITEM_ID = 74864 }, { COUNT = 1, ITEM_ID = 74839 } }, MATS = { { COUNT = 1, ITEM_ID = 74864 }, { COUNT = 1, ITEM_ID = 74839 } },
REP_ID = 1277, REP_ID = 1277,
RECIPE_ID = 104302 RECIPE_ID = 104302,
COMPLETED = false
}, },
[30386] = { [30386] = {
NAME = L["A Dish for Ella"], NAME = L["A Dish for Ella"],
@@ -17,7 +18,8 @@ private.QUESTS = {
LOCATION = { 31.6, 58.0 }, LOCATION = { 31.6, 58.0 },
MATS = { { COUNT = 1, ITEM_ID = 74857 } }, MATS = { { COUNT = 1, ITEM_ID = 74857 } },
REP_ID = 1275, REP_ID = 1275,
RECIPE_ID = 104307 RECIPE_ID = 104307,
COMPLETED = false
}, },
[30421] = { [30421] = {
NAME = L["A Dish for Farmer Fung"], NAME = L["A Dish for Farmer Fung"],
@@ -25,7 +27,8 @@ private.QUESTS = {
LOCATION = { 48.2, 33.8 }, LOCATION = { 48.2, 33.8 },
MATS = { { COUNT = 1, ITEM_ID = 74839 } }, MATS = { { COUNT = 1, ITEM_ID = 74839 } },
REP_ID = 1283, REP_ID = 1283,
RECIPE_ID = 104310 RECIPE_ID = 104310,
COMPLETED = false
}, },
[30427] = { [30427] = {
NAME = L["A Dish for Fish"], NAME = L["A Dish for Fish"],
@@ -33,7 +36,8 @@ private.QUESTS = {
LOCATION = { 41.6, 30.0 }, LOCATION = { 41.6, 30.0 },
MATS = { { COUNT = 2, ITEM_ID = 74865 } }, MATS = { { COUNT = 2, ITEM_ID = 74865 } },
REP_ID = 1282, REP_ID = 1282,
RECIPE_ID = 104311 RECIPE_ID = 104311,
COMPLETED = false
}, },
[30390] = { [30390] = {
NAME = L["A Dish for Gina"], NAME = L["A Dish for Gina"],
@@ -41,7 +45,8 @@ private.QUESTS = {
LOCATION = { 53.2, 51.6 }, LOCATION = { 53.2, 51.6 },
MATS = { { COUNT = 1, ITEM_ID = 74856 } }, MATS = { { COUNT = 1, ITEM_ID = 74856 } },
REP_ID = 1281, REP_ID = 1281,
RECIPE_ID = 104304 RECIPE_ID = 104304,
COMPLETED = false
}, },
[30414] = { [30414] = {
NAME = L["A Dish for Haohan"], NAME = L["A Dish for Haohan"],
@@ -49,7 +54,8 @@ private.QUESTS = {
LOCATION = { 44.6, 34.0 }, LOCATION = { 44.6, 34.0 },
MATS = { { COUNT = 1, ITEM_ID = 74833 } }, MATS = { { COUNT = 1, ITEM_ID = 74833 } },
REP_ID = 1279, REP_ID = 1279,
RECIPE_ID = 104298 RECIPE_ID = 104298,
COMPLETED = false
}, },
[30439] = { [30439] = {
NAME = L["A Dish for Jogu"], NAME = L["A Dish for Jogu"],
@@ -57,7 +63,8 @@ private.QUESTS = {
LOCATION = { 53.6, 52.4 }, LOCATION = { 53.6, 52.4 },
MATS = { { COUNT = 2, ITEM_ID = 74841 } }, MATS = { { COUNT = 2, ITEM_ID = 74841 } },
REP_ID = 1273, REP_ID = 1273,
RECIPE_ID = 104301 RECIPE_ID = 104301,
COMPLETED = false
}, },
[30396] = { [30396] = {
NAME = L["A Dish for Old Hillpaw"], NAME = L["A Dish for Old Hillpaw"],
@@ -65,7 +72,8 @@ private.QUESTS = {
LOCATION = { 31.0, 53.0 }, LOCATION = { 31.0, 53.0 },
MATS = { { COUNT = 1, ITEM_ID = 74837 }, { COUNT = 5, ITEM_ID = 74841 } }, MATS = { { COUNT = 1, ITEM_ID = 74837 }, { COUNT = 5, ITEM_ID = 74841 } },
REP_ID = 1276, REP_ID = 1276,
RECIPE_ID = 104305 RECIPE_ID = 104305,
COMPLETED = false
}, },
[30408] = { [30408] = {
NAME = L["A Dish for Sho"], NAME = L["A Dish for Sho"],
@@ -73,7 +81,8 @@ private.QUESTS = {
LOCATION = { 29.6, 30.6 }, LOCATION = { 29.6, 30.6 },
MATS = { { COUNT = 1, ITEM_ID = 74856 }, { COUNT = 5, ITEM_ID = 74848 } }, MATS = { { COUNT = 1, ITEM_ID = 74856 }, { COUNT = 5, ITEM_ID = 74848 } },
REP_ID = 1278, REP_ID = 1278,
RECIPE_ID = 104299 RECIPE_ID = 104299,
COMPLETED = false
}, },
[30433] = { [30433] = {
NAME = L["A Dish for Tina"], NAME = L["A Dish for Tina"],
@@ -81,6 +90,7 @@ private.QUESTS = {
LOCATION = { 45.0, 33.8 }, LOCATION = { 45.0, 33.8 },
MATS = { { COUNT = 1, ITEM_ID = 74859 }, { COUNT = 5, ITEM_ID = 74843 } }, MATS = { { COUNT = 1, ITEM_ID = 74859 }, { COUNT = 5, ITEM_ID = 74843 } },
REP_ID = 1280, REP_ID = 1280,
RECIPE_ID = 104308 RECIPE_ID = 104308,
COMPLETED = false
} }
} }

View File

@@ -20,7 +20,7 @@ L["A Dish for Tina"] = true
L["|cFF00FF00Complete|r"] = true L["|cFF00FF00Complete|r"] = true
L["|cFFFF0000Not Complete|r"] = true L["|cFFFF0000Not Complete|r"] = true
L["|cFFFFFF00Click|r a quest in the tooltip to set a TomTom waypoint at the farmer's home"] = true L["|cFFFFFF00Click|r a quest in the tooltip to set a waypoint at the farmer's home"] = true
L["|cFFFFFF00Click|r the main button to toggle whether the tooltip stays open"] = true L["|cFFFFFF00Click|r the main button to toggle whether the tooltip stays open"] = true
L["|cFFFFFF00Right Click|r the main button to cycle through which ingredient to track"] = true L["|cFFFFFF00Right Click|r the main button to cycle through which ingredient to track"] = true
L["|cFFFFFF00Ctrl-Click|r the main button to queue craftable foods in Skillet"] = true L["|cFFFFFF00Ctrl-Click|r the main button to queue craftable foods in Skillet"] = true

View File

@@ -326,14 +326,16 @@ end
local function Entry_OnMouseUp(frame, info, button) local function Entry_OnMouseUp(frame, info, button)
if button == "LeftButton" then if button == "LeftButton" then
if not _G.TomTom then
return
end
local m = TomTom:GetCurrentPlayerPosition()
local location = info["LOCATION"] local location = info["LOCATION"]
_G.TomTom:AddWaypoint(m, location[1] / 100, location[2] / 100, { title = info["NAME"] }) if _G.TomTom then
_G.TomTom:AddWaypoint(376, location[1] / 100, location[2] / 100, { title = info["NAME"] })
elseif C_Map.CanSetUserWaypointOnMap then
if C_Map.CanSetUserWaypointOnMap(376) then
local mapPoint = UiMapPoint.CreateFromCoordinates(376, location[1] / 100, location[2] / 100)
C_Map.SetUserWaypoint(mapPoint)
end
end
end end
end end
@@ -362,7 +364,7 @@ function TillerTracker:ReputationDone(reputationId)
local friendRep = C_GossipInfo.GetFriendshipReputation(reputationId).standing local friendRep = C_GossipInfo.GetFriendshipReputation(reputationId).standing
-- Done if over exalted -- Done if over exalted
return (friendRep > 42000) return (friendRep >= 42000)
end end
function TillerTracker:AllReputationsDone() function TillerTracker:AllReputationsDone()
@@ -375,9 +377,25 @@ function TillerTracker:AllReputationsDone()
return true return true
end end
function TillerTracker:GetAllCompletedQuestIDs()
if C_QuestLog.GetAllCompletedQuestIDs then
return C_QuestLog.GetAllCompletedQuestIDs()
elseif GetQuestsCompleted then
local completedQuestIds = {}
local questsCompleted = GetQuestsCompleted()
for quest_id in pairs(questsCompleted) do
table.insert(completedQuestIds, quest_id)
end
return completedQuestIds
end
end
function TillerTracker:UpdateData() function TillerTracker:UpdateData()
-- Get information on all quests completed -- Get information on all quests completed
local questsCompleted = C_QuestLog.GetAllCompletedQuestIDs() local questsCompleted = TillerTracker:GetAllCompletedQuestIDs()
-- Create a table to store our current inventory of required mats -- Create a table to store our current inventory of required mats
local inv_table = {} local inv_table = {}
@@ -388,6 +406,9 @@ function TillerTracker:UpdateData()
-- Loop over each quest in the data -- Loop over each quest in the data
for _, quest_info in pairs(private.QUESTS) do for _, quest_info in pairs(private.QUESTS) do
-- Reset completed to false
quest_info["COMPLETED"] = false
-- Loop over the mats required to cook the food for the quest -- Loop over the mats required to cook the food for the quest
for _, mat_data in pairs(quest_info["MATS"]) do for _, mat_data in pairs(quest_info["MATS"]) do
@@ -403,6 +424,15 @@ function TillerTracker:UpdateData()
end end
end end
-- Loop over each quest completed
for _, quest_id in pairs(questsCompleted) do
-- Set completed to true if it is one we're tracking
if (private.QUESTS[quest_id]) then
private.QUESTS[quest_id]["COMPLETED"] = true
end
end
-- Create a table to hold the information to display for each quest -- Create a table to hold the information to display for each quest
private.quest_table = {} private.quest_table = {}
private.quest_count = 0 private.quest_count = 0
@@ -434,7 +464,7 @@ function TillerTracker:UpdateData()
local quest_status = "" local quest_status = ""
local can_craft = 0 local can_craft = 0
if (questsCompleted[quest_id]) then if (quest_info["COMPLETED"]) then
-- Quest has already been completed today -- Quest has already been completed today
quest_status = L["|cFF00FF00Complete|r"] quest_status = L["|cFF00FF00Complete|r"]
else else
@@ -571,8 +601,8 @@ function TillerTracker:UpdateTooltip()
-- Add the line with info about the current quest -- Add the line with info about the current quest
line = private.tooltip:AddLine(quest["NAME_DISPLAY"], quest["FOOD_DISPLAY"], quest["AMOUNT_DISPLAY"], quest["STATUS"], quest["NEED"]) line = private.tooltip:AddLine(quest["NAME_DISPLAY"], quest["FOOD_DISPLAY"], quest["AMOUNT_DISPLAY"], quest["STATUS"], quest["NEED"])
-- If TomTom is installed then set the line script -- Set the line script if TomTom is installed or the game supports waypoints
if _G.TomTom then if C_Map.CanSetUserWaypointOnMap or _G.TomTom then
private.tooltip:SetLineScript(line, "OnMouseUp", Entry_OnMouseUp, { NAME = quest["NAME"], LOCATION = quest["LOCATION"] }) private.tooltip:SetLineScript(line, "OnMouseUp", Entry_OnMouseUp, { NAME = quest["NAME"], LOCATION = quest["LOCATION"] })
end end
end end
@@ -586,10 +616,10 @@ function TillerTracker:UpdateTooltip()
line = private.tooltip:AddLine() line = private.tooltip:AddLine()
private.tooltip:SetCell(line, 1, L["|cFFFFFF00Right Click|r the main button to cycle through which ingredient to track"], "LEFT", private.tooltip:GetColumnCount()) private.tooltip:SetCell(line, 1, L["|cFFFFFF00Right Click|r the main button to cycle through which ingredient to track"], "LEFT", private.tooltip:GetColumnCount())
-- If TomTom is installed then add a hint to the end -- Add a hint to the end if TomTom is installed or the game supports waypoints
if _G.TomTom then if C_Map.CanSetUserWaypointOnMap or _G.TomTom then
line = private.tooltip:AddLine() line = private.tooltip:AddLine()
private.tooltip:SetCell(line, 1, L["|cFFFFFF00Click|r a quest in the tooltip to set a TomTom waypoint at the farmer's home"], "LEFT", private.tooltip:GetColumnCount()) private.tooltip:SetCell(line, 1, L["|cFFFFFF00Click|r a quest in the tooltip to set a waypoint at the farmer's home"], "LEFT", private.tooltip:GetColumnCount())
end end
-- Add the Skillet hint if installed -- Add the Skillet hint if installed
@@ -686,7 +716,12 @@ function TillerTracker:ChatCommand(input)
command = command:lower() command = command:lower()
if command == L["config"]:lower() then if command == L["config"]:lower() then
InterfaceOptionsFrame_OpenToCategory(private.optionsFrame) if Settings then
Settings.OpenToCategory("Tiller Tracker")
elseif InterfaceOptionsFrame_OpenToCategory then
InterfaceOptionsFrame_OpenToCategory("Tiller Tracker")
InterfaceOptionsFrame_OpenToCategory("Tiller Tracker")
end
elseif command == L["minimap"]:lower() then elseif command == L["minimap"]:lower() then
private.db.global.minimap_icon.hide = not private.db.global.minimap_icon.hide private.db.global.minimap_icon.hide = not private.db.global.minimap_icon.hide
TillerTracker:UpdateMinimapConfig() TillerTracker:UpdateMinimapConfig()

View File

@@ -1,6 +1,6 @@
## Interface: 100000 ## Interface: 110205
## Title: Tiller Tracker ## Title: Tiller Tracker
## Version: 10.0.2 ## Version: 11.0.7
## 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. ## 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 ## Author: Amanoa
## SavedVariables: TillerTrackerDB ## SavedVariables: TillerTrackerDB

31
TillerTracker_Mists.toc Normal file
View File

@@ -0,0 +1,31 @@
## Interface: 50502
## Title: Tiller Tracker
## Version: 11.0.7
## 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
## OptionalDeps: Ace3, AceEvent-3.0, LibQTip-1.0, LibStub, AceTimer-3.0, AceConsole-3.0
#@no-lib-strip@
Libs\LibStub\LibStub.lua
Libs\CallbackHandler-1.0\CallbackHandler-1.0.xml
Libs\AceAddon-3.0\AceAddon-3.0.xml
Libs\AceConsole-3.0\AceConsole-3.0.xml
Libs\AceEvent-3.0\AceEvent-3.0.xml
Libs\AceLocale-3.0\AceLocale-3.0.xml
Libs\AceTimer-3.0\AceTimer-3.0.xml
Libs\AceDB-3.0\AceDB-3.0.xml
Libs\AceGUI-3.0\AceGUI-3.0.xml
Libs\AceConfig-3.0\AceConfig-3.0.xml
Libs\LibQTip-1.0\lib.xml
Libs\LibDataBroker-1.1\LibDataBroker-1.1.lua
Libs\LibDBIcon-1.0\LibDBIcon-1.0.lua
#@end-no-lib-strip@
Locale\enUS.lua
Locale\frFR.lua
Locale\deDE.lua
Data.lua
Sort.lua
TillerTracker.lua