Minion Beta! - Help us test our new AddOn updater. Get it now!
Download
(19 Kb)
Download
Updated: 10-20-14 09:39 PM
Pictures
File Info
Compatibility:
Warlords of Draenor Pre-Patch (6.0.2)
Siege of Orgrimmar (5.4)
Escalation (5.3)
Thunder Isle (5.2)
Landfall (5.1)
Mists of Pandaria (5.0.4)
Updated:10-20-14 09:39 PM
Created:02-09-09 05:18 PM
Downloads:97,697
Favorites:539
MD5:
6.0.2
CoolLine  Updated less than 3 days ago!  Popular! (More than 5000 hits)
Version: 6.0.001
by: totalpackage [More]
Install CoolLine Fix for fixes to spells with charges and pet battles.

CoolLine is a spell/item cooldown mod that displays icons on a single bar/line to give you an idea of when it will be ready. No statusbar timer and no text timer.

CoolLine is inspired by Forte_Cooldown (a module in the ForteXorcist package). CoolLine is basically a stripped down and standalone version written from scratch. The name comes from putting "cooldown" and "timeline" together (yes, lame).

YouTube Intro

How to Use:
  • Change settings - "/coolline" or check Interface Options -> AddOns
  • Change position and size - unlock to make it draggable and resizable
  • Filter/unfilter a spell or item cooldown - "/coolline Spell Item Name Link"
  • Add more fonts/texture - CoolLine uses LibSharedMedia

External Support:
  • CoolLine.NewCooldown(name, icon, endtime, isplayer)
    • name - unique string id of the cooldown, used as a look-up id
    • icon - string icon path used to display image on the bar
    • endtime - numerical time when the icon should expire, based on GetTime()
    • isplayer - boolean value used to determine if the icon is colored by spell
  • CoolLine.ClearCooldown(unused, name)

Notes:
  • Only one spell/item will be shown in an event that multiple spells/items share the same cooldown (whichever appeared first).
  • By design, icons will often overlap; if you do not like it, this type of cooldown mod is not for you.
  • What you see is what you get. If you like the idea of this mod but want more, I highly suggest checking out ForteXorcist or Ellipsis. I'll most likely ignore requests to make CoolLine more similar to them.
  • CoolLine only does spell/item cooldowns and NOT buff/debuff cooldowns, flight timers, time til enrage, etc; this will NOT change so don't ask.

Recently, I had some requests for donation info, so here it is. Do not feel obligated; donations (or lack of) will not determine what features I do or do not implement.
6.0.001 10/20/2014:
- updated for 6.0
- install CoolLine Fix for support for pet battle and spells with charges

5.4.001 09/21/2013 - updated for 5.4
5.3.002 06/06/2013 - added options for bar border inset
5.3.001 06/05/2013 - updated for 5.3
5.2.001 04/28/2013 - fix Frost Bomb
5.2.001 03/10/2013 - updated for 5.2
5.1.001 12/08/2012 - updated for 5.1

5.0.004 09/18/2012:
- fix for cooldowns that share the same spell name
- performance fixes

5.0.003 09/11/2012 - workaround for several spells not showing
5.0.002 09/05/2012 - fixed cooldowns for grouped spells (ie. totems)
5.0.001 09/04/2012 - updated for 5.0.4

4.3.002 07/24/2012:
- fix support for priests' Chakra/Holy Word spells
- changed the "1m" tick to "30" seconds
- tweaked refresh rate to be a bit smoother

4.3.001 11/29/2011 - update for 4.3
4.2.001 06/29/2011 - update for 4.2
4.1.001 04/26/2011 - update for 4.1

4.0.003 10/30/2010:
- added workarounds for priests' Archangel and Holy Word spells
- cleaned up options menu

4.0.002 10/18/2010 - fix for long wait times at loading screen
4.0.001 10/12/2010 - 4.0 compat
3.3.003 01/16/2010 - removed "30" tick and added "3" tick
3.3.002 01/11/2010 - added LibSharedMedia-3.0 callback support

3.3.001 12/08/2009:
- updated toc for 3.3
- added option to increase icon size
- added option to reset settings

3.2.005 10/30/2009 - fix an issue where cooldowns refreshed to global cooldown did not update properly (ie. Shield Slam with Sword and Board)

3.2.004 10/07/2009:
- added option to save settings per character
- make death knight rune detection more robust to cooldown changes

3.2.003 09/04/2009:
- allow external access to useful CoolLine functions
- added ConfigMode support

3.2.002 08/04/2009 - fix spell cooldowns triggering when runes are on cooldown

