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,616
Favorites:538
MD5:
6.0.2
CoolLine  Updated Today!  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-20-12, 10:23 AM  
Alexon88
A Kobold Labourer

Forum posts: 0
File comments: 2
Uploads: 0
Missing Spell

Hi,
realy great addon helps having the overview without taking alot of space!

I don't know why, but the "holy word" spells are not displayed in the coolline. I think they would very much help every holy priest. Because one has a 7 second cooldown! the other one a 28s cd.
Exact names:
Holy word: Serenity, 10s cooldown, 7s with spec
Holy word: Sanctuary, 40s cooldown, 28s with spec
Holy word: Chastice, 30s cd, 21s with spec

Btw: they all share one button but are able to be cast in different "stances".

Alexon
Alexon88 is offline Report comment to moderator  
Reply With Quote
Unread 07-10-12, 02:30 AM  
Xavias
A Kobold Labourer

Forum posts: 0
File comments: 1
Uploads: 0
Sound

Hey totalpackage,

Great addon! I just wanted to comment that I think it would be really helpful if the addon had options to play a sound when a spell/item goes off cooldown.. Preferably right before the icon flies out.

Best,

Rob
Xavias is offline Report comment to moderator  
Reply With Quote
Unread 03-30-12, 09:41 PM  
totalpackage
A Fallenroot Satyr
 
totalpackage's Avatar
AddOn Author - Click to view AddOns

Forum posts: 22
File comments: 878
Uploads: 2
I do not know if times have changed, but the performance is the reason why I decided to use simple linear math compared to say a log function to handle the animation. Remember, something like this can be a CPU hog during intense combat, and I'm sure people do not want an addon reducing their FPS.

Looking pretty has its place, but usability is priority here.
totalpackage is offline Report comment to moderator  
Reply With Quote
Unread 03-28-12, 11:22 AM  
FuzTheCat
A Kobold Labourer

Forum posts: 0
File comments: 1
Uploads: 0
Smooth acceleration

Really love Coolline, thanks heaps for the addon .
Any chance of having the icons move with more smooth acceleration vs sudden speed changes from one section to the next?
Also may we change the 1m to 30s as this would even up the sections to a more geometrical progression? (10s*3 = 30s, 30s*4 = 2m instead of 10s*6=1m, 1m*2=2m)

