Mercurial > wow > turok
diff Turok/Modules/Timer/Status.lua @ 9:9400a0ff8540
Ugh
Timer:
- container update directionality
- talent update iterates over a non-volatile table to carry out updates
- index management steps organized
- talentRow status implemented, returns the spell associated with the talent chosen from that row
CombatLog:
- sort out font controls and unbork arguments
author | Nenue |
---|---|
date | Sun, 21 Feb 2016 13:08:30 -0500 |
parents | a9b8b0866ece |
children |
line wrap: on
line diff
--- a/Turok/Modules/Timer/Status.lua Sun Feb 21 08:49:34 2016 -0500 +++ b/Turok/Modules/Timer/Status.lua Sun Feb 21 13:08:30 2016 -0500 @@ -3,13 +3,9 @@ local P = mod.prototype local GetInventoryItemID, GetItemInfo, GetInventoryItemTexture = GetInventoryItemID, GetItemInfo, GetInventoryItemTexture local GetSpellDescription, GetSpellInfo, GetSpellCharges = GetSpellDescription, GetSpellInfo, GetSpellCharges -local GetTalentRowSelectionInfo = GetTalentRowSelectionInfo local tinsert, type, tonumber, pairs, ipairs, unpack = tinsert, type, tonumber, pairs, ipairs, unpack local UnitGUID = UnitGUID local GetTalentInfo, GetTalentInfoByID, GetItemSpell, PaperDoll_IsEquippedSlot = GetTalentInfo, GetTalentInfoByID, GetItemSpell, PaperDoll_IsEquippedSlot -local print = function(...) print('Timer', ...) end -print('Peep!', ...) - --@debug@ local DEBUG = true --@end-debug@ @@ -20,13 +16,19 @@ _G.print('Timer', ...) end end +local tfprint = function(...) + if not DEBUG then return end + if _G.Devian and _G.DevianDB.workspace ~= 1 then + _G.print('TimerFocus', ...) + end +end ------------------------------------------ --- Parameter Prototypes local Timer_GetPrintHandler = function(self) return self.trace and function(...) print(...) - _G.print('TimerFocus', ...) + tfprint( ...) end or print end @@ -61,6 +63,20 @@ end end +--- update conditional cvars (i.e. talentRow(5) pulls up column 3, so cvars.x = args[talentRow][3].x) +local Timer_SetAttributeValues = function(self, key, value) + print(' ', cKey(key), 'sub-value =', cNum(value)) + local sda = self.dvars.args + if sda and sda[key] then + print(cText(' conditional:')) + local dvals = (value and sda[key][value]) and sda[key][value] or sda[key].default + for k, v in pairs(dvals) do + print(cText(' '), 'cvars.'..cKey(k), '=', cWord(v)) + self.cvars[k] = v + end + end +end + --- spellID do local spellID = P.status.spellID @@ -102,6 +118,7 @@ Timer_UpdateIndex(self, 'spellID', nil) Timer_UpdateIndex(self, 'spellName', spellName) end + Timer_SetAttributeValues(self, 'spellName', spellID) end end @@ -126,7 +143,7 @@ print(' ', cKey('talentID ('..cNum(self.talentID)..', '..cNum(T.specGroup)..'):'), self.spellName, self.talentSelected ) Timer_UpdateIndex(self, 'talentID', talentID) - + Timer_SetAttributeValues(self, 'talentID', self.talentSelected and 1 or 'default') end end @@ -136,15 +153,21 @@ talentRow.Init = function(self, row) local print = Timer_GetPrintHandler(self) self.talentRow = row - local noSelect, talentID = GetTalentRowSelectionInfo(row) - if noSelect then + local match + for i = 1, 3 do + local talentID, _, _, selected = GetTalentInfo(row, i, T.specGroup) + if selected then + P.status.talentID.Init(self, talentID) + match = i + end + end + + if not match then self.disable = true self.debug_info("No talent selected in target row.") - else - P.status.talentID.Init(self, talentID) end - print(' ', cKey('talentRow ('.. cNum(row).. ') ='), talentID or 'none') Timer_UpdateIndex(self, 'talentRow', row) + Timer_SetAttributeValues(self, 'talentRow', match) end end @@ -224,20 +247,19 @@ self.debug_info ('bad itemID value') end - self.spellName = GetItemSpell(self.itemID) + local spellName = GetItemSpell(self.itemID) - if not self.spellName then + if not spellName then self.disable = true - self.debug_info('no spell detected') - else - if not (self.frames.spellName and self.frames.spellName[self.spellName]) then - if not self.frames.spellName then - self.frames.spellName = {} - end - - Timer_UpdateIndex(self, 'spellName', self.spellName) + self.debug_info('no spell detected') + if self.spellName then + self.spellName = nil end end + + Timer_UpdateIndex(self, 'spellName', spellName) + Timer_SetAttributeValues(self, 'itemID', spellName) + print(' ', cKey('itemID'), cNum(self.itemID), self.isEquipped)--@end-debug@ end end @@ -249,15 +271,16 @@ local print = Timer_GetPrintHandler(self) self.inventoryID = slot - self.itemID = GetInventoryItemID(self.dvars.unit, slot) - local name = GetItemInfo(self.itemID) + local itemID = GetInventoryItemID(self.dvars.unit, slot) + local name = GetItemInfo(itemID) if not PaperDoll_IsEquippedSlot(slot) then self.disable = true self.debug_info('slot un-equipped') return end - P.status.itemID.Init(self, self.itemID) + Timer_SetAttributeValues(self, 'inventoryID', itemID) + P.status.itemID.Init(self, itemID) self.spellIcon = GetInventoryItemTexture(self.dvars.unit, slot) print(' ', cKey('inventoryID'), '=', '{'..cNum(self.inventoryID).. ' -> '.. cNum(self.itemID or 'no-equip').. '}') end