Skip to content

Commit 6506522

Browse files
committed
Add LibTalentTree:GetEntryInfo() to retrieve entry data
1 parent bab3dad commit 6506522

File tree

2 files changed

+127
-62
lines changed

2 files changed

+127
-62
lines changed

LibTalentTree-1.0.lua

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
-- the data for LibTalentTree resides in LibTalentTree-1.0_data.lua
22

3-
local MAJOR, MINOR = "LibTalentTree-1.0", 2
3+
local MAJOR, MINOR = "LibTalentTree-1.0", 3
44
--- @class LibTalentTree
55
local LibTalentTree = LibStub:NewLibrary(MAJOR, MINOR)
66

@@ -50,6 +50,13 @@ LibTalentTree.dataVersion = 0 -- overwritten in LibTalentTree-1.0_data.lua
5050
---@field specInfo: table<number, number[]> # specId: conditionType[] see Enum.TraitConditionType
5151
---@field isClassNode: boolean
5252

53+
---@class entryInfo
54+
---@field definitionID number # TraitDefinitionID
55+
---@field type number # see Enum.TraitNodeEntryType
56+
---@field maxRanks number
57+
---@field isAvailable boolean # LibTalentTree always returns true
58+
---@field conditionIDs number[] # list of TraitConditionID, LibTalentTree always returns an empty table
59+
5360
---@class gateInfo
5461
---@field topLeftNodeID number # TraitNodeID - the node that is the top left corner of the gate
5562
---@field conditionID number # TraitConditionID
@@ -119,6 +126,23 @@ function LibTalentTree:GetNodeInfo(treeId, nodeId)
119126
return Mixin(cNodeInfo, libNodeInfo);
120127
end
121128

129+
--- @public
130+
--- @param treeId number # TraitTreeID
131+
--- @param entryId number # TraitEntryID
132+
--- @return ( entryInfo | nil )
133+
function LibTalentTree:GetEntryInfo(treeId, entryId)
134+
assert(type(treeId) == 'number', 'treeId must be a number');
135+
assert(type(entryId) == 'number', 'entryId must be a number');
136+
137+
local entryInfo = self.entryData[treeId] and self.entryData[treeId][entryId] and deepCopy(self.entryData[treeId][entryId]) or nil;
138+
if (entryInfo) then
139+
entryInfo.isAvailable = true;
140+
entryInfo.conditionIDs = {};
141+
end
142+
143+
return entryInfo;
144+
end
145+
122146
--- @public
123147
--- @param class (string | number) # ClassID or ClassFilename - e.g. "DEATHKNIGHT" or 6 - See https://wowpedia.fandom.com/wiki/ClassId
124148
--- @return ( number | nil ) # TraitTreeID

0 commit comments

Comments
 (0)