- Small mod that uses hooksecurefunctions to edit the textures of the default ActionButtonTemplate.
- does range and mana coloring aswell
- You can use your own textures, just change the ones included inside the media folder.
- Font and font size can be changed too.
- This one is intended to be a ButtonFacade replacement, at least for the ActionButtonTemplate.
- The is no ingame config, its all lua code.
- This can be used with any actionbar mod that uses the default ActionButtonTemplate.
Colors
You can colorize your textures (class-coloring for example). To do that adjust the color variables in the lua code.
If you want the default color of a texture all colors (RGB = red, green, blue) have to be 1 (255/255). If you choose 0 (0/255) the texture will be completly dark.
---------------------------------------
-- CONFIG
---------------------------------------
--TEXTURES
--default border texture
local rb2_normal_texture = "Interface\\AddOns\\rActionButtonStyler\\media\\gloss"
--texture when a button flashs --> button becomes ready
local rb2_flash_texture = "Interface\\AddOns\\rActionButtonStyler\\media\\flash"
--hover textures
local rb2_hover_texture = "Interface\\AddOns\\rActionButtonStyler\\media\\hover"
--texture if you push that button
local rb2_pushed_texture = "Interface\\AddOns\\rActionButtonStyler\\media\\pushed"
--texture that is active when the button is in active state (next melee swing attacks mostly)
local rb2_checked_texture = "Interface\\AddOns\\rActionButtonStyler\\media\\checked"
--texture used for equipped items, this can differ since you may want to apply a different vertexcolor
local rb2_equipped_texture = "Interface\\AddOns\\rActionButtonStyler\\media\\gloss_grey"
--FONT
--the font you want to use for your button texts
local button_font = "Fonts\\FRIZQT__.TTF"
--hide the hotkey? 0/1
local hide_hotkey = 1
--use dominos? 0/1
local use_dominos = 0
--COLORS
--color you want to appy to the standard texture (red, green, blue in RGB)
local color = { r = 0.37, g = 0.3, b = 0.3, }
--want class color? just comment in this:
--local color = RAID_CLASS_COLORS[select(2, UnitClass("player"))]
--color for equipped border texture (red, green, blue in RGB)
local color_equipped = { r = 0, g = 0.5, b = 0, }
--color when out of range
local range_color = { r = 0.8, g = 0.1, b = 0.1, }
--color when out of power (mana)
local mana_color = { r = 0.1, g = 0.3, b = 1, }
--color when button is usable
local usable_color = { r = 1, g = 1, b = 1, }
--color when button is unusable (example revenge not active, since you have not blocked yet)
local unusable_color = { r = 0.4, g = 0.4, b = 0.4, }
-- !!!IMPORTANT!!! - read this before editing the value blow
-- !!!do not set this below 0.1 ever!!!
-- you have 120 actionbuttons on screen (most of you have at 80) and each of them will get updated on this timer in seconds
-- default is 1, it is needed for the rangecheck
-- if you dont want it just set the timer to 999 and the cpu usage will be near zero
-- if you set the timer to 0 it will update all your 120 buttons on every single frame
-- so if you have 120FPS it will call the function 14.400 times a second!
-- if the timer is 1 it will call the function 120 times a second (depends on actionbuttons in screen)
local update_timer = 1
---------------------------------------
-- CONFIG END
---------------------------------------
005
- complete rewrite
- added a config
- biggest change is that I rewrite the default ActionButton onUpdate func now, this improved the performance by a mile
- added dominos support
004-2
- range_indicator fix
004
- updated for 3.1
- included range/mana coloring (thus only 1x hooking the actionbutton onupdate func is needed -> better cpu usage)
003
- classcolored buttons possible (see lua)
- onupdate in again to be able to colorize textures (make sure redrange normaltexture coloring is disabled!)
- new default skin (simplebutton)
002
- fixed the normaltexture bug for stancebars
- removed the onupdate hook for actionbuttons (thx to Neal)
Originally posted by zork Bartender4 is not using the default ActionButtonTemplate, or at least not the default one, so I'm sorry. Dominos works flawlessly though.
Yes you are right, i've tried Dominos this morning and the skin was perfect, thanks.
I can't get this to work, i'm using bartender4 and all i get it buttons covered with a big black square, they're incompatible or am i missing something?
Tell Blizzard how to do a rangecheck on 120 buttons without any kind of onUpdate script and you win many Internets.
But I got another good idea. I will try to add
Code:
ActionHasRange(self.action)
to the onUpdate func.
The updateUsable func is called on its own event, the onUpdate is rangeCheck only. Thus if the action does not even have a numeric range requirement it does not have to be updated and the function could just "return".
*edit* Just tested it. The following function is doing OK.
Code:
--rewrite of the onupdate func
--much less cpu usage needed
local function rActionButtonStyler_AB_onupdate(self,elapsed)
local t = self.rABS_range
if (not t) then
self.rABS_range = 0
return
end
t = t + elapsed
if (t<update_timer) then
self.rABS_range = t
return
else
self.rABS_range = 0
if(not ActionHasRange(self.action)) then
return
end
rActionButtonStyler_AB_usable(self)
end
end
Agree with font size being something good for the fluffy config section, although I don't find it necessary, it can help people out.
It's amazing how such a simple thing ends up being the most CPU intensive addon I have, even after the overhaul. The update is fantastic, yet I still wish Blizzard would come up with a better way.
I especially like the changes made to color info, and hotkey hide (1/0). I don't quite agree with putting the font size in the "Do not touch" area, as changing those numbers isn't "dangerous." I find the default 18 to be too large for me.
I'm sorry I hadn't checked into these comments yet to test it out, but it looks like you've got it, great! D/Ling update :>
e: Yeah, the cpu usage is chopped down to a much more acceptable level, I have a feeling that this will no longer cause a noticable hit... thanks a ton for looking into it and improving!
e2: Oh, the addition of update timer to config is also welcome - as I mentioned earlier in the thread, the range updating isn't much important to me as might be with others, and this setting makes a real difference. Also, the class coloring is sweet :>
Initial UI load/ console reloadui / vehicle possess bar keybinding text all appear properly with no need to manually toggle the binding text dominos toggle.
I'll keep a watch out for any errors in buggrabber but I'm pretty sure this is solid.