comparison ICU.lua @ 3:43155c3c1700

Fixes to the zone check feature
author Xiiph
date Sun, 06 Feb 2011 14:07:20 +0100
parents e883b490ff93
children 8ec216b40ded
comparison
equal deleted inserted replaced
2:e883b490ff93 3:43155c3c1700
42 advertiseICU = true, 42 advertiseICU = true,
43 noFoodMessage = L["Well Fed reminder!"], 43 noFoodMessage = L["Well Fed reminder!"],
44 noFlaskMessage = L["Flask reminder!"], 44 noFlaskMessage = L["Flask reminder!"],
45 lowFlaskDurationMessage = L["Your Flask runs out in less than 10 minutes!"], 45 lowFlaskDurationMessage = L["Your Flask runs out in less than 10 minutes!"],
46 disabledZones = {}, 46 disabledZones = {},
47 enableAllZones = true,
47 } 48 }
48 } 49 }
49 50
50 function icu:OnInitialize() 51 function icu:OnInitialize()
51 self.db = LibStub("AceDB-3.0"):New("icuDB", defaults, true) 52 self.db = LibStub("AceDB-3.0"):New("icuDB", defaults, true)
60 local AceConfigDialog = LibStub("AceConfigDialog-3.0") 61 local AceConfigDialog = LibStub("AceConfigDialog-3.0")
61 62
62 AceConfig:RegisterOptionsTable("ICU", self.options, {"icu"}) 63 AceConfig:RegisterOptionsTable("ICU", self.options, {"icu"})
63 64
64 AceConfigDialog:AddToBlizOptions("ICU", nil, nil, "general") 65 AceConfigDialog:AddToBlizOptions("ICU", nil, nil, "general")
65 AceConfigDialog:AddToBlizOptions("ICU", "Profiles","ICU","profile")
66 AceConfigDialog:AddToBlizOptions("ICU", "Whispers","ICU","messages") 66 AceConfigDialog:AddToBlizOptions("ICU", "Whispers","ICU","messages")
67 AceConfigDialog:AddToBlizOptions("ICU", "Disabled Zones","ICU","zones") 67 AceConfigDialog:AddToBlizOptions("ICU", "Disabled Zones","ICU","zones")
68 AceConfigDialog:AddToBlizOptions("ICU", "Profiles","ICU","profile")
68 end 69 end
69 70
70 function icu:refreshConfig() 71 function icu:refreshConfig()
71 --print("ICU: Config refreshing ..."); 72 --print("ICU: Config refreshing ...");
72 73
220 }, 221 },
221 }, 222 },
222 zones = { 223 zones = {
223 name = L["Disabled Zones"], 224 name = L["Disabled Zones"],
224 type = 'group', 225 type = 'group',
225 set = function(i,v) self.db.profile.disabledZones[i[#i]] = v end, 226 set = function(i,v)
226 get = function(i) return self.db.profile.disabledZones[i[#i]] end, 227 self.db.profile.disabledZones[i[#i]] = v;
228 end,
229 get = function(i)
230 return self.db.profile.disabledZones[i[#i]];
231 end,
227 args = { 232 args = {
228 help = { 233 help = {
229 type = 'description', 234 type = 'description',
230 name = L['Toggle ICU automatic checking |cffcc0000off|r in the selected zones.'], 235 name = L['Toggle ICU automatic checking |cffcc0000off|r in the selected zones.'],
231 width = 'full', 236 width = 'full',
232 order = 0, 237 order = 0,
233 }, 238 },
239 breakOne = {
240 type = 'description',
241 name = '',
242 order = 1,
243 width = 'full',
244 },
245 enableAllZones = {
246 type = 'toggle',
247 name = L["Enable ICU in all zones"],
248 order = 2,
249 width = 'full',
250 set = function (i,v)
251 self.db.profile.enableAllZones = v;
252 self.options.args.zones.args.bwd.disabled = v;
253 self.options.args.zones.args.bot.disabled = v;
254 self.options.args.zones.args.tfw.disabled = v;
255 self.options.args.zones.args.bh.disabled = v;
256 end,
257 get = function (i) return self.db.profile.enableAllZones end,
258 },
259 breakTwo = {
260 type = 'description',
261 name = '',
262 order = 3,
263 width = 'full',
264 },
234 bwd = { 265 bwd = {
235 type = 'toggle', 266 type = 'toggle',
236 name = L["Blackwing Descent"], 267 name = L["Blackwing Descent"],
237 width = 'double', 268 width = 'double',
269 disabled = self.db.profile.enableAllZones,
238 }, 270 },
239 bot = { 271 bot = {
240 type = 'toggle', 272 type = 'toggle',
241 name = L["Bastion of Twilight"], 273 name = L["Bastion of Twilight"],
242 width = 'double', 274 width = 'double',
275 disabled = self.db.profile.enableAllZones,
243 }, 276 },
244 tfw = { 277 tfw = {
245 type = 'toggle', 278 type = 'toggle',
246 name = L["Throne of the Four Winds"], 279 name = L["Throne of the Four Winds"],
247 width = 'double', 280 width = 'double',
281 disabled = self.db.profile.enableAllZones,
248 }, 282 },
249 bh = { 283 bh = {
250 type = 'toggle', 284 type = 'toggle',
251 name = L["Baradin Hold"], 285 name = L["Baradin Hold"],
252 width = 'double', 286 width = 'double',
253 }, 287 disabled = self.db.profile.enableAllZones,
288 },
289
254 } 290 }
255 }, 291 },
256 profile = LibStub("AceDBOptions-3.0"):GetOptionsTable(self.db), 292 profile = LibStub("AceDBOptions-3.0"):GetOptionsTable(self.db),
257 }, 293 },
258 } 294 }
259 return options 295 return options
260 end 296 end
261 297
262 function icu:inspectRaid(silent,automatic) 298 function icu:inspectRaid(silent,automatic)
263 -- Check if any zones have been disabled 299 -- Check if any zones have been disabled
264 if #self.db.profile.disabledZones > 0 and automatic then 300 if automatic and not self.db.profile.enableAllZones then
265 local currentZone = GetRealZoneText(); 301 local currentZone = GetRealZoneText();
266 302
267 for i = 1, #self.db.profile.disabledZones do 303 for i = 1, #self.db.profile.disabledZones do
268 if currentZone == self.db.profile.disabledZones[i] then return true end 304 if currentZone == self.db.profile.disabledZones[i] and self.db.profile.disabledZones[i] then
305 --@debug@
306 print(currentZone,self.db.profile.disabledZones[i],"Cancelling ICU inspection");
307 --@end-debug@
308 return true
309 end
269 end 310 end
270 end 311 end
271 312
313 local icuAd = "";
314
272 -- Not in a raid group 315 -- Not in a raid group
273 local icuAd = "";
274
275 if GetNumRaidMembers() == 0 then 316 if GetNumRaidMembers() == 0 then
276 return true 317 return true
277 end 318 end
278 319
279 if self.db.profile.advertiseICU then 320 if self.db.profile.advertiseICU then