# HG changeset patch
# User Nenue
# Date 1466511036 14400
# Node ID f7a0898d293c476cd1983e4882a08925797d33e9
# Parent cd7d06bcd98d1321cab075fd583a51c89602895d
adding library files, toc files, and a missing XML to versioning
diff -r cd7d06bcd98d -r f7a0898d293c SkeletonStats/SkeletonStats.toc
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SkeletonStats/SkeletonStats.toc Tue Jun 21 08:10:36 2016 -0400
@@ -0,0 +1,15 @@
+## Interface: 70000
+## Title: Skeleton Stats
+## Notes: Combat statistics for dinosaurs
+## Author: Krakyn
+## Version: 1.0-@project-revision@
+## SavedVariables: SkeletonStatsDB
+## X-Category: Interface Enhancements
+## DefaultState: Enabled
+## LoadOnDemand: 0
+## OptionalDeps: libKT
+
+libKT-1.0\libKT-1.0.xml
+
+DamageMeter.xml
+DamageMeter.lua
\ No newline at end of file
diff -r cd7d06bcd98d -r f7a0898d293c SkeletonUnit/SkeletonUnit.toc
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SkeletonUnit/SkeletonUnit.toc Tue Jun 21 08:10:36 2016 -0400
@@ -0,0 +1,15 @@
+## Interface: 70000
+## Title: Skeleton Unit
+## Notes: Unit Frames for dinosaurs
+## Author: Krakyn
+## SavedVariables: FossilDB
+## Version: 1.0-@project-revision@
+## X-Category: Interface Enhancements
+## DefaultState: Enabled
+## LoadOnDemand: 0
+## OptionalDeps: libKT
+
+libKT-1.0\libKT-1.0.xml
+
+UnitFrame.xml
+UnitFrame.lua
\ No newline at end of file
diff -r cd7d06bcd98d -r f7a0898d293c SkeletonUnit/UnitFrame.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/SkeletonUnit/UnitFrame.xml Tue Jun 21 08:10:36 2016 -0400
@@ -0,0 +1,74 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff -r cd7d06bcd98d -r f7a0898d293c libKT/libKT-1.0.lua
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/libKT/libKT-1.0.lua Tue Jun 21 08:10:36 2016 -0400
@@ -0,0 +1,244 @@
+--[[ Implements
+-- KT.register(frame) to hook the following (all optional):
+-- frame:init() run immediately after KT sets itself up
+-- frame:profile("Name-TruncatedRealm") called the first time SavedVars data becomes available
+-- frame:variables() called by PLAYER_ENTERING_WORLD
+-- frame:event(event, ...) replaces the event callback
+-- frame:ui() called by /ui when activating
+]]--
+
+--GLOBALS: LibKT, KrakTool, KTErrorFrame, LibKTError, SlashCmdList, SLASH_RL1, SLASH_UI1
+local CreateFrame, debugstack, tostring, select = CreateFrame, debugstack, tostring, select
+local print, max, unpack, tinsert = print, max, unpack, tinsert
+local ipairs, xpcall = ipairs, xpcall
+local UI_TOGGLE = false
+
+KrakTool = CreateFrame('Frame', 'KrakTool', UIParent)
+LibKT = select(2, ...)
+local KT = LibKT
+KT.handler = KrakTool
+KT.frames = {}
+
+SLASH_RL1 = "/rl"
+SlashCmdList.RL = function ()
+ ReloadUI()
+end
+
+SLASH_UI1 = "/ui"
+SlashCmdList.UI = function ()
+ if UI_TOGGLE then
+ UI_TOGGLE = false
+ else
+ UI_TOGGLE = true
+ end
+ for i, frame in pairs(KT.frames) do
+ if UI_TOGGLE then
+ if frame.close then
+ frame.close()
+ else
+ frame:Hide()
+ end
+ else
+ if frame.ui then
+ frame.ui()
+ end
+ frame:Show()
+ end
+ end
+end
+
+LibKTError = function(msg)
+ local dstack = debugstack()
+ :gsub("Interface\\AddOns\\",'~\\')
+ :gsub("<(.-)>", function(a) return '|cFF00FFFF<'.. a ..'>|r' end)
+ KTErrorFrame.errmsg:SetText(msg)
+ KTErrorFrame.debugstack:SetText(dstack)
+ KTErrorFrame:SetHeight(KTErrorFrame.debugstack:GetStringHeight() + KTErrorFrame.errmsg:GetStringHeight() + 12)
+ KTErrorFrame:Show()
+end
+
+local initStack = {}
+local eventStub = function(self, event, ...)
+ local isHandled
+ local nodebug
+
+ if self.event then
+ nodebug = self.event(self, event, ...)
+ end
+
+ if self[event] then
+ nodebug = nodebug or self[event](self, event, ...)
+ self.missed = 0
+ self.handled = self.handled + 1
+ isHandled = true
+ else
+ self.firstEvent = false
+ self.unhandled = self.unhandled + 1
+ self.missed = self.missed + 1
+ end
+
+ if nodebug then
+ return
+ end
+
+ print(self:GetName(), event, ...)
+
+ -- debug outputs
+ if self.status then
+ self.status:SetText(event .. '\n|cFF00FF00' .. self.handled .. '|r |cFFFF8800' .. self.missed .. '|r |cFFFF4400' .. self.unhandled .. '|r')
+ if isHandled then
+ self.status:SetTextColor(0,1,0)
+ if self.log then
+ local logtext = event
+ for i = 1, select('#',...) do
+ logtext = logtext .. '\n' .. i .. ':' .. tostring(select(i,...))
+ end
+ self.log:SetText('|cFFFFFF00last|r\n' .. logtext)
+ local newWidth = self.log:GetStringWidth()
+
+ if self.logfirst then
+ if not self.firstEvent then
+ self.firstEvent = event
+ self.logfirst:SetText('|cFF00FF88first|r\n' .. logtext)
+ end
+
+ newWidth = newWidth + self.logfirst:GetStringWidth()
+ end
+ if self.logdiff then
+ if not event ~= self.firstEvent then
+ self.firstEvent = event
+ self.logdiff:SetText('|cFF0088FFdiff|r\n' .. logtext)
+ end
+ newWidth = newWidth + self.logdiff:GetStringWidth()
+ end
+ --self:SetWidth(newWidth)
+ end
+ else
+ self.status:SetTextColor(1,0,0)
+ end
+ end
+end
+
+KT.register = function(frame, name, noGUI)
+ if not name then
+ name = frame:GetName()
+ end
+
+ KT.frames[name] = frame
+ frame:SetScript('OnEvent', eventStub)
+ frame.unhandled = 0
+ frame.missed = 0
+ frame.handled = 0
+ frame.firstEvent = false
+ tinsert(initStack, frame)
+
+ if noGUI then
+ return
+ end
+
+ frame.UIPanelAnchor = {'TOPLEFT', frame, 'TOPLEFT', 12, -12 }
+ frame.UIPanelGrowth = {'TOPLEFT', 'TOPRIGHT', 14, 0}
+ frame.button = KT.button
+ frame.uibutton = KT.uibutton
+ frame.tab = KT.tab
+ frame.print = KT.print
+
+ return KT
+end
+
+KT.handler:RegisterEvent('VARIABLES_LOADED')
+KT.handler:SetScript('OnEvent', function(self, event, ...)
+ print('KrakTool', event, ...)
+ if not LibKTDB then
+ LibKTDB = {}
+ end
+ KT.db = LibKTDB
+
+ KT.db.runcount = KT.db.runcount or 1
+ KT.db.runcount = KT.db.runcount + 1
+ print(KT.db.runcount)
+
+ for i, frame in ipairs(initStack) do
+ print('|cFF00FF00', i, '|r', frame:GetName())
+ if frame.init then
+ xpcall(frame.init, LibKTError)
+ end
+ end
+
+ self:RegisterEvent('PLAYER_ENTERING_WORLD')
+ self:SetScript('OnEvent', function()
+ for i, frame in ipairs(initStack) do
+ print('|cFF00FFFF', i, '|r', frame:GetName())
+ if frame.variables then
+ xpcall(frame.variables, LibKTError)
+ end
+ end
+ end)
+end)
+
+KT.print = function(module, ...)
+ print('|cFF00FFFF'..module:GetName()..'|r:', ...)
+end
+
+--- Button generators
+
+local GetButtonTemplate = function(name, parent, template, onClick)
+ if _G[name] then
+ return _G[name]
+ end
+
+ local button = CreateFrame('Button', name, parent, template)
+ button:SetScript('OnMouseUp', onClick)
+ return button
+end
+
+local SetButtonAnchor = function(self, collector, anchor, growth)
+ if self:GetID() == 0 then
+ self:SetID(#collector)
+ print('registered TabButton #', self:GetID())
+ end
+
+ if self:GetID() == 1 then
+ self:SetPoint(unpack(anchor))
+ else
+ growth[2] = collector[self:GetID()-1]
+ self:SetPoint(unpack(growth))
+ end
+end
+
+KT.tab = function(self, name, tooltip, texture, coords)
+ local button = GetButtonTemplate(name, self, 'KTTabButton', self.SelectTab)
+ button.icon:SetTexture(texture)
+ button.tooltip = tooltip
+ button:SetSize(unpack(self.tabSize))
+ if coords then
+ button.icon:SetTexCoord(unpack(coords))
+ end
+ SetButtonAnchor(button, self.tabButtons, self.tabAnchor, self.tabGrowth)
+ return button
+end
+
+KT.button = function(self, name, text, tooltip, onClick)
+ local button = GetButtonTemplate(name, self, 'KTButton', onClick)
+
+ button.tooltip = tooltip
+ button:SetText(text)
+ button:SetWidth(max(button:GetWidth(), button:GetFontString():GetStringWidth() + 12))
+
+ SetButtonAnchor(button, self.controls, self.controlsAnchor, self.controlsGrowth)
+ return button
+end
+
+KT.uibutton = function(self, name, text, tooltip, onClick, texture, coords)
+ local button = GetButtonTemplate(name, self, 'KTUIPanelButton', onClick)
+
+ button.tooltip = tooltip
+ button:SetText(text)
+ button.icon:SetTexture(texture)
+ button:SetWidth(button:GetFontString():GetStringWidth() + button.icon:GetWidth()/1.5)
+ if coords then
+ button.icon:SetTexCoord(unpack(coords))
+ end
+ SetButtonAnchor(button, self.UIPanels, self.UIPanelAnchor, self.UIPanelGrowth)
+ return button
+end
diff -r cd7d06bcd98d -r f7a0898d293c libKT/libKT-1.0.xml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/libKT/libKT-1.0.xml Tue Jun 21 08:10:36 2016 -0400
@@ -0,0 +1,249 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ self:RegisterForDrag('LeftButton')
+
+
+ self:StartMoving()
+
+
+ self:StopMovingOrSizing()
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ self.count = self.overlay.count
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff -r cd7d06bcd98d -r f7a0898d293c libKT/libKT.iml
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/libKT/libKT.iml Tue Jun 21 08:10:36 2016 -0400
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff -r cd7d06bcd98d -r f7a0898d293c libKT/libKT.toc
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/libKT/libKT.toc Tue Jun 21 08:10:36 2016 -0400
@@ -0,0 +1,9 @@
+## Interface: 70000
+## Title: Lib:KT
+## Notes: AddOn framework for dinosaurs
+## Author: Krakyn
+## Version: 1.0-@project-revision@
+## SavedVariables: LibKTDB
+## X-Category: Library
+## DefaultState: Enabled
+libKT-1.0.xml