comparison ReAction.lua @ 33:c54c481ad0ed

- Moved bar control frame from ConfigUI to Bar - Added LICENSE.txt - added profile management options - other minor cleanup
author Flick <flickerstreak@gmail.com>
date Thu, 03 Apr 2008 20:25:40 +0000
parents 0d95ce7a9ec2
children 52ac6db0c8ca
comparison
equal deleted inserted replaced
32:821b2b7edff1 33:c54c481ad0ed
1 -- ReAction.lua 1 -- ReAction.lua
2 -- See modules/ReAction_ModuleTemplate for Module API listing 2 -- See modules/ReAction_ModuleTemplate for Module API listing
3 -- See Bar.lua for Bar object listing 3 -- See Bar.lua for Bar object listing
4 local MAJOR_VERSION = GetAddOnMetadata("ReAction","Version")
5
6 ------ LIBRARIES ------
7 local L = LibStub("AceLocale-3.0"):GetLocale("ReAction")
8 4
9 ------ CORE ------ 5 ------ CORE ------
10 local ReAction = LibStub("AceAddon-3.0"):NewAddon( "ReAction", 6 local ReAction = LibStub("AceAddon-3.0"):NewAddon( "ReAction",
11 "AceConsole-3.0" 7 "AceConsole-3.0",
8 "AceEvent-3.0"
12 ) 9 )
13 ReAction.revision = tonumber(("$Revision: 1 $"):match("%d+")) 10 ReAction.version = GetAddOnMetadata("ReAction","Version")
14 ReAction.version = MAJOR_VERSION 11 ReAction.revision = tonumber(("$Revision$"):match("%d+"))
15 ReAction.L = L
16 12
17 ------ GLOBALS ------ 13 ------ GLOBALS ------
18 _G["ReAction"] = ReAction 14 _G["ReAction"] = ReAction
19 15
20 ------ DEBUGGING ------ 16 ------ DEBUGGING ------
25 end 21 end
26 --seterrorhandler(ReAction.print) 22 --seterrorhandler(ReAction.print)
27 else 23 else
28 ReAction.print = function() end 24 ReAction.print = function() end
29 end 25 end
26
27 ------ LIBRARIES ------
28 local L = LibStub("AceLocale-3.0"):GetLocale("ReAction")
29 ReAction.L = L
30 30
31 ------ PRIVATE ------ 31 ------ PRIVATE ------
32 local SelectBar, DestroyBar, InitializeBars, TearDownBars, DeepCopy, SafeCall, CheckMethod, SlashHandler 32 local SelectBar, DestroyBar, InitializeBars, TearDownBars, DeepCopy, SafeCall, CheckMethod, SlashHandler
33 do 33 do
34 local pcall = pcall 34 local pcall = pcall
110 error("Invalid method") 110 error("Invalid method")
111 end 111 end
112 end 112 end
113 113
114 local function CallOptsModule(method,...) 114 local function CallOptsModule(method,...)
115 local m = ReAction:GetModule("ConfigUI",true) 115 local m = ReAction:GetModule("ConfigUI",true)
116 if not m then 116 if not m then
117 LoadAddOn("ReAction_ConfigUI") 117 LoadAddOn("ReAction_ConfigUI")
118 m = ReAction:GetModule("ConfigUI") 118 m = ReAction:GetModule("ConfigUI")
119 end 119 end
120 if m and type(m) == "table" and type(m[method]) == "function" then 120 if m and type(m) == "table" and type(m[method]) == "function" then
121 m[method](m,...) 121 m[method](m,...)
122 else 122 else
123 ReAction:Print("Options module not found") 123 ReAction:Print("Options module not found")
124 end 124 end
125 end 125 end
126 126
127 SlashHandler = function(option) 127 SlashHandler = function(option)
128 if option == "config" then 128 if option == "config" then
129 CallOptsModule("OpenConfig",true) 129 CallOptsModule("OpenConfig",true)
130 elseif option == "unlock" then 130 elseif option == "unlock" then
131 CallOptsModule("SetConfigMode",true) 131 ReAction:SetConfigMode(true)
132 elseif option == "lock" then 132 elseif option == "lock" then
133 CallOptsModule("SetConfigMode",false) 133 ReAction:SetConfigMode(false)
134 else 134 else
135 ReAction:Print(ReAction.version) 135 ReAction:Print(ReAction.version)
136 ReAction:Print("/reaction config") 136 ReAction:Print("/reaction config")
137 ReAction:Print("/reaction unlock") 137 ReAction:Print("/reaction unlock")
138 ReAction:Print("/reaction lock") 138 ReAction:Print("/reaction lock")
154 ) 154 )
155 self.db.RegisterCallback(self,"OnProfileChanged") 155 self.db.RegisterCallback(self,"OnProfileChanged")
156 self.callbacks = LibStub("CallbackHandler-1.0"):New(self) 156 self.callbacks = LibStub("CallbackHandler-1.0"):New(self)
157 self:RegisterChatCommand("reaction", SlashHandler) 157 self:RegisterChatCommand("reaction", SlashHandler)
158 self:RegisterChatCommand("rxn", SlashHandler) 158 self:RegisterChatCommand("rxn", SlashHandler)
159 self:RegisterEvent("PLAYER_REGEN_DISABLED")
159 160
160 self.bars = {} 161 self.bars = {}
161 end 162 end
162 163
163 function ReAction:OnEnable() 164 function ReAction:OnEnable()
167 function ReAction:OnDisable() 168 function ReAction:OnDisable()
168 TearDownBars() 169 TearDownBars()
169 end 170 end
170 171
171 function ReAction:OnProfileChanged() 172 function ReAction:OnProfileChanged()
172 self.TearDownBars() 173 TearDownBars()
173 self.InitializeBars() 174 InitializeBars()
174 end 175 end
175 176
176 function ReAction:OnModuleEnable(module) 177 function ReAction:OnModuleEnable(module)
177 if module.ApplyToBar then 178 if module.ApplyToBar then
178 for _, b in pairs(bars) do 179 for _, b in pairs(bars) do
190 module:RemoveFromBar(b) 191 module:RemoveFromBar(b)
191 end 192 end
192 end 193 end
193 end 194 end
194 end 195 end
196
197 function ReAction:PLAYER_REGEN_DISABLED()
198 if self.configMode == true then
199 UIErrorsFrame:AddMessage(L["ReAction config mode disabled during combat."])
200 self:SetConfigMode(false)
201 end
202 end
203
195 204
196 205
197 ------ API ------ 206 ------ API ------
198 function ReAction:CallMethodOnAllModules(method, ...) 207 function ReAction:CallMethodOnAllModules(method, ...)
199 local m = CheckMethod(method) 208 local m = CheckMethod(method)
227 profile.bars[name] = profile.bars[name] or DeepCopy(defaultConfig) 236 profile.bars[name] = profile.bars[name] or DeepCopy(defaultConfig)
228 local bar = self.Bar:new( name, profile.bars[name] ) -- ReAction.Bar defined in Bar.lua 237 local bar = self.Bar:new( name, profile.bars[name] ) -- ReAction.Bar defined in Bar.lua
229 self:CallMethodOnAllModules("ApplyToBar", bar) 238 self:CallMethodOnAllModules("ApplyToBar", bar)
230 self.bars[name] = bar 239 self.bars[name] = bar
231 self.callbacks:Fire("OnCreateBar", bar) 240 self.callbacks:Fire("OnCreateBar", bar)
241 if self.configMode then
242 bar:ShowControls(true)
243 end
244
232 return bar 245 return bar
233 end 246 end
234 247
235 function ReAction:EraseBar(x) 248 function ReAction:EraseBar(x)
236 local bar, name = SelectBar(x) 249 local bar, name = SelectBar(x)
293 end 306 end
294 307
295 function ReAction:RefreshOptions() 308 function ReAction:RefreshOptions()
296 self.callbacks:Fire("OnOptionsRefreshed") 309 self.callbacks:Fire("OnOptionsRefreshed")
297 end 310 end
311
312 function ReAction:SetConfigMode( mode )
313 self:CallMethodOnAllBars("ShowControls",mode)
314 self:CallMethodOnAllModules("ApplyConfigMode",mode,self.bars)
315 self.configMode = mode
316 end