Download
(17Kb)
Download
Updated: 08-19-18 03:41 PM
Pictures
File Info
Compatibility:
Battle for Azeroth (8.0.1)
Updated:08-19-18 03:41 PM
Created:02-09-09 05:18 PM
Downloads:125,111
Favorites:531
MD5:

CoolLine  Popular! (More than 5000 hits)

Version: 8.0.002
by: totalpackage, Phanx, Uitat

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 (TotalPackage) 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.

CoolLine
8.0.002 (2018-08-19)
Full Changelog Previous releases
  • Remove special treatment for obsolete DK spells
Post A Reply Comment Options
Unread 06-30-10, 01:18 PM  
teamfirehawk
A Kobold Labourer

Forum posts: 0
File comments: 11
Uploads: 0
Is there any way to adjust the maximum duration?
Report comment to moderator  
Reply With Quote
Unread 06-07-10, 03:57 PM  
sacrife
An Onyxian Warder
 
sacrife's Avatar
AddOn Author - Click to view AddOns

Forum posts: 384
File comments: 144
Uploads: 3
Nevermind, I'm a retard. I managed to delete the backdrop.tga because I thought it was for something else. Which was the border for the buttons.
__________________

Last edited by sacrife : 06-07-10 at 04:19 PM.
Report comment to moderator  
Reply With Quote
Unread 06-07-10, 01:01 PM  
totalpackage
A Fallenroot Satyr
 
totalpackage's Avatar
AddOn Author - Click to view AddOns

Forum posts: 27
File comments: 940
Uploads: 10
Originally posted by sacrife
What would I need to do to set the icon border/in cooldown(fail) border based on the lua only (take away its function to check the savedvariables/database).

You have a PM with more spesific details if you are able to assist.
Warranty voided. Just use a diff program to see what you removed by mistake or start over.
Report comment to moderator  
Reply With Quote
Unread 06-07-10, 09:29 AM  
sacrife
An Onyxian Warder
 
sacrife's Avatar
AddOn Author - Click to view AddOns

Forum posts: 384
File comments: 144
Uploads: 3
What would I need to do to set the icon border/in cooldown(fail) border based on the lua only (take away its function to check the savedvariables/database).

You have a PM with more spesific details if you are able to assist.
__________________

Report comment to moderator  
Reply With Quote
Unread 06-01-10, 12:53 PM  
totalpackage
A Fallenroot Satyr
 
totalpackage's Avatar
AddOn Author - Click to view AddOns

Forum posts: 27
File comments: 940
Uploads: 10
CoolLine's throttling could use extra consideration. I'll consider it, but it's fine now. I based my throttling off fractions of expected user's FPS.

However, you need to factor in both UI scaling and anti-aliasing, so there's no perfect one-pixel movement. If you're using logarithm in your animation, you're already taking +100 times longer to compute.
Report comment to moderator  
Reply With Quote
Unread 06-01-10, 12:35 PM  
daphoosa
A Kobold Labourer
 
daphoosa's Avatar

Forum posts: 0
File comments: 12
Uploads: 0
throttle interval

Total,

Have you considered being slightly more adaptive in your throttle intervals to reduce wasted position updates?

Here's my thinking. The only time you really should update a CD's position is when it has moved at least one pixel on the screen. Updating more often than once per pixel is is of zero benefit to the viewer. Updating less than once per pixel could result in the CD movement appearing to "jump" along the time line and be less smooth than it could be.

I believe that this could be implemented with a minimal effort in your version of CoolLine ( I have adapted my logarithmic version of CoolLine to do this as well, but was is slightly more involved to adjust) Looking at your static throttle intervals, this should result in a large reduction in unneeded updates for almost any player except those that have stretched the time line to the max width of their screen.

I would add six lines of code after the line where you set the value of 'section' (line 191 in v3.3.003)
Code:
		...
		section = (db.vertical and db.h or db.w) / 6
		throt_1 = (1 - 0) / section
		throt_2 = (3 - 1) / section
		throt_3 = (10 - 3) / section
		throt_4 = (60 - 10) / section
		throt_5 = (120 - 60) / section
		throt_6 = (360 - 120) / section
		...
In this location, the throt intervals for each section are only recomputed when absolutely needed.

These variables are then placed in the corresponding locations in the part of the program that recomputes the CD's location.

