Quartz
Quartz is a modular approach to a casting bar addon. An overview of (hopefully most of) the modules:
*Player
The core of Quartz is lightweight implementation of a standard casting bar, with configurable size, text and icon positioning, and colors.
*Target/Focus
Implementation of target and focus casting bars in similar fashion to the player cast bar.
*Buffs
Display of target and focus buffs and debuffs as duration bars.
*Flight
Hooks into FlightMap or InFlight to display the current flight progress on your casting bar.
*Global Cooldown
Displays a tiny spark-bar to show your Global Cooldown near the cast bar. Helpful for those who'd rather not squint at their action bars to see when they can cast again.
*Interrupt
Changes the color and text of your casting bar to help show that your cast has been interrupted (and show who interrupted it).
*Latency
Displays the amount of time spent between cast send and start events, in the form of a bar at the end of your casting bar, with optional text that displays the actual duration of the lag. This helps in canceling casts when they will not actually be interrupted, especially for users with consistently high pings.
*Mirror
Shows the 'basic' timers such as breath and feign death, as well as some 'odd' ones such as party invite time, resurrect timeout, and arena game start, and a framework for injecting custom timers into the bars.
*Range
Recolors the casting bar when your cast target moves out of range mid-cast.
*Swing
Displays a swing timer for your melee weapon as well as hunter autoshot.
*Timer
Allows for creating custom timers displayed on the mirror bars.
*Tradeskill Merge
Merges multiple casts of the same tradeskill item into one big cast bar.
Use /quartz to bring up the configuration menu.
AceHook-3.0-5 (Ace3):164: in function <Ace3\AceHook-3.0\AceHook-3.0.lua:118>
AceHook-3.0-5 (Ace3):325: in function `RawHook'
Quartz-3.0.4-1-g36a3f6e\modules\Tradeskill.lua:88: in function <Quartz\modules\Tradeskill.lua:87>
(tail call): ?:
<in C code>: ?
<string>:"safecall Dispatcher[1]":9: in function <[string "safecall Dispatcher[1]"]:5>
(tail call): ?:
AceAddon-3.0-10 (Ace3):543: in function `EnableAddon'
AceAddon-3.0-10 (Ace3):556: in function `EnableAddon'
AceAddon-3.0-10 (Ace3):635: in function <Ace3\AceAddon-3.0\AceAddon-3.0.lua:621>
<in C code>: in function `LoadAddOn'
PitBull4-v4.0.0-beta19\Main.lua:1138: in function `LoadModules'
...:
(tail call): ?:
<in C code>: ?
<string>:"safecall Dispatcher[1]":9: in function <[string "safecall Dispatcher[1]"]:5>
(tail call): ?:
AceAddon-3.0-10 (Ace3):543: in function `EnableAddon'
AceAddon-3.0-10 (Ace3):635: in function <Ace3\AceAddon-3.0\AceAddon-3.0.lua:621>
<in C code>: in function `LoadAddOn'
Interface\FrameXML\UIParent.lua:244: in function `UIParentLoadAddOn':
Interface\FrameXML\UIParent.lua:267: in function `CombatLog_LoadUI':
Interface\FrameXML\UIParent.lua:521: in function <Interface\FrameXML\UIParent.lua:494>:
---
Date: 2011-02-08 19:17:09
ID: 1
Error occured in: Global
Count: 1
Message: ..\AddOns\Quartz\modules\Latency.lua line 100:
attempt to call field 'UNIT_SPELLCAST_START' (a nil value)
Debug:
[C]: UNIT_SPELLCAST_START()
Quartz\modules\Latency.lua:100:
Quartz\modules\Latency.lua:99
(tail call): ?
[C]: UNIT_SPELLCAST_START()
Quartz\modules\Tradeskill.lua:129:
Quartz\modules\Tradeskill.lua:95
(tail call): ?
(tail call): ?
Quartz\CastBarTemplate.lua:252: ?()
Quartz\CastBarTemplate.lua:126:
Quartz\CastBarTemplate.lua:124
Count: 1
Message: ..\AddOns\Quartz\modules\Latency.lua line 100:
attempt to call field 'UNIT_SPELLCAST_START' (a nil value)
Debug:
[C]: UNIT_SPELLCAST_START()
Quartz\modules\Latency.lua:100:
Quartz\modules\Latency.lua:99
(tail call): ?
[C]: UNIT_SPELLCAST_START()
Quartz\modules\Tradeskill.lua:129:
Quartz\modules\Tradeskill.lua:95
(tail call): ?
(tail call): ?
Quartz\CastBarTemplate.lua:252: ?()
Quartz\CastBarTemplate.lua:126:
Quartz\CastBarTemplate.lua:124
hehe
#1 - modules/player.lua
Go to line 190 and remove it or comment it out by adding "--" at the beginning of it.
#2 - modules/latency.lua
Go to lines 67 and 68 and change "RawHook" to "SecureHook"
Date: 2011-02-08 17:19:55
ID: 1
Error occured in: Global
Count: 1
Message: ..\AddOns\Quartz\modules\Latency.lua line 100:
attempt to call field 'UNIT_SPELLCAST_START' (a nil value)
Debug:
[C]: UNIT_SPELLCAST_START()
Quartz\modules\Latency.lua:100:
Quartz\modules\Latency.lua:99
(tail call): ?
[C]: UNIT_SPELLCAST_START()
Quartz\modules\Tradeskill.lua:129:
Quartz\modules\Tradeskill.lua:95
(tail call): ?
(tail call): ?
Quartz\CastBarTemplate.lua:252: ?()
Quartz\CastBarTemplate.lua:126:
Quartz\CastBarTemplate.lua:124
AddOns:
Swatter, v3.1.16 (<%codename%>)
NPCScan, v4.0.3.6
Archy, vv1.7b7
AtlasLoot, vv6.02.00
AtlasLootBurningCrusade, vv6.02.00
AtlasLootCataclysm, vv6.02.00
AtlasLootClassicWoW, vv6.02.00
AtlasLootCrafting, vv6.02.00
AtlasLootWorldEvents, vv6.02.00
AtlasLootWrathoftheLichKing, vv6.02.00
Bagnon, v2.15.2
BagnonForever, v1.1.2
BagnonTooltips, v
Bartender4, v4.4.13
ButtonFacade, v4.0.340
ButtonFacadeDarion, v3.0.3.2
ButtonFacadeDek, v3.0.47
ButtonFacadeDek2, v3.0.47
ButtonFacadeElegance, v3.3.0
ButtonFacadeSerenity, v3.3.56
ButtonFacadeTrinity, v30100.1
ButtonFacadeWire, v0.1
ButtonTimers, v2.1
Chatter, v1.0
DBMCore, v
DebugLib, v5.1.DEV.130
Grid, v1.40000.1403
GridIndicatorCornerPlus, v40000-2
GridStatusRaidDebuff, vv3.1
GridStatusRDCata, v1.1
GTFO, v3.5
LuckyCharms2, vv3.0.0
Mapster, v1.3.11
MikScrollingBattleText, v5.5.91
Omen, v3.0.11
POMAssist, v1.01
Postal, v3.4.4
PowerAuras, v4.4
Quartz, v3.0.4
Recount, v
RSA, v2.552
RSAPriest, v
SexyMap, v
Stubby, v5.7.4568 (KillerKoala)
SunnArt, v3.48
SunnArtPack1, v1.3
SunnArtPack2, v1.3
SunnArtPack3, v1.3
SunnArtPack4, v1.3
SunnArtPack5, v1.4
SunnArtPack6, v1.3
SunnArtPack7, v1.3
SunnArtPack8, v1.3
SunnArtPack9, v1.3
TipTac, v10.12.05
TipTacItemRef, v10.12.06
TipTacTalents, v10.11.23
Titan, v4.3.9.40000 - Revision 386
TitanBag, v4.3.9.40000
TitanClock, v4.3.9.40000
TitanCoords, v4.3.9.40000
TitanGoldTracker, v4.3.9.40000
TitanLootType, v4.3.9.40000
TitanPerformance, v4.3.9.40000
TitanRepair, v4.3.9.40000
TitanVolume, v4.3.9.40000
TitanXP, v4.3.9.40000
XLoot, v0.91.1
XPerl, v3.1.2
XPerlArcaneBar, v
XPerlParty, v
XPerlPartyPet, v
XPerlPlayer, v
XPerlPlayerBuffs, v
XPerlPlayerPet, v
XPerlRaidAdmin, v
XPerlRaidFrames, v
XPerlRaidHelper, v
XPerlRaidPets, v
XPerlTarget, v
XPerlTargetTarget, v
BlizRuntimeLib_enUS v4.0.6.40000 <us>
(ck=7a1)
I committed the Drain Mana fix because it was trivial, and the chance of me doing it in a way you wouldn't like is basically zero. Hopefully!
(error one):
Message: Interface\AddOns\Quartz\modules\Player.lua:190: table index is nil
Time: 02/08/11 14:40:15
Count: 1
Stack: Interface\AddOns\Quartz\modules\Player.lua:190: in main chunk
Locals: Quartz3 =
SetDefaultModuleLibraries = <function> defined @Interface\AddOns\Ace3\AceAddon-3.0\AceAddon-3.0.lua:383
SetModuleEnabled = <function> defined @Interface\AddOns\Quartz\Quartz.lua:210
OnInitialize = <function> defined @Interface\AddOns\Quartz\Quartz.lua:57
RegisterChatCommand = <function> defined @Interface\AddOns\Ace3\AceConsole-3.0\AceConsole-3.0.lua:85
EnableModule = <function> defined @Interface\AddOns\Ace3\AceAddon-3.0\AceAddon-3.0.lua:348
modules =
}
GetModule = <function> defined @Interface\AddOns\Ace3\AceAddon-3.0\AceAddon-3.0.lua:231
IterateEmbeds = <function> defined @Interface\AddOns\Ace3\AceAddon-3.0\AceAddon-3.0.lua:458
defaultModuleLibraries =
}
ToggleLock = <function> defined @Interface\AddOns\Quartz\Quartz.lua:107
GetModuleEnabled = <function> defined @Interface\AddOns\Quartz\Quartz.lua:206
UnregisterChatCommand = <function> defined @Interface\AddOns\Ace3\AceConsole-3.0\AceConsole-3.0.lua:111
Printf = <function> defined @Interface\AddOns\Ace3\AceConsole-3.0\AceConsole-3.0.lua:69
CastBarTemplate =
}
SetDefaultModulePrototype = <function> defined @Interface\AddOns\Ace3\AceAddon-3.0\AceAddon-3.0.lua:425
name = "Quartz3"
IsEnabled = <function> defined @Interface\AddOns\Ace3\AceAddon-3.0\AceAddon-3.0.lua:467
orderedModules =
}
Util =
}
DisableModule = <function> defined @Interface\AddOns\Ace3\AceAddon-3.0\AceAddon-3.0.lua:366
GetArgs = <function> defined @Interface\AddOns\Ace3\AceConsole-3.0\AceConsole-3.0.lua:144
Print = <function> defined @Interface\AddOns\Ace3\AceConsole-3.0\AceConsole-3.0.lua:54
optFrames =
}
CreateStatusBar = <function> defined @Interface\AddOns\Quartz\QuartzStatusBar.lua:32
baseName = "Blizzard_DebugTools"
IsModule = <function> defined @Interface\AddOns\Ace3\AceAddon-3.0\AceAddon-3.0.lua:484
db =
}
SetDefaultModuleState = <function> defined @Interface\AddOns\Ace3\AceAddon-3.0\AceAddon-3.0.lua:403
ShowUnlockDialog = <function> defined @Interface\AddOns\Quartz\Quartz.lua:134
RegisterModuleOptions = <function> defined @Interface\AddOns\Quartz\Config.lua:212
SetEnabledState = <function> defined @Interface\AddOns\Ace3\AceAddon-3.0\AceAddon-3.0.lua:440
defaultModuleState = true
enabledState = true
Lock = <function> defined @Interface\AddOns\Quartz\Quartz.lua:124
Disable = <function> defined @Interface\AddOns\Ace3\AceAddon-3.0\AceAddon-3.0.lua:330
CopySettings = <function> defined @Interface\AddOns\Quartz\Quartz.lua:198
ChatCommand = <function> defined @Interface\AddOns\Quartz\Config.lua:194
Unlock = <function> defined @Interface\AddOns\Quartz\Quartz.lua:112
OnEnable = <function> defined @Interface\AddOns\Quartz\Quartz.lua:64
IterateModules = <function> defined @Interface\AddOns\Ace3\AceAddon-3.0\AceAddon-3.0.lua:453
Enable = <function> defined @Interface\AddOns\Ace3\AceAddon-3.0\AceAddon-3.0.lua:315
NewModule = <function> defined @Interface\AddOns\Ace3\AceAddon-3.0\AceAddon-3.0.lua:256
ApplySettings = <function> defined @Interface\AddOns\Quartz\Quartz.lua:92
GetName = <function> defined @Interface\AddOns\Ace3\AceAddon-3.0\AceAddon-3.0.lua:300
SetupOptions = <function> defined @Interface\AddOns\Quartz\Config.lua:203
Merge = <function> defined @Interface\AddOns\Quartz\Quartz.lua:222
}
L =
Set the color to turn the cast bar when taking a flight path = "Set the color to turn the cast bar when taking a flight path"
Top Left = "Top Left"
Time Text X Offset = "Time Text X Offset"
Text Position = "Text Position"
Duel Request = "Duel Request"
30 seconds = "30 seconds"
Fix bars to a specified duration = "Fix bars to a specified duration"
Alpha = "Alpha"
Change Border Style = "Change Border Style"
Summon = "Summon"
Toggle mirror bar lock = "Toggle mirror bar lock"
Em
(error two):
Message: Interface\AddOns\Quartz\modules\Latency.lua:67: Usage: RawHook([object], method, [handler], [hookSecure]): Attempt to hook secure function UNIT_SPELLCAST_START. Use `SecureHook' or add `true' to the argument list to override.
Time: 02/08/11 14:40:22
Count: 1
Stack: [C]: ?
Interface\AddOns\Ace3\AceHook-3.0\AceHook-3.0.lua:164: in function <Interface\AddOns\Ace3\AceHook-3.0\AceHook-3.0.lua:118>
Interface\AddOns\Ace3\AceHook-3.0\AceHook-3.0.lua:325: in function `RawHook'
Interface\AddOns\Quartz\modules\Latency.lua:67: in function <Interface\AddOns\Quartz\modules\Latency.lua:66>
(tail call): ?
[C]: ?
[string "safecall Dispatcher[1]"]:9: in function <[string "safecall Dispatcher[1]"]:5>
(tail call): ?
Interface\AddOns\Ace3\AceAddon-3.0\AceAddon-3.0.lua:543: in function `EnableAddon'
Interface\AddOns\Ace3\AceAddon-3.0\AceAddon-3.0.lua:556: in function `EnableAddon'
Interface\AddOns\Ace3\AceAddon-3.0\AceAddon-3.0.lua:635: in function <Interface\AddOns\Ace3\AceAddon-3.0\AceAddon-3.0.lua:621>
[C]: in function `LoadAddOn'
Interface\FrameXML\UIParent.lua:244: in function `UIParentLoadAddOn'
Interface\FrameXML\UIParent.lua:267: in function `CombatLog_LoadUI'
Interface\FrameXML\UIParent.lua:521: in function <Interface\FrameXML\UIParent.lua:494>
Locals: <none>
This fixes issues with profiles, and the Tradeskill and Latency modules.