3.2.001 08/04/2009:
- toc to 3.2
- fade icons out a bit faster
- text now have a shadow

3.1.006 07/24/2009:
- switched to a 6-minute time scale instead of 10
- performance tweaks
- added more font size values

3.1.004 05/30/2009:
- icons' alpha now constant
- slightly reduced icon fade time

3.1.003 05/22/2009 - slightly tweaked layout

3.1.002 04/24/2009:
- added an optional visual that lets you know if and where a spell is on cooldown when you attempt to cast it

3.1.001 04/14/2009:
- updated for 3.1
- slightly improved performance

3.0.005 03/25/2009:
- prevent error caused by default variables
- replaced "10m" with "9m" because of the offset and size, bar is still 10m long
- added AddonLoader support, set to "delay" by default

3.0.004 02/22/2009 - several minor performance tweaks

3.0.003 02/14/2009:
- slash command to add/remove filter now accepts spell or item links
- added coloring to distinguish player spell from pet/item cooldowns

3.0.002 02/09/2009 - attempt to make it work with other locales

3.0.001 02/09/2009 - Initial upload
Archived Files (12)
File Name
Version
Size
Author
Date
5.4.001
19kB
totalpackage
09-20-13 10:28 PM
5.3.002
19kB
totalpackage
06-06-13 05:20 PM
5.2.002
18kB
totalpackage
04-28-13 05:07 PM
5.1.001
18kB
totalpackage
12-08-12 08:33 AM
5.0.004
18kB
totalpackage
09-18-12 09:10 PM
4.3.002
18kB
totalpackage
07-24-12 08:00 PM
4.2.001
16kB
totalpackage
06-29-11 08:08 PM
4.1.001
16kB
totalpackage
04-26-11 06:23 PM
4.0.003
16kB
totalpackage
10-30-10 07:54 PM
3.3.003
16kB
totalpackage
01-16-10 05:51 PM
3.2.005
16kB
totalpackage
10-30-09 03:27 AM
3.1.006
15kB
totalpackage
07-24-09 02:16 PM


Post A Reply Comment Options
Unread 07-02-09, 04:25 PM  
dryploefo
A Kobold Labourer

Forum posts: 0
File comments: 2
Uploads: 0
Problem with Dual-Specs

I read a few posts back that said that the latest update fixed a problem with talented abilities/skills not showing up until you reload your UI. However, I am still having this problem whenever I swap specs on any of my toons. Talented abilities/skills don't show up until I reload my UI. Is there a way to fix it with any slash commands?
dryploefo is offline Report comment to moderator  
Reply With Quote
Unread 07-03-09, 01:34 AM  
totalpackage
A Fallenroot Satyr
 
totalpackage's Avatar
AddOn Author - Click to view AddOns

Forum posts: 22
File comments: 878
Uploads: 2
Re: Problem with Dual-Specs

Originally posted by dryploefo
I read a few posts back that said that the latest update fixed a problem with talented abilities/skills not showing up until you reload your UI. However, I am still having this problem whenever I swap specs on any of my toons. Talented abilities/skills don't show up until I reload my UI. Is there a way to fix it with any slash commands?
You should provide me steps on how to reproduce your issues cause I cannot find any bug with spec swapping. Also make sure there is no addon conflicts (try running CoolLine by itself). If you must, try "/script CoolLine:SPELLS_CHANGED()" when that problem occurs.
totalpackage is offline Report comment to moderator  
Reply With Quote
Unread 07-06-09, 02:57 AM  
dryploefo
A Kobold Labourer

Forum posts: 0
File comments: 2
Uploads: 0
Well, I have a lot of addons that look like it's conflicting with it. I'm trying to narrow it down to which two addons conflict but there's a lot and I'm going to start with the one's I suspect (Talented, Ghost Pulse, etc). I'll try that this week when I get a chance.

The good news is, I disabled all addons except CoolLine and it works fine when swapping around specs so it seems like it's just a conflict. Thanks again for the script command, that actually works quite well for now. I'll post more once I get more information.
dryploefo is offline Report comment to moderator  
Reply With Quote
Unread 07-23-09, 06:51 AM  
Cladhaire
Salad!
 
Cladhaire's Avatar
WoWInterface Super Moderator
AddOn Author - Click to view AddOns

Forum posts: 1933
File comments: 4519
Uploads: 18
I'm loving this addon as an alternative to CooldownButtons (which I've been using prior to this). One thing I've noticed is that its often very difficult to see what spells I have on cooldown when they're in the same general area (like when I pop two 1 min cooldown spells at roughly the same time). The spells also seem to flip back and forth between what is being shown.