Starting at line 296 in v3.3.003
Code:
	for index, frame in pairs(cooldowns) do
		local remain = frame.endtime - ctime
		if remain < 3 then
			if remain > 1 then
				SetupIcon(frame, section * (remain + 1) * 0.5, throt_2, true, dofl)  -- 1 + (remain - 1) / 2
			elseif remain > 0.3 then
				SetupIcon(frame, section * remain, throt_1, true, dofl)
			elseif remain > 0 then
				local size = iconsize * (0.5 - remain) * 5  -- iconsize + iconsize * (0.3 - remain) / 0.2
				frame:SetWidth(size)
				frame:SetHeight(size)
				SetupIcon(frame, section * remain, 0, true, dofl)
			elseif remain > -1 then
				SetupIcon(frame, 0, 0, true, dofl)
				frame:SetAlpha(1 + remain)  -- fades
			else
				throt = (throt < 0.2 and throt) or 0.2
				isactive = true
				ClearCooldown(frame)
			end
		elseif remain < 10 then
			SetupIcon(frame, section * (remain + 11) * 0.143, throt_3, true, dofl)  -- 2 + (remain - 3) / 7
		elseif remain < 60 then
			SetupIcon(frame, section * (remain + 140) * 0.02, throt_4, true, dofl)  -- 3 + (remain - 10) / 50
		elseif remain < 120 then
			SetupIcon(frame, section * (remain + 180) * 0.01666, throt_5, true, dofl)  -- 4 + (remain - 60) / 60
		elseif remain < 360 then
			SetupIcon(frame, section * (remain + 1080) * 0.004166, throt_6, true, dofl)  -- 5 + (remain - 120) / 240
			frame:SetAlpha(1)
		else
			SetupIcon(frame, 6 * section, throt_6, false, dofl)
		end
	end
Clearly there's a couple of other little additions needed to make this work, but they're trivial.

With your focus on keeping your addon as low of a burden as possible, I thought you might find this useful.

~daphoosa
Report comment to moderator  
Reply With Quote
Unread 05-30-10, 06:16 PM  
Pseudopod
A Deviate Faerie Dragon

Forum posts: 16
File comments: 104
Uploads: 0
Originally posted by totalpackage
CoolLine uses SharedMedia, so find a border that's small.
The reason I even asked was because CL uses SharedMedia. It would complement the custom border settings.

Custom UI scales and stuff makes it really difficult to get a correct looking thin border. All thin borders that I've found leave a gap between the statusbar texture etc.

But I guess I'll just edit the lua again. Thanks anyways.
Report comment to moderator  
Reply With Quote
Unread 05-30-10, 05:18 PM  
totalpackage
A Fallenroot Satyr
 
totalpackage's Avatar
AddOn Author - Click to view AddOns

Forum posts: 27
File comments: 940
Uploads: 10
Originally posted by Pseudopod
Sorry if this has been asked before, I haven't found a way to properly search the comments. Could you add an option to change the border size and maybe even the "inset" to not get gaps when you make the border smaller?
CoolLine uses SharedMedia, so find a border that's small.
Report comment to moderator  
Reply With Quote
Unread 05-25-10, 02:23 AM  
Pseudopod
A Deviate Faerie Dragon

Forum posts: 16
File comments: 104
Uploads: 0
Sorry if this has been asked before, I haven't found a way to properly search the comments. Could you add an option to change the border size and maybe even the "inset" to not get gaps when you make the border smaller?
Report comment to moderator  
Reply With Quote
Unread 05-24-10, 08:09 PM  
totalpackage
A Fallenroot Satyr
 
totalpackage's Avatar
AddOn Author - Click to view AddOns

Forum posts: 27
File comments: 940
Uploads: 10
Re: smoother movement

Originally posted by Sharkfist
...Anyway, I tried a change in it that I think worked out nicely. I wanted a smoother icon acceleration. I replaced the position calculation in the SetupIcon calls in the function OnUpdate()...
All the other similar mods use log for their animation, which is about 50-100 times more expensive to compute and very taxing to an animation. Also, linear is beneficial since you can estimate time remaining easier.
Report comment to moderator  
Reply With Quote
Unread 05-22-10, 08:34 AM  
Sharkfist
A Kobold Labourer