I had a little edit and changed the 1m to 30s:
Code:
tick60 = createfs(tick60, "30", section * 4)
Also changed the movement from linear to parabolic for smooth acceleration:
Code:
-- Smooth out the velocity of the icon by using parabolic motion and make the velocity ending/starting a section the same.
-- Assuming a final velocity of -1.2025 at remain = 0, we have the following accelerations (times, velocities): (u = 2/t - v) & (a = (v-u)/t)
-- (0,-1.2025) a=-0.405 (remain=1,u=-0.765) -0.2975 (3,-0.2025) -0.0170408 (10,-0.083214) -0.0033214 (30,-0.016786) -0.0001261 (120,-0.0054365) -1.0582E-05 (360,-0.0028968)
-- Using s = u*t + 0.5*a*t^2 we can then get the distance in each section. t = (endsectiontime - remain), eg t = 360 - remain for the rightmost section.
-- position = x + u * (endtime - remain) + 0.5 * a * (endtime - remain) ^ 2   (where x = section number we are in)
-- position = (x + (u + 0.5 * a * endtime)*endtime) + remain * (-u - a * endtime + 0.5 * a * remain)
-- position = C + remain * (B + A * remain) where: C = x + (u + 0.5 * a * endtime)*endtime, B = -u - a * endtime, A = 0.5 * a
local function OnUpdate(this, a1, ctime, dofl)
	elapsed = elapsed + a1
	if elapsed < throt then return end
	elapsed = 0
	
	if #cooldowns == 0 then
		if not CoolLine.unlock then
			self:SetScript("OnUpdate", nil)
			self:SetAlpha(db.inactivealpha)
		end
		return
	end
	
	ctime = ctime or GetTime()
	if ctime > ptime then
		dofl, ptime = true, ctime + 0.4
	end
	isactive, throt = false, 1.5
	for index, frame in pairs(cooldowns) do
		local remain = frame.endtime - ctime
		if remain < 3 then
			if remain > 1 then
				SetupIcon(frame, section * (0.05375 + remain * (1.095 - 0.14875 * remain)), 0.01, true, dofl)  -- 2 + (-0.2025 + 0.5 * -0.2975 * 3) * 3 + remain * (0.2025 - -0.2975 * 3 + 0.5 * -0.2975 * remain)
			elseif remain > 0.3 then
				SetupIcon(frame, section * (0.0 + remain * (1.2025 - 0.2025 * remain)), 0, 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 * (0.0 + remain * (1.2025 - 0.2025 * 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 * (1.315816 + remain * (0.25362245 - 0.008520408 * remain)), remain > 4 and 0.02 or 0.01, true, dofl)  -- 2 + (remain - 3) / 7
		elseif remain < 30 then
			SetupIcon(frame, section * (2.001786 + remain * (0.11642857 - 0.001660714 * remain)), 0.05, true, dofl)  -- 3 + (remain - 10) / 50
		elseif remain < 120 then
			SetupIcon(frame, section * (3.439683 + remain * (0.02056878 - 6.30511E-05 * remain)), 0.1, true, dofl)  -- 4 + (remain - 60) / 60
		elseif remain < 360 then
			SetupIcon(frame, section * (4.271429 + remain * (0.00670635 - 5.29101E-06 * remain)), 0.5, true, dofl)  -- 5 + (remain - 120) / 240
			frame:SetAlpha(1)
		else
			SetupIcon(frame, 6 * section, 2, false, dofl)
		end
	end
	if not isactive and not CoolLine.unlock then
		self:SetAlpha(db.inactivealpha)
	end
end
Also had to drop the throt a bit to keep the continuous acceleration a bit smoother.

Thanks again for a simply awesome cooldown line .
FuzTheCat is offline Report comment to moderator  
Reply With Quote
Unread 01-20-12, 10:40 AM  
xyjames1488
A Murloc Raider

Forum posts: 8
File comments: 34
Uploads: 0
Post Cooldown Essue

Keep up the good work mate, I love the add-on and am glad to see some of the issues are being tweaked.

Not to add on to the list, but I am having an issue with some spells not showing. The biggest ones are Druid spells that are both existent for Cat and Bear.
xyjames1488 is offline Report comment to moderator  
Reply With Quote
Unread 12-05-11, 03:39 PM  
Misu
A Kobold Labourer

Forum posts: 0
File comments: 2
Uploads: 0
question

Hey there

I'm suddenly having an issue with coolline. I've been using it for a very long time and absolutely love it. So much so, i've come to rely on it on every toon. However, with 4.3, none of my toons' spells will appear. However, when I pop trinkets, the cd's for trinkets show up. Spells and abilities, however, do not.

I updated to the newest one in the hopes it would clear it up, but it hasn't. Any ideas?

updated:

I found the solution.

I am using elvui version 3.0.3 and have incorporated coolline into this UI. Well, it seems to be a known issue with skinning. If you go into elvui's config, skins and disable Blizzard World Map, coolline begins to work. Found the solution at: http://www.tukui.org/forums/topic.php?id=18053 Just thought I would share incase others had this problem.
Last edited by Misu : 12-05-11 at 08:27 PM.
Misu is offline Report comment to moderator  
Reply With Quote
Unread 12-04-11, 02:15 PM  
tr4nsmogrify
A Kobold Labourer

Forum posts: 0
File comments: 1
Uploads: 0
Re: question

Originally Posted by twopro
hey, can you tell me if i'm overlooking an option


i would like to show cool down timers in this order


0 -------1------3--------10--------30--------60


normaly i do pvp when i do pvp i normaly don't wait on any cd past 60seconds given the nature of content


is there a way to switch it up on /coolline?

if not i can deal with it i guess

i second this post.. would you consider making a gui option to change the max duration. i've tried mangling the lua myself but that turned out badly...

ps love this addon
tr4nsmogrify is offline Report comment to moderator  
Reply With Quote
Unread 11-27-11, 11:43 AM  
Siannus
A Defias Bandit
AddOn Author - Click to view AddOns

Forum posts: 3
File comments: 72
Uploads: 2
I have only 2 things.

1) Is this going to be updated for 4.3?

2) Is there any way to remove SavedVariablesPerCharacter in it so that it only uses SavedVariables?

This way I can utilize it as a global setting for my UI. Some of the addons Ive used has had SavedVariablesPerCharacter, I simply changed it to SavedVariables and it works flawlessly, however, in this addon, it has both.

Thanks...
Siannus is offline Report comment to moderator  
Reply With Quote
Unread 11-11-11, 04:18 PM  
twopro
A Defias Bandit

Forum posts: 3
File comments: 190
Uploads: 0
problem

coolline isn't showing my killing spree cooldown or adrenaline rush cd



weird nevermind, it fixed itself somehow? shrug
Last edited by twopro : 11-11-11 at 06:01 PM.
twopro is offline Report comment to moderator  
Reply With Quote
Unread 10-30-11, 11:34 PM  
twopro
A Defias Bandit

Forum posts: 3
File comments: 190
Uploads: 0
another question

is there a way to do separate profiles cause i set up coolline on rogue and same bar shows up on all my characters.
twopro is offline Report comment to moderator  
Reply With Quote
Unread 10-30-11, 06:54 PM  
twopro
A Defias Bandit

Forum posts: 3
File comments: 190
Uploads: 0
question

hey, can you tell me if i'm overlooking an option


i would like to show cool down timers in this order


0 -------1------3--------10--------30--------60


normaly i do pvp when i do pvp i normaly don't wait on any cd past 60seconds given the nature of content


is there a way to switch it up on /coolline?

if not i can deal with it i guess
twopro is offline Report comment to moderator  
Reply With Quote
Unread 09-18-11, 06:58 AM  
bizzy100
A Kobold Labourer

Forum posts: 0
File comments: 28
Uploads: 1
Is it possible to add trinket/proc internal cooldowns to the bar?
bizzy100 is offline Report comment to moderator  
Reply With Quote
Unread 09-17-11, 08:10 AM  
Pyrates
A Theradrim Guardian
 
Pyrates's Avatar
AddOn Author - Click to view AddOns

Forum posts: 68
File comments: 134
Uploads: 4
Thanks for your help I didn't know about OnUpdate on hidden frames, that's very usefull, thanks!

Originally posted by totalpackage
For your "thicker and thinner" issue, that's because of anti-aliasing. If you have a decent graphics card, you can enable anti-aliasing in the graphics options.
I tried doing that, but it didn't help. I also forced AA off and tried every other setting (qualities are available), but nothing changed. I'm using tukui, could that be related to the pixel-perfect issue that's somehow worked around?
__________________
" ... and the Vogon will do things to you that you wish you'd never been born, or, if you're a clearer minded thinker, that the Vogon had never been born."
Last edited by Pyrates : 09-17-11 at 08:10 AM.
Pyrates is offline Report comment to moderator  
Reply With Quote
Unread 09-15-11, 08:39 PM  
totalpackage
A Fallenroot Satyr
 
totalpackage's Avatar
AddOn Author - Click to view AddOns

Forum posts: 22
File comments: 878
Uploads: 2
For your "thicker and thinner" issue, that's because of anti-aliasing. If you have a decent graphics card, you can enable anti-aliasing in the graphics options.

You're in the right direction and seems like you do not need my help enabling/disabling. You do not need to nil out the OnUpdate script; just hide the frame since OnUpdate doesn't run on a hidden frame.
totalpackage is offline Report comment to moderator  
Reply With Quote
Unread 09-15-11, 03:17 PM  
Pyrates
A Theradrim Guardian
 
Pyrates's Avatar
AddOn Author - Click to view AddOns

Forum posts: 68
File comments: 134
Uploads: 4
Hey great addon, thanks for making it Two questions, though:

Since you're using OnUpdate-throttling, the icons move in visible steps through the bar. It's not really bad by itself, but the border of the icon becomes thicker and thinner, which is kinda unnice to look at. Do you have any idea how to fix that? Or is it a problem on my side?

Secondly (and somewhat more important to me ), I'd like to disable CoolLine from another addon and then enable it again. My idea is to use

Code:
CoolLine:UnregisterAllEvents()
CoolLine:SetScript("OnUpdate",nil)
CoolLine:Hide()
to disable it. It's not enough, I'd need to deal with the spellthrot frame, so I'd probably use "CoolLine.spellthrot=spellthrot" to make it available and then add "CoolLine.spellthrot:SetScript("OnUpdate",nil)" to the above.

To enable, I'd use

Code:
CoolLine:PLAYER_LOGIN()
CoolLine:PLAYER_ENTERING_WORLD()
CoolLine.spellthrot:SetScript("OnUpdate",CoolLine.spellthrot.onupdate)
to enable it again, where I defined the function CoolLine.spellthrot.onupdate appropriately in core.lua. Would that work? I could fiddle with the blocked stuff and inactivealpha to hide it, but then the event handler would be called all the time... I'd really appreciate help on this, I'm not sure I've really caught everything

(e) Ok, just another thing I thought of. When starting the addon, you collect all spells with a CD in spells[btype]. Then you check (on throttled update) the cooldown and use NewCooldown as appropriate, if the spell is not blocked. Wouldn't it be better to just collect the non-blocked spells in spells[btype] so you don't use GetSpellCooldown on blocked spells that often?
__________________
" ... and the Vogon will do things to you that you wish you'd never been born, or, if you're a clearer minded thinker, that the Vogon had never been born."
Last edited by Pyrates : 09-15-11 at 03:21 PM.
Pyrates 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.