I wonder if there's been any discussion about how it might be made clearer about what spells are on cooldown when they are close together.

Great addon!
__________________
"There's only one thing that I know how to do well and I've often been told that you only can do what you know how to do well, and that's be you-- be what you're like-- be like yourself. And so I'm having a wonderful time, but I'd rather be whistling in the dark..."
Cladhaire is offline Report comment to moderator  
Reply With Quote
Unread 07-23-09, 12:23 PM  
totalpackage
A Fallenroot Satyr
 
totalpackage's Avatar
AddOn Author - Click to view AddOns

Forum posts: 22
File comments: 878
Uploads: 2
Originally posted by Cladhaire
...I wonder if there's been any discussion about how it might be made clearer about what spells are on cooldown when they are close together...
Any suggestions? The flipping back-and-forth behavior is supposed to be the solution to this, or is it poorly implemented (I am working on a smoother flip on PTR)? Various users' settings (bar width/height) hurt the chances of any perfect solution. Also, the basis of this mod is to stay linear without being just another stack like all the other cooldown mods.
totalpackage is offline Report comment to moderator  
Reply With Quote
Unread 07-23-09, 12:40 PM  
Cladhaire
Salad!
 
Cladhaire's Avatar
WoWInterface Super Moderator
AddOn Author - Click to view AddOns

Forum posts: 1933
File comments: 4519
Uploads: 18
Originally posted by totalpackage
Any suggestions? The flipping back-and-forth behavior is supposed to be the solution to this, or is it poorly implemented (I am working on a smoother flip on PTR)? Various users' settings (bar width/height) hurt the chances of any perfect solution. Also, the basis of this mod is to stay linear without being just another stack like all the other cooldown mods.
Yeah, the best I could come up with was text that is shown above, below, or next to the bar showing what spells are in each group. This way you avoid "stacks", but you only need one font string for each conflicting group.

I'll keep playing with it as-is and see if I can get used to it.
__________________
"There's only one thing that I know how to do well and I've often been told that you only can do what you know how to do well, and that's be you-- be what you're like-- be like yourself. And so I'm having a wonderful time, but I'd rather be whistling in the dark..."
Cladhaire is offline Report comment to moderator  
Reply With Quote
Unread 07-23-09, 01:10 PM  
daphoosa
A Kobold Labourer
 
daphoosa's Avatar

Forum posts: 0
File comments: 12
Uploads: 0
Originally posted by totalpackage
Any suggestions? The flipping back-and-forth behavior is supposed to be the solution to this, or is it poorly implemented (I am working on a smoother flip on PTR)? Various users' settings (bar width/height) hurt the chances of any perfect solution. Also, the basis of this mod is to stay linear without being just another stack like all the other cooldown mods.
My partial solution to this problem involves a couple modifications. First I changed the time scale to stop at 5m. Cool downs above 5m just hover at the end of the line blinking, which is enough information to tell me that they're on CD, and that I have a lot of time before I need to worry about them. I also changed the intervals to 0,1,3,9,30,90,5m. By "stretching" the time just before an ability comes of of cool down, it is much easier to see which one is ahead and plan for it.

In addition to these changes, I have changed it to use a Logarithmic function to determine the icon's position when it is more than 1s from coming off of CD (The 1s to 0 interval uses the original code). This provides a much smoother acceleration as the spell travels along the bar. I use a linear function to adjust the throttling based on the time left, so spells at 5m update every 5s and spells at 1s update 60 times a seconds. Spells less than 1s update at 60/s.

@Totalpackage, if you want to see my modifications, send me a pm and I'll email it to you.
daphoosa is offline Report comment to moderator  
Reply With Quote
Unread 07-23-09, 01:17 PM  
Cladhaire
Salad!
 
Cladhaire's Avatar
WoWInterface Super Moderator
AddOn Author - Click to view AddOns

Forum posts: 1933
File comments: 4519
Uploads: 18
Originally posted by daphoosa
My partial solution to this problem involves a couple modifications. First I changed the time scale to stop at 5m. Cool downs above 5m just hover at the end of the line blinking, which is enough information to tell me that they're on CD, and that I have a lot of time before I need to worry about them. I also changed the intervals to 0,1,3,9,30,90,5m. By "stretching" the time just before an ability comes of of cool down, it is much easier to see which one is ahead and plan for it.

In addition to these changes, I have changed it to use a Logarithmic function to determine the icon's position when it is more than 1s from coming off of CD (The 1s to 0 interval uses the original code). This provides a much smoother acceleration as the spell travels along the bar. I use a linear function to adjust the throttling based on the time left, so spells at 5m update every 5s and spells at 1s update 60 times a seconds. Spells less than 1s update at 60/s.

@Totalpackage, if you want to see my modifications, send me a pm and I'll email it to you.
Interesting, I'd love to see how this works for two spells that are a GCD or so away from each other.. but sounds nice!
__________________
"There's only one thing that I know how to do well and I've often been told that you only can do what you know how to do well, and that's be you-- be what you're like-- be like yourself. And so I'm having a wonderful time, but I'd rather be whistling in the dark..."
Cladhaire is offline Report comment to moderator  
Reply With Quote
Unread 07-23-09, 01:37 PM  
totalpackage
A Fallenroot Satyr
 
totalpackage's Avatar
AddOn Author - Click to view AddOns

Forum posts: 22
File comments: 878
Uploads: 2
Computing log is very costly (about 60 times more than a linear function), especially in an OnUpdate animation. That's definitely not happening in CoolLine. I suggest ForteXorcist, which uses that method and allows you to set the time limit of the bar.
totalpackage is offline Report comment to moderator  
Reply With Quote
Unread 07-23-09, 01:42 PM  
Cladhaire
Salad!
 
Cladhaire's Avatar
WoWInterface Super Moderator
AddOn Author - Click to view AddOns

Forum posts: 1933
File comments: 4519
Uploads: 18
Originally posted by totalpackage
Computing log is very costly (about 60 times more than a linear function), especially in an OnUpdate animation. That's definitely not happening in CoolLine. I suggest ForteXorcist, which uses that method and allows you to set the time limit of the bar.
Just throwing this one out there (I totally respect where you're coming from, there are way too many authors who have absolutely no restraint), but what about pre-computing the log tables beforehand and then using them. Would that make that model feasible? I'm not even sure if that's something that could work or be done.
__________________
"There's only one thing that I know how to do well and I've often been told that you only can do what you know how to do well, and that's be you-- be what you're like-- be like yourself. And so I'm having a wonderful time, but I'd rather be whistling in the dark..."
Cladhaire is offline Report comment to moderator  
Reply With Quote
Unread 07-23-09, 02:38 PM  
daphoosa
A Kobold Labourer
 
daphoosa's Avatar

Forum posts: 0
File comments: 12
Uploads: 0
Originally posted by totalpackage
Computing log is very costly (about 60 times more than a linear function), especially in an OnUpdate animation. That's definitely not happening in CoolLine. I suggest ForteXorcist, which uses that method and allows you to set the time limit of the bar.
I appreciate your concern, but in my opinion, I think you're over emphasizing the computational cost. In a couple of seconds my throttling could be tweaked to a more moderate level. Also, anyone who is actually running at 60fps in a raid has plenty of cpu power to compute a single log per moving CD per frame. Note, I'm doing no Log computations for CD's at 5m and higher, and any 1s and under.

Anecdotally, I have been running 25man raids for a couple of weeks on a moderate computer with a full set of addons with no perceivable degradation.

On a side note, I have little desire to use ForteXorcist as your program is exactly what I need after a few adjustments.

edit: grammar/spelling
Last edited by daphoosa : 07-23-09 at 03:37 PM.
daphoosa is offline Report comment to moderator  
Reply With Quote
Unread 07-24-09, 08:19 AM  
daphoosa
A Kobold Labourer
 
daphoosa's Avatar

Forum posts: 0
File comments: 12
Uploads: 0
Originally posted by totalpackage
Computing log is very costly (about 60 times more than a linear function), especially in an OnUpdate animation. That's definitely not happening in CoolLine. I suggest ForteXorcist, which uses that method and allows you to set the time limit of the bar.
Update:

I ran some tests and cannot measure a difference in cpu usage between a linear function version, and a log function version. I used Performance_Fu to do cpu profiling and watched the addon specific cpu usage as I increased the number of CD's. On my computer, with 9 CD's between 1s and 5m the max cpu usage for either version was the same at 0.35%. With a single CD, they both showed about 0.02% usage.

My first guess as to why this is would be is that the work of scanning for new CD's and then tracking current ones is so much greater than computing their positions that the extra cpu power needed to compute a log function is not significant.

I have not looked closely at Performance_Fu to see how it works and what it is actually measuring, but it seems to show both versions scaling as the number of CD's increases. This indicates to me that it is measuring something about the amount of CPU time that they are using. Given this, the relative difference it shows should be an indication of the performance even if the absolute value it generates is biased.

In conclusion, I appreciate your work producing this great addon and the care you have put into making it light and efficient. My interest here is only to try to help make it even better. Sincerely, ~Daphoosa
daphoosa is offline Report comment to moderator  
Reply With Quote
Unread 07-24-09, 02:15 PM  
totalpackage
A Fallenroot Satyr
 
totalpackage's Avatar
AddOn Author - Click to view AddOns

Forum posts: 22
File comments: 878
Uploads: 2
I used a bench function to measure its cost, but try using a mod like Interface Usage, which profiles OnUpdate frames. The impact isn't noticeable, maybe just a few milliseconds, but that's a big deal for me as an author and maybe any class with a bunch of fast cooldowns.

Oh yea, I forgot to mention that I would like to keep the symmetry of the bar. I may end up changing the time scale since it seems many cooldowns have been reduced without me noticing. I'll just do that now.
totalpackage is offline Report comment to moderator  
Reply With Quote
Unread 07-25-09, 08:51 AM  
Malthus
A Murloc Raider
 
Malthus's Avatar

Forum posts: 8
File comments: 47
Uploads: 0
Compromise?

Originally posted by daphoosa
In conclusion, I appreciate your work producing this great addon and the care you have put into making it light and efficient. My interest here is only to try to help make it even better. Sincerely, ~Daphoosa
Could this discussion be concluded perhaps by creating a "fork" of Cooline in the form of a "patch" or "optional files" maintained by Daphoosa that contains the version with logarithmic scale and whatnot? This way both we, the users and you, the authors would benefit: those who want logarithmic scale could get it, and totalpackage would not need to answer requests for log scale...

Just an idea.
Malthus is offline Report comment to moderator  
Reply With Quote
Unread 07-25-09, 05:15 PM  
daphoosa
A Kobold Labourer
 
daphoosa's Avatar

Forum posts: 0
File comments: 12
Uploads: 0
Originally posted by totalpackage
I used a bench function to measure its cost, but try using a mod like Interface Usage, which profiles OnUpdate frames. The impact isn't noticeable, maybe just a few milliseconds, but that's a big deal for me as an author and maybe any class with a bunch of fast cooldowns.
The value I see in a cool down timeline is not as much the ability to precisely tell the absolute time left on a CD, as it is to give an intuitive feeling for the relative chronological order of CDs at a quick glance. Given this, the value I see in programming efficiency is not that the CD's position perfectly reflects its time left, but that it runs without using excessive resources on a marginal machine. We are also talking about a server/client game with a very real inherent latency. To me as an user, the aesthetic smoothness of an icon gliding down a logarithmic curve is worth a couple of milliseconds of absolute accuracy.

Another change I am playing with is during the final segment having the icon grow to " iconsize * 1.5 " and then snap to 0 on the timeline and " iconsize * 2 " once it hits 60ms time left. This is because I felt that it was a bit difficult to see the exact moment that the ability came off of CD when it very smoothly increased in size and then very smoothly faded out. A nice side effect of this change is that now the spells fade out completely instead of clipping the last faded frame. This is due to my adjusting the program execution order to evaluate the fade equation before setting the icon fade value (since now an average player will have 2-3 frames with the icon at full before it starts to fade.)


Originally posted by totalpackage
Oh yea, I forgot to mention that I would like to keep the symmetry of the bar... [/b]
If I understand you right, you want the numbers to be spaced evenly. With the current log function I use, my markings are very close to exactly spaced like yours (the largest deviation from perfect is " section * 2.93 " at the 4th mark). My current bar is about 180 pixels long and I can't really tell that they aren't perfectly spaced. My last tick should probably read "4m" but I have mixed feelings about doing this.

Code:
		tick0 = createfs(tick0, "0", 0, "LEFT")
		tick1 = createfs(tick1, "1", section)
		tick10 = createfs(tick10, "3", section * 1.96)
		tick30 = createfs(tick30, "9", section * 2.93)
		tick60 = createfs(tick60, "30", section * 3.98)
		tick120 = createfs(tick120, "90", section * 4.94)
		tick300 = createfs(tick300, "5m", section * 6, "RIGHT")
daphoosa is offline Report comment to moderator  
Reply With Quote
Post A Reply



Category Jump:

Support AddOn Development!

You have just downloaded by the author . If you like this AddOn why not consider supporting the author? This author has set up a donation account. Donations ensure that authors can continue to develop useful tools for everyone.