From 63c65512e40b1eac83609c638df434b62d5ea849 Mon Sep 17 00:00:00 2001 From: Steven Jackson Date: Thu, 24 Jul 2014 23:44:46 -0500 Subject: [PATCH] version change, fixed buffwatch --- Interface/AddOns/SVUI/SVUI.lua | 311 +- Interface/AddOns/SVUI/SVUI.toc | 8 +- Interface/AddOns/SVUI/SVUI.xml | 65 + Interface/AddOns/SVUI/language/_load.xml | 1 - Interface/AddOns/SVUI/libs/_load.xml | 1 - .../oUF_ActionPanel/oUF_ActionPanel.lua | 2 +- Interface/AddOns/SVUI/packages/_load.xml | 17 - .../AddOns/SVUI/packages/actionbar/KeyBind.lua | 2 +- Interface/AddOns/SVUI/packages/bag/SVBag.lua | 2 +- Interface/AddOns/SVUI/packages/bag/SVBag.xml | 3 +- .../AddOns/SVUI/packages/bag/common/_load.xml | 4 - .../AddOns/SVUI/packages/bag/common/breakstuff.lua | 292 -- .../AddOns/SVUI/packages/bag/common/sorting.lua | 835 ----- .../AddOns/SVUI/packages/bag/tools/breakstuff.lua | 292 ++ .../AddOns/SVUI/packages/bag/tools/sorting.lua | 835 +++++ Interface/AddOns/SVUI/packages/dock/SVDock.lua | 2 +- .../AddOns/SVUI/packages/henchmen/SVHenchmen.lua | 2 +- .../AddOns/SVUI/packages/laborer/SVLaborer.xml | 5 +- .../AddOns/SVUI/packages/laborer/common/_load.xml | 6 - .../SVUI/packages/laborer/common/archaeology.lua | 513 --- .../SVUI/packages/laborer/common/cooking.lua | 227 -- .../SVUI/packages/laborer/common/farming.lua | 612 ---- .../SVUI/packages/laborer/common/fishing.lua | 379 -- .../SVUI/packages/laborer/modes/archaeology.lua | 513 +++ .../AddOns/SVUI/packages/laborer/modes/cooking.lua | 227 ++ .../AddOns/SVUI/packages/laborer/modes/farming.lua | 613 ++++ .../AddOns/SVUI/packages/laborer/modes/fishing.lua | 379 ++ Interface/AddOns/SVUI/packages/map/SVMap.lua | 2 +- Interface/AddOns/SVUI/packages/stats/SVStats.xml | 14 +- .../AddOns/SVUI/packages/stats/common/_load.xml | 15 - .../AddOns/SVUI/packages/stats/common/bags.lua | 104 - .../AddOns/SVUI/packages/stats/common/cta.lua | 159 - .../AddOns/SVUI/packages/stats/common/dps.lua | 122 - .../SVUI/packages/stats/common/durability.lua | 148 - .../SVUI/packages/stats/common/experience.lua | 136 - .../AddOns/SVUI/packages/stats/common/friends.lua | 384 --- .../AddOns/SVUI/packages/stats/common/gold.lua | 162 - .../AddOns/SVUI/packages/stats/common/guild.lua | 329 -- .../AddOns/SVUI/packages/stats/common/hps.lua | 140 - .../SVUI/packages/stats/common/reputation.lua | 172 - .../AddOns/SVUI/packages/stats/common/system.lua | 212 -- .../AddOns/SVUI/packages/stats/common/time.lua | 236 -- .../AddOns/SVUI/packages/stats/common/tokens.lua | 199 -- .../AddOns/SVUI/packages/stats/stats/bags.lua | 104 + Interface/AddOns/SVUI/packages/stats/stats/cta.lua | 159 + Interface/AddOns/SVUI/packages/stats/stats/dps.lua | 122 + .../SVUI/packages/stats/stats/durability.lua | 148 + .../SVUI/packages/stats/stats/experience.lua | 136 + .../AddOns/SVUI/packages/stats/stats/friends.lua | 384 +++ .../AddOns/SVUI/packages/stats/stats/gold.lua | 162 + .../AddOns/SVUI/packages/stats/stats/guild.lua | 329 ++ Interface/AddOns/SVUI/packages/stats/stats/hps.lua | 140 + .../SVUI/packages/stats/stats/reputation.lua | 172 + .../AddOns/SVUI/packages/stats/stats/system.lua | 212 ++ .../AddOns/SVUI/packages/stats/stats/time.lua | 236 ++ .../AddOns/SVUI/packages/stats/stats/tokens.lua | 199 ++ Interface/AddOns/SVUI/packages/unit/SVUnit.lua | 28 +- Interface/AddOns/SVUI/packages/unit/SVUnit.xml | 23 +- .../AddOns/SVUI/packages/unit/class/_load.xml | 13 - .../SVUI/packages/unit/class/deathknight.lua | 133 - .../AddOns/SVUI/packages/unit/class/druid.lua | 387 --- .../AddOns/SVUI/packages/unit/class/hunter.lua | 44 - Interface/AddOns/SVUI/packages/unit/class/mage.lua | 199 -- Interface/AddOns/SVUI/packages/unit/class/monk.lua | 163 - .../AddOns/SVUI/packages/unit/class/paladin.lua | 179 - .../AddOns/SVUI/packages/unit/class/priest.lua | 162 - .../AddOns/SVUI/packages/unit/class/rogue.lua | 265 -- .../AddOns/SVUI/packages/unit/class/shaman.lua | 124 - .../AddOns/SVUI/packages/unit/class/warlock.lua | 380 --- .../AddOns/SVUI/packages/unit/class/warrior.lua | 44 - .../AddOns/SVUI/packages/unit/common/_load.xml | 7 - .../AddOns/SVUI/packages/unit/common/auras.lua | 734 ---- .../AddOns/SVUI/packages/unit/common/castbar.lua | 737 ---- .../SVUI/packages/unit/common/essentials.lua | 898 ----- .../AddOns/SVUI/packages/unit/common/misc.lua | 649 ---- .../AddOns/SVUI/packages/unit/common/tags.lua | 499 --- .../AddOns/SVUI/packages/unit/elements/auras.lua | 731 ++++ .../AddOns/SVUI/packages/unit/elements/castbar.lua | 737 ++++ .../SVUI/packages/unit/elements/essentials.lua | 898 +++++ .../AddOns/SVUI/packages/unit/elements/misc.lua | 649 ++++ .../AddOns/SVUI/packages/unit/elements/tags.lua | 499 +++ Interface/AddOns/SVUI/packages/unit/frames.lua | 2124 ++++++++++++ .../AddOns/SVUI/packages/unit/frames/_load.xml | 4 - .../AddOns/SVUI/packages/unit/frames/groups.lua | 1149 ------- .../AddOns/SVUI/packages/unit/frames/units.lua | 1011 ------ .../SVUI/packages/unit/resources/deathknight.lua | 133 + .../AddOns/SVUI/packages/unit/resources/druid.lua | 387 +++ .../AddOns/SVUI/packages/unit/resources/hunter.lua | 44 + .../AddOns/SVUI/packages/unit/resources/mage.lua | 199 ++ .../AddOns/SVUI/packages/unit/resources/monk.lua | 163 + .../SVUI/packages/unit/resources/paladin.lua | 179 + .../AddOns/SVUI/packages/unit/resources/priest.lua | 162 + .../AddOns/SVUI/packages/unit/resources/rogue.lua | 265 ++ .../AddOns/SVUI/packages/unit/resources/shaman.lua | 124 + .../SVUI/packages/unit/resources/warlock.lua | 380 +++ .../SVUI/packages/unit/resources/warrior.lua | 44 + Interface/AddOns/SVUI/scripts/_load.xml | 12 - Interface/AddOns/SVUI/system/_load.xml | 3 +- Interface/AddOns/SVUI/system/alerts.lua | 14 +- Interface/AddOns/SVUI/system/classes/Animate.lua | 437 --- Interface/AddOns/SVUI/system/classes/Database.lua | 3602 -------------------- Interface/AddOns/SVUI/system/classes/Filters.lua | 710 ---- Interface/AddOns/SVUI/system/classes/Registry.lua | 339 -- Interface/AddOns/SVUI/system/classes/_load.xml | 6 - Interface/AddOns/SVUI/system/database.lua | 3602 ++++++++++++++++++++ Interface/AddOns/SVUI/system/filters.lua | 714 ++++ Interface/AddOns/SVUI/system/slash.lua | 4 +- Interface/AddOns/SVUI/system/system.lua | 440 ++- Interface/AddOns/SVUI/system/templates.lua | 10 +- .../AddOns/SVUI_ConfigOMatic/SVUI_ConfigOMatic.lua | 8 +- .../AddOns/SVUI_ConfigOMatic/modules/aura.lua | 4 +- Interface/AddOns/SVUI_ConfigOMatic/modules/bag.lua | 2 +- Interface/AddOns/SVUI_ConfigOMatic/modules/bar.lua | 2 +- .../AddOns/SVUI_ConfigOMatic/modules/chat.lua | 2 +- .../AddOns/SVUI_ConfigOMatic/modules/dock.lua | 6 +- .../AddOns/SVUI_ConfigOMatic/modules/filter.lua | 56 +- .../AddOns/SVUI_ConfigOMatic/modules/henchmen.lua | 2 +- Interface/AddOns/SVUI_ConfigOMatic/modules/map.lua | 2 +- .../AddOns/SVUI_ConfigOMatic/modules/mode.lua | 2 +- .../AddOns/SVUI_ConfigOMatic/modules/plate.lua | 2 +- .../AddOns/SVUI_ConfigOMatic/modules/stat.lua | 2 +- Interface/AddOns/SVUI_ConfigOMatic/modules/tip.lua | 2 +- .../SVUI_ConfigOMatic/modules/units/core.lua | 2 +- .../SVUI_ConfigOMatic/modules/units/focus.lua | 2 +- .../SVUI_ConfigOMatic/modules/units/other.lua | 2 +- .../SVUI_ConfigOMatic/modules/units/party.lua | 2 +- .../AddOns/SVUI_ConfigOMatic/modules/units/pet.lua | 2 +- .../SVUI_ConfigOMatic/modules/units/player.lua | 2 +- .../SVUI_ConfigOMatic/modules/units/raid.lua | 45 +- .../SVUI_ConfigOMatic/modules/units/target.lua | 2 +- .../AddOns/SVUI_StyleOMatic/SVUI_StyleOMatic.lua | 3 +- .../AddOns/SVUI_StyleOMatic/addons/system.lua | 2 +- .../SVUI_StyleOMatic/addons/thirdparty/DXE.lua | 2 +- .../SVUI_StyleOMatic/addons/thirdparty/Quartz.lua | 6 +- .../AddOns/SVUI_StyleOMatic/common/methods.lua | 2 +- 135 files changed, 18357 insertions(+), 18437 deletions(-) delete mode 100644 Interface/AddOns/SVUI/language/_load.xml delete mode 100644 Interface/AddOns/SVUI/libs/_load.xml delete mode 100644 Interface/AddOns/SVUI/packages/_load.xml delete mode 100644 Interface/AddOns/SVUI/packages/bag/common/_load.xml delete mode 100644 Interface/AddOns/SVUI/packages/bag/common/breakstuff.lua delete mode 100644 Interface/AddOns/SVUI/packages/bag/common/sorting.lua create mode 100644 Interface/AddOns/SVUI/packages/bag/tools/breakstuff.lua create mode 100644 Interface/AddOns/SVUI/packages/bag/tools/sorting.lua delete mode 100644 Interface/AddOns/SVUI/packages/laborer/common/_load.xml delete mode 100644 Interface/AddOns/SVUI/packages/laborer/common/archaeology.lua delete mode 100644 Interface/AddOns/SVUI/packages/laborer/common/cooking.lua delete mode 100644 Interface/AddOns/SVUI/packages/laborer/common/farming.lua delete mode 100644 Interface/AddOns/SVUI/packages/laborer/common/fishing.lua create mode 100644 Interface/AddOns/SVUI/packages/laborer/modes/archaeology.lua create mode 100644 Interface/AddOns/SVUI/packages/laborer/modes/cooking.lua create mode 100644 Interface/AddOns/SVUI/packages/laborer/modes/farming.lua create mode 100644 Interface/AddOns/SVUI/packages/laborer/modes/fishing.lua delete mode 100644 Interface/AddOns/SVUI/packages/stats/common/_load.xml delete mode 100644 Interface/AddOns/SVUI/packages/stats/common/bags.lua delete mode 100644 Interface/AddOns/SVUI/packages/stats/common/cta.lua delete mode 100644 Interface/AddOns/SVUI/packages/stats/common/dps.lua delete mode 100644 Interface/AddOns/SVUI/packages/stats/common/durability.lua delete mode 100644 Interface/AddOns/SVUI/packages/stats/common/experience.lua delete mode 100644 Interface/AddOns/SVUI/packages/stats/common/friends.lua delete mode 100644 Interface/AddOns/SVUI/packages/stats/common/gold.lua delete mode 100644 Interface/AddOns/SVUI/packages/stats/common/guild.lua delete mode 100644 Interface/AddOns/SVUI/packages/stats/common/hps.lua delete mode 100644 Interface/AddOns/SVUI/packages/stats/common/reputation.lua delete mode 100644 Interface/AddOns/SVUI/packages/stats/common/system.lua delete mode 100644 Interface/AddOns/SVUI/packages/stats/common/time.lua delete mode 100644 Interface/AddOns/SVUI/packages/stats/common/tokens.lua create mode 100644 Interface/AddOns/SVUI/packages/stats/stats/bags.lua create mode 100644 Interface/AddOns/SVUI/packages/stats/stats/cta.lua create mode 100644 Interface/AddOns/SVUI/packages/stats/stats/dps.lua create mode 100644 Interface/AddOns/SVUI/packages/stats/stats/durability.lua create mode 100644 Interface/AddOns/SVUI/packages/stats/stats/experience.lua create mode 100644 Interface/AddOns/SVUI/packages/stats/stats/friends.lua create mode 100644 Interface/AddOns/SVUI/packages/stats/stats/gold.lua create mode 100644 Interface/AddOns/SVUI/packages/stats/stats/guild.lua create mode 100644 Interface/AddOns/SVUI/packages/stats/stats/hps.lua create mode 100644 Interface/AddOns/SVUI/packages/stats/stats/reputation.lua create mode 100644 Interface/AddOns/SVUI/packages/stats/stats/system.lua create mode 100644 Interface/AddOns/SVUI/packages/stats/stats/time.lua create mode 100644 Interface/AddOns/SVUI/packages/stats/stats/tokens.lua delete mode 100644 Interface/AddOns/SVUI/packages/unit/class/_load.xml delete mode 100644 Interface/AddOns/SVUI/packages/unit/class/deathknight.lua delete mode 100644 Interface/AddOns/SVUI/packages/unit/class/druid.lua delete mode 100644 Interface/AddOns/SVUI/packages/unit/class/hunter.lua delete mode 100644 Interface/AddOns/SVUI/packages/unit/class/mage.lua delete mode 100644 Interface/AddOns/SVUI/packages/unit/class/monk.lua delete mode 100644 Interface/AddOns/SVUI/packages/unit/class/paladin.lua delete mode 100644 Interface/AddOns/SVUI/packages/unit/class/priest.lua delete mode 100644 Interface/AddOns/SVUI/packages/unit/class/rogue.lua delete mode 100644 Interface/AddOns/SVUI/packages/unit/class/shaman.lua delete mode 100644 Interface/AddOns/SVUI/packages/unit/class/warlock.lua delete mode 100644 Interface/AddOns/SVUI/packages/unit/class/warrior.lua delete mode 100644 Interface/AddOns/SVUI/packages/unit/common/_load.xml delete mode 100644 Interface/AddOns/SVUI/packages/unit/common/auras.lua delete mode 100644 Interface/AddOns/SVUI/packages/unit/common/castbar.lua delete mode 100644 Interface/AddOns/SVUI/packages/unit/common/essentials.lua delete mode 100644 Interface/AddOns/SVUI/packages/unit/common/misc.lua delete mode 100644 Interface/AddOns/SVUI/packages/unit/common/tags.lua create mode 100644 Interface/AddOns/SVUI/packages/unit/elements/auras.lua create mode 100644 Interface/AddOns/SVUI/packages/unit/elements/castbar.lua create mode 100644 Interface/AddOns/SVUI/packages/unit/elements/essentials.lua create mode 100644 Interface/AddOns/SVUI/packages/unit/elements/misc.lua create mode 100644 Interface/AddOns/SVUI/packages/unit/elements/tags.lua create mode 100644 Interface/AddOns/SVUI/packages/unit/frames.lua delete mode 100644 Interface/AddOns/SVUI/packages/unit/frames/_load.xml delete mode 100644 Interface/AddOns/SVUI/packages/unit/frames/groups.lua delete mode 100644 Interface/AddOns/SVUI/packages/unit/frames/units.lua create mode 100644 Interface/AddOns/SVUI/packages/unit/resources/deathknight.lua create mode 100644 Interface/AddOns/SVUI/packages/unit/resources/druid.lua create mode 100644 Interface/AddOns/SVUI/packages/unit/resources/hunter.lua create mode 100644 Interface/AddOns/SVUI/packages/unit/resources/mage.lua create mode 100644 Interface/AddOns/SVUI/packages/unit/resources/monk.lua create mode 100644 Interface/AddOns/SVUI/packages/unit/resources/paladin.lua create mode 100644 Interface/AddOns/SVUI/packages/unit/resources/priest.lua create mode 100644 Interface/AddOns/SVUI/packages/unit/resources/rogue.lua create mode 100644 Interface/AddOns/SVUI/packages/unit/resources/shaman.lua create mode 100644 Interface/AddOns/SVUI/packages/unit/resources/warlock.lua create mode 100644 Interface/AddOns/SVUI/packages/unit/resources/warrior.lua delete mode 100644 Interface/AddOns/SVUI/scripts/_load.xml delete mode 100644 Interface/AddOns/SVUI/system/classes/Animate.lua delete mode 100644 Interface/AddOns/SVUI/system/classes/Database.lua delete mode 100644 Interface/AddOns/SVUI/system/classes/Filters.lua delete mode 100644 Interface/AddOns/SVUI/system/classes/Registry.lua delete mode 100644 Interface/AddOns/SVUI/system/classes/_load.xml create mode 100644 Interface/AddOns/SVUI/system/database.lua create mode 100644 Interface/AddOns/SVUI/system/filters.lua diff --git a/Interface/AddOns/SVUI/SVUI.lua b/Interface/AddOns/SVUI/SVUI.lua index 15393ec..671bc42 100644 --- a/Interface/AddOns/SVUI/SVUI.lua +++ b/Interface/AddOns/SVUI/SVUI.lua @@ -76,19 +76,288 @@ local assert = enforce; OBJECT CONSTRUCTOR GLOBAL ########################################################## ]]-- -local rootstring = function(self) return self.name end +local PreLoadQueue, InitQueue, PostLoadQueue = {},{},{}; -function SVUI_LIB:SetObject(globalName) - local r = {} - r.name = globalName +local INFO_BY = "%s by %s"; +local INFO_VERSION = "%s%s - Version: %d"; +local INFO_NEW = "%s (Newest: %d)"; +local INFO_NAME = "Plugins"; +local INFO_HEADER = "SuperVillain UI (version %.3f): Plugins"; + +if GetLocale() == "ruRU" then + INFO_BY = "%s от %s"; + INFO_VERSION = "%s%s - Версия: %d"; + INFO_NEW = "%s (Последняя: %d)"; + INFO_NAME = "Плагины"; + INFO_HEADER = "SuperVillain UI (устарела %.3f): Плагины"; +end + +local rootstring = function(self) return self.__namekey end + +local changeDBVar = function(self, value, key, sub1, sub2, sub3) + local config = self.__owner.db[self.__namekey] + if((sub1 and sub2 and sub3) and (config[sub1] and config[sub1][sub2] and config[sub1][sub2][sub3])) then + self.__owner.db[self.__namekey][sub1][sub2][sub3][key] = value + elseif((sub1 and sub2) and (config[sub1] and config[sub1][sub2])) then + self.__owner.db[self.__namekey][sub1][sub2][key] = value + elseif(sub1 and config[sub1]) then + self.__owner.db[self.__namekey][sub1][key] = value + else + self.__owner.db[self.__namekey][key] = value + end + self.db = self.__owner.db[self.__namekey] +end + +local innerOnEvent = function(self, event, ...) + local obj = self.__owner + if self[event] and type(self[event]) == "function" then + self[event](obj, event, ...) + end +end + +local registerEvent = function(self, eventname, eventfunc) + if not self.___eventframe then + self.___eventframe = CreateFrame("Frame", nil) + self.___eventframe.__owner = self + self.___eventframe:SetScript("OnEvent", innerOnEvent) + end + local fn = eventfunc + if type(eventfunc) == "string" then + fn = self[eventfunc] + elseif(not fn and self[eventname]) then + fn = self[eventname] + end + self.___eventframe[eventname] = fn + self.___eventframe:RegisterEvent(eventname) +end + +local unregisterEvent = function(self, event, ...) + if(self.___eventframe) then + self.___eventframe:UnregisterEvent(event) + end +end + +local addonEvent = function(self, event, addon) + if addon == "SVUI_ConfigOMatic" then + local list = self.__owner.Plugins + for i, plugin in pairs(list) do + if(plugin.callback) then + plugin.callback() + end + end + end +end + +local function SetPrototype(obj, name, parent) + local addonmeta = {} + local oldmeta = getmetatable(obj) + if oldmeta then + for k, v in pairs(oldmeta) do addonmeta[k] = v end + end + addonmeta.__tostring = rootstring + setmetatable( obj, addonmeta ) + obj.__namekey = name + obj.__owner = parent + if(parent.db[name]) then + obj.db = parent.db[name] + end + obj.initialized = false + obj.CombatLocked = false + obj.ChangeDBVar = changeDBVar + obj.RegisterEvent = registerEvent + obj.UnregisterEvent = unregisterEvent + return obj +end + +local Registry_SetCallback = function(self, fn) + if(fn and type(fn) == "function") then + self.Callbacks[#self.Callbacks+1] = fn + end +end + +local Registry_NewScript = function(self, fn) + if(fn and type(fn) == "function") then + PostLoadQueue[#PostLoadQueue+1] = fn + end +end + +local Registry_NewPackage = function(self, obj, name, priority) + if self.__owner[name] then return end + if(priority == "pre") then + PreLoadQueue[#PreLoadQueue+1] = name + else + InitQueue[#InitQueue+1] = name + end + self.Packages[#self.Packages+1] = name + self.__owner[name] = SetPrototype(obj, name, self.__owner) + + if(self.__owner.CoreEnabled) then + if(self.__owner[name].Load) then + self.__owner[name]:Load() + end + end +end + +local Registry_FetchPlugins = function(self) + local list = ""; + for name, plugin in pairs(self.Plugins) do + if name ~= self.MAJOR then + local author = GetAddOnMetadata(name, "Author") + local Pname = GetAddOnMetadata(name, "Title") or name + local color = plugin.old and "|cffFF0000" or "|cff00FF00" + list = ("%s%s"):format(list, Pname) + if author then + list = self.INFO_BY:format(list, author) + end + list = self.INFO_VERSION:format(list, color, plugin.version) + if plugin.old then + list = self.INFO_NEW:format(list, plugin.newversion) + end + list = ("%s|r\n"):format(list) + end + end + return list +end + +local Registry_NewPlugin = function(self, name, func) + local ver = name == self.MAJOR and self.MINOR or GetAddOnMetadata(name, "Version") + self.Plugins[name] = { + version = ver, + callback = func + } + local enable, loadable = select(4,GetAddOnInfo("SVUI_ConfigOMatic")) + if(enable and loadable and IsAddOnLoaded("SVUI_ConfigOMatic")) then + if name ~= self.MAJOR then + self.__owner.Options.args.plugins.args.pluginlist.name = self:FetchPlugins() + end + if(func) then + func() + end + end +end + +local Registry_RunCallbacks = function(self) + for i=1, #self.Callbacks do + local fn = self.Callbacks[i] + if(fn and type(fn) == "function") then + fn() + end + end +end + +local Registry_Update = function(self, name, dataOnly) + local obj = self.__owner[name] + if obj then + if obj.ReLoad and not dataOnly then + obj:ReLoad() + end + end +end + +local Registry_UpdateAll = function(self) + local list = self.Packages + for _,name in pairs(list) do + local obj = self.__owner[name] + if obj and obj.ReLoad then + obj:ReLoad() + end + end +end + +local Registry_Lights = function(self) + if not PreLoadQueue then return end + for i=1,#PreLoadQueue do + local name = PreLoadQueue[i] + local obj = self.__owner[name] + if obj and not obj.initialized then + if self.__owner.db[name] then + obj.db = self.__owner.db[name] + end + if obj.Load then + obj:Load() + obj.Load = nil + end + obj.initialized = true; + end + end + PreLoadQueue = nil +end + +local Registry_Camera = function(self) + if not InitQueue then return end + for i=1,#InitQueue do + local name = InitQueue[i] + local obj = self.__owner[name] + if obj and not obj.initialized then + if self.__owner.db[name] then + obj.db = self.__owner.db[name] + end + if obj.Load then + obj:Load() + obj.Load = nil + end + obj.initialized = true; + end + end + InitQueue = nil +end + +local Registry_Action = function(self) + if not PostLoadQueue then return end + for i=1, #PostLoadQueue do + local fn = PostLoadQueue[i] + if(fn and type(fn) == "function") then + fn() + end + end + PostLoadQueue = nil +end + +local AppendRegistry = function(obj, major, minor) + local methods = { + __owner = obj, + Packages = {}, + Plugins = {}, + Callbacks = {}, + MAJOR = major, + MINOR = minor, + INFO_BY = INFO_BY, + INFO_VERSION = INFO_VERSION, + INFO_NEW = INFO_NEW, + INFO_NAME = INFO_NAME, + INFO_HEADER = INFO_HEADER, + SetCallback = Registry_SetCallback, + NewScript = Registry_NewScript, + NewPackage = Registry_NewPackage, + FetchPlugins = Registry_FetchPlugins, + NewPlugin = Registry_NewPlugin, + RunCallbacks = Registry_RunCallbacks, + Update = Registry_Update, + UpdateAll = Registry_UpdateAll, + Lights = Registry_Lights, + Camera = Registry_Camera, + Action = Registry_Action + } + local mt = {__tostring = rootstring} + setmetatable(methods, mt) + return methods +end + +function SVUI_LIB:SetObject(major, minor, registry) + local obj = {} + obj.__namekey = major + obj.version = minor local mt = {} - local old = getmetatable(r) + local old = getmetatable(obj) if old then for k, v in pairs(old) do mt[k] = v end end mt.__tostring = rootstring - setmetatable(r, mt) - return r + setmetatable(obj, mt) + if(registry) then + obj.Registry = AppendRegistry(obj, major, minor) + end + return obj end --[[ ########################################################## @@ -154,18 +423,18 @@ local function formatValueString(text) return "'"..text.."'"; else return '"'..gsub(text,'"','\\"')..'"'; - end; + end else return tostring(text); end -end; +end local function formatKeyString(text) if "string"==type(text) and match(text,"^[_%a][_%a%d]*$") then return text; else return "["..formatValueString(text).."]"; end -end; +end local function RegisterCallback(self, m, h) assert(type(m) == "string" or type(m) == "function", "Bad argument #1 to :RegisterCallback (string or function expected)") if type(m) == "string" then @@ -175,7 +444,7 @@ local function RegisterCallback(self, m, h) end callbacks[m] = h or true numCallbacks = numCallbacks + 1 -end; +end local function UnregisterCallback(self, m, h) assert(type(m) == "string" or type(m) == "function", "Bad argument #1 to :UnregisterCallback (string or function expected)") if type(m) == "string" then @@ -185,16 +454,16 @@ local function UnregisterCallback(self, m, h) end callbacks[m] = nil numCallbacks = numCallbacks + 1 -end; +end local function DispatchCallbacks() - if (numCallbacks < 1) then return end; + if (numCallbacks < 1) then return end for m, h in pairs(callbacks) do local ok, err = pcall(m, h ~= true and h or nil) if not ok then print("ERROR:", err) end end -end; +end --[[ ########################################################## BUILD CLASS COLOR GLOBAL @@ -241,7 +510,7 @@ do end end classes = nil -end; +end --[[ ########################################################## APPENDED GLOBAL FUNCTIONS @@ -252,7 +521,7 @@ function math.parsefloat(value,decimal) local calc1 = 10 ^ decimal; local calc2 = (value * calc1) + 0.5; return floor(calc2) / calc1 - end; + end return floor(value + 0.5) end @@ -262,20 +531,20 @@ function table.dump(targetTable) for key,value in ipairs(targetTable) do tinsert(dumpTable, formatValueString(value)); dumpCheck[key] = true; - end; + end for key,value in pairs(targetTable) do if not dumpCheck[key] then tinsert(dumpTable, "\n "..formatKeyString(key).." = "..formatValueString(value)); end - end; + end local output = tconcat(dumpTable, ", "); return "{ "..output.." }"; end function table.copy(targetTable,deepCopy,mergeTable) mergeTable = mergeTable or {}; - if targetTable==nil then return nil end; - if mergeTable[targetTable] then return mergeTable[targetTable] end; + if targetTable==nil then return nil end + if mergeTable[targetTable] then return mergeTable[targetTable] end local replacementTable = {} for key,value in pairs(targetTable)do if deepCopy and type(value) == "table" then @@ -283,7 +552,7 @@ function table.copy(targetTable,deepCopy,mergeTable) else replacementTable[key] = value end - end; + end setmetatable(replacementTable, table.copy(getmetatable(targetTable), deepCopy, mergeTable)) mergeTable[targetTable] = replacementTable; return replacementTable diff --git a/Interface/AddOns/SVUI/SVUI.toc b/Interface/AddOns/SVUI/SVUI.toc index 6e80712..c677785 100644 --- a/Interface/AddOns/SVUI/SVUI.toc +++ b/Interface/AddOns/SVUI/SVUI.toc @@ -4,16 +4,10 @@ ## Title: |cffFF9900SVUI|r ## Notes: Supervillain UI [|cff9911FFCore Framework|r]. ## SavedVariables: SVUI_Global, SVUI_AuraFilters -## SavedVariablesPerCharacter: SVUI_Profile, SVUI_Cache +## SavedVariablesPerCharacter: SVUI_Profile, SVUI_Cache, SVUI_AuraWatch ## OptionalDeps: Blizzard_DebugTools, Blizzard_PetJournal, SharedMedia ## X-oUF: oUF_SuperVillain ## X-Notes: Special thanks to Elv and Tukz for their incredible work. ## X-Email: munglunch@gmail.com SVUI.xml -SVUI.lua -libs\_load.xml -language\_load.xml -system\_load.xml -packages\_load.xml -scripts\_load.xml \ No newline at end of file diff --git a/Interface/AddOns/SVUI/SVUI.xml b/Interface/AddOns/SVUI/SVUI.xml index 247d57d..8859dfe 100644 --- a/Interface/AddOns/SVUI/SVUI.xml +++ b/Interface/AddOns/SVUI/SVUI.xml @@ -193,4 +193,69 @@ + +