Forum posts: 0
File comments: 7
Uploads: 0
smoother movement

Great addon. At a glance, you get an idea of your general cooldown status without having to look for different abilities on the action bar -some of which may only be visible if you hold down modifier keys, are in combat, or in some specific form/stance. It works for all classes, there's no noticeable slowdowns and it requires minimal setup: A+!

Anyway, I tried a change in it that I think worked out nicely. I wanted a smoother icon acceleration. I replaced the position calculation in the SetupIcon calls in the function OnUpdate(), on rows 300, 302, 307, 317, 319, 321 and 323 to:
SetupIcon(frame,6*section*log(remain+1)/log(361), ...

An alternative is to use the log10 function, giving more detail at the low end, but I like this. It's fairly close to the original, although I did have to make the background text transparent, because the scale doesn't match close enough.

I know this can be done in a cleaner way, and I would love if the programmer looked at it and maybe added it to the next release as an option. If not, this is a quick hack for anyone interested. :-)
Report comment to moderator  
Reply With Quote
Unread 05-12-10, 11:01 AM  
trclocke
A Kobold Labourer
AddOn Author - Click to view AddOns

Forum posts: 0
File comments: 108
Uploads: 1
Just wanted to throw out a quick thank you. CoolLine uses almost no resources/CPU and works flawlessly to track all relevant cooldowns for me. I'm not sure how I did without it.
Report comment to moderator  
Reply With Quote
Unread 04-25-10, 10:27 AM  
totalpackage
A Fallenroot Satyr
 
totalpackage's Avatar
AddOn Author - Click to view AddOns

Forum posts: 27
File comments: 940
Uploads: 10
Originally posted by Phanx
I had a user report that Grid was somehow interfering with CoolLine (and Clique) after switching talent specs. The only change in the version where the problem appears was to throttle Grid's response to LEARNED_SPELL_IN_TAB and CHARACTER_POINTS_CHANGED, and I haven't seen any issues with Clique, but I'm grabbing your addon right now to see if I can reproduce the problem.

I see from earlier comments that you'd previously identified some kind of interference from LunarSphere; do you have any details on what the problem was? I don't even see any comments about the issue on LunarSphere's download page...
CoolLine listens for SPELLS_CHANGED, when it caches spells with a cooldown by scanning the spell's tooltip. It was unknown what LunarSphere did, but the user reported everything working fine once it was disabled. I can't see how another mod can interfere unless it altered a global.
Report comment to moderator  
Reply With Quote
Unread 04-24-10, 07:11 PM  
Phanx
Cat.
 
Phanx's Avatar
AddOn Author - Click to view AddOns

Forum posts: 5617
File comments: 2321
Uploads: 54
@TotalPackage:

I had a user report that Grid was somehow interfering with CoolLine (and Clique) after switching talent specs. The only change in the version where the problem appears was to throttle Grid's response to LEARNED_SPELL_IN_TAB and CHARACTER_POINTS_CHANGED, and I haven't seen any issues with Clique, but I'm grabbing your addon right now to see if I can reproduce the problem.

I see from earlier comments that you'd previously identified some kind of interference from LunarSphere; do you have any details on what the problem was? I don't even see any comments about the issue on LunarSphere's download page.

Originally posted by scarves
http://www.warcraftmovies.com/movieview.php?id=144759
it is clearly showed in this movie so why did it no working anymore ? you even have the ring proc showed
It is clearly stated on the page you linked that the addon shown in the video (which, by the way, is not from the author of CoolLine, so I don't know why you keep referring to "your video" when you're talking to him) is SexyCooldown, not CoolLine.
Last edited by Phanx : 04-24-10 at 07:23 PM.
Report comment to moderator  
Reply With Quote
Unread 04-23-10, 05:11 PM  
Tinuviel
A Defias Bandit
 
Tinuviel's Avatar

Forum posts: 3
File comments: 210
Uploads: 0
Originally posted by totalpackage
See if it happens with no other addons enabled. If it only happens after changing specs, reload after switching.
Unfortunately, the hard part is it doesn't ALWAYS happen with a spec switch. I had this problem earlier today on my shadow priest, who didn't switch spec and the thing failed to show cooldowns.
Report comment to moderator  
Reply With Quote
Post A Reply



Category Jump: