I knuckled down on it a few days ago, and I believe I've sorted out the "You are now saved..." detection which would completely remove the need to manually trigger an update, ever. I'm still testing it, but know that this fix is on the way. It turns out I'm not supposed to try to pass arguments from events, but rather check the global variable "arg1" once the CHAT_MSG_SYSTEM event fires. Seems odd to me, but this is partly why I haven't yet released it. If you guys know that I'm totally off-base here, then let me know. /hug
Since the manual update is sort of a side-effect of some of the other update triggers, this functionality will not be going away. /soothe
I've been toying with a few ways to do the time remaining thing. I've settled on using the SecondsToTime WoW API call to convert raw seconds into a human readable format. It's inaccurate since it only displays the first two of months, days, hours, minutes, seconds ... but it saves me time, and is probably easier on your CPU than alternatives. The final barrier here is actually converting the fixed reset time into seconds remaining. Working on it. :)
New release: v1.1 (r21)
You will have to delete your FuBar_RaidSaveFu saved variables, or log into each of your characters with data to avoid frustrating errors. I won't break saved variables compatibility like this for a while.
So, I finally got some time off today (thank God) and threw this baby together rather quickly. As promised, it's an LDB "port" that uses AceGUI3 for configuration (right-clicking on the button/block should open the config either on live or WotLK) and the regular GameTooltip (actually whatever tooltip the display addon is using since I opted for OnTooltipShow). Tested it with a "dummy" saved vars file (hope I got the proper format) and it seemed to work. Proper testing pending.
That being said, some things to note :
1. _My_ code only handles the "conversion", calculations are performed by jokey's functions.
2. The tooltip code has been heavily stripped/simplified to accomodate regular tips (non-tablet ones). We'll see how the discussion goes on the "new" tablet and what will happen eventually.
3. A bug was fixed with the Death Knight in WoW 3.0. What is the bug :
strupper(UnitClass("player")) will properly return "DEATH KNIGHT", however the table entry for the DK in RAID_CLASS_COLORS[class] shows as "DEATHKNIGHT" so we need to trim whatever unitclass returns (or otherwise implement a simple string check, I guess) to ensure proper color matching in the ClassColorise method (or else get an error most likely).
4. The "You are now saved" etc message should be properly "caught" in the LDB implementation, however I could not test this in an instance but I'm fairly positive that it works (since it works for example when using the CHAT_MSG_SAY event - a cool way to test string matching when solo :p)
5. I'll probably comment out the debug option in the lua, since it gives away a lot of spam and isn't really needed, devs can enable it at will by simply editing the file.
6. What else ? Oh yeah, I need to implement localization via AceLocale-3.0 (when I'm not lazy).
Jokey if you want to have a look, be my guest, would appreciate the feedback. Btw this is not released anywhere yet, until I can properly test it (and if you still ok with the idea since it's your original addon).
Oh and jokey I noticed some "dead" functions in the code, near the end, setting profile vars that I guess you got planned. Am I right in this assumption ? Hope I included all the necessary stuff at least :s
Tris, I really like your events implementation. It seems so much cleaner than mine. :) I do have plans to remove the profiles and RockDB stuff in the near future, just to simplify/optimize things.
The DEATH KNIGHT class coloring thing is annoying. I think the simplest thing would be to just put a special branch in the class coloring function for them. The long-term fix would be to implement a function to trim internal spaces, but this seems unnecessarily complicated (especially since only DKs will need it). Blizzard might even change their index, who knows?
I'm waiting to see what happens with the new Tablet library. I'm holding off maintaining any sort of "bosses down" record until I see a way to display it without cluttering the tooltip. A tooltip for mousing over each instance in the list is what I'm imagining so far.
I'm really pleased that other people are finding this sort of add-on useful. And now even more people can enjoy it!
Which Broker "presenter" are you using? I really like the way FuBar and TitanBar work, so I probably wouldn't switch over unless a decent facimile was possible.
Well, your events are fine too, you don't really have much of a choice when using LibRockEvent (or any event lib handler anyway). I try to avoid it, if possible and while I also like how easy DB libs make things, profiling wise, I don't see much of a benefit when you are writing something relatively small that will require what ? 6-7 vars tops ? I'd rather put them in a table and be done with it. Generally, I prefer simple solutions where applicable. Now, when you have a bigger and more ambitious addon then its obviously fine. But that's just me.
The DK thingie isn't a big deal, you can either replace spaces with nothing ("") in the class string or correct it with an if statement, it was just an annoyance.
And yeah I'm also looking forward to an easy and relatively bloat free lib to make the tooltip look a bit more "cool" alignment wise. I'm also anxious to see any of your new features.
As for Broker displays, I mainly use Titan (since I'm maintaining/coding the damn thing) but I also often run with Fortress or SBC, using an mcp mod to store profiles for the addons I want loaded for a specific occasion (easy switching really).
Oh and jokey I noticed some "dead" functions in the code, near the end, setting profile vars that I guess you got planned. Am I right in this assumption ? Hope I included all the necessary stuff at least :s
Those functions will be likely be phased out by the time I remove RockDB. They're basically accessor functions. This was my very first add-on so I took alot of inspiration from a bunch of other FuBar add-ons, and it was a design decision that helped me sort out what was going on (much like the crazy usage of strings in the pre-1.1 version).
There are a few vestigial features in the add-on that can and will be trimmed as I go along.
New release version: v1.2.1
- trimmed some unused code
- format options for time-until-reset and time-of-reset (LibAbacus-3.0)
- fixed Death Knight coloring code as per Tristanian's suggestion
- 4 columns now, and all instance info is optional except name
v1.2 had a silly bug where the time-of-reset could not be made date-only
My working version on my desk at the moment has a much easier to maintain formatting system: just uses the date() function instead of trying to do everything manually. I'll be adding Day Only and Day Only (Short) date formats in the next version (eg. Wednesday and Wed).
If anyone has any ideas, or would love to have a particular date format in there, just let me know.
And yeah, good news about 3.0 compatibility. Thanks for that.
My working version on my desk at the moment has a much easier to maintain formatting system: just uses the date() function instead of trying to do everything manually. I'll be adding Day Only and Day Only (Short) date formats in the next version (eg. Wednesday and Wed).
If anyone has any ideas, or would love to have a particular date format in there, just let me know.
And yeah, good news about 3.0 compatibility. Thanks for that.
As a swede i would like to see dd-mm-yy or dd-mon-yy (mon = month trunched down)
So, I finally got some time off today (thank God) and threw this baby together rather quickly. As promised, it's an LDB "port" that uses AceGUI3 for configuration (right-clicking on the button/block should open the config either on live or WotLK) and the regular GameTooltip (actually whatever tooltip the display addon is using since I opted for OnTooltipShow). Tested it with a "dummy" saved vars file (hope I got the proper format) and it seemed to work. Proper testing pending....
Did you end up releasing this officially? I'm thinking of going the Omen3 route and changing my add-on so it detects the presence of FuBar or LDB and adjusts its display stuff automatically. The add-on would eventually be renamed.
The other option would be to release a separate add-on. Are you interested in doing this at some point? Care if I do it? I'd be waiting a few weeks until the new Ace3 tooltip library has been renamed and solidified. Just wanna know where you're at. :)
You are obviously most welcome to create an implementation that supports both displays, if that's what you want, after all its your idea/addon. Feel free to use whatever code in the LDB equivalent you see fit and I will discontinue my version, if you want to go with a "unified" one.
I'm working on another little addon at the moment, but once it's on its feet I'll be bringing lessons learnt back over to this addon.
My plan is to rename this addon and include both LDB and FuBar support. My problem is I don't really know what to call it. RaidSaves or RaidSaver seem obvious, I was also thinking maybe KeyRing or something.
where difficulty > 1 indicates a heroic version of said instance.
Should be fairly easy to implement a check and maybe add a "Heroic"
string next to the instance name perhaps optionally and maybe
hmm a "Normal" string for non-heroics ? I will play around with
it a bit.
Hehe, I released v1.2.3 earlier today, with this fix in it.
I just at " (Heroic)" to the end of the name string. I'm thinking of putting in a separate column, but that'll have to wait until after I switch over to LibQTip.
Hehe, I released v1.2.3 earlier today, with this fix in it.
I just at " (Heroic)" to the end of the name string. I'm thinking of putting in a separate column, but that'll have to wait until after I switch over to LibQTip.
See, and that's exactly why I was looking for a fix/replacement of the addon I currently use: InstanceInfoFu.
I'll give yours a spin.
Mmm, curse only lists 1.2.2 as the latest version which does not have the heroic'-tag. Is curse slow to update or where do I get v1.2.3?
Glad to hear it. /yay
I knuckled down on it a few days ago, and I believe I've sorted out the "You are now saved..." detection which would completely remove the need to manually trigger an update, ever. I'm still testing it, but know that this fix is on the way. It turns out I'm not supposed to try to pass arguments from events, but rather check the global variable "arg1" once the CHAT_MSG_SYSTEM event fires. Seems odd to me, but this is partly why I haven't yet released it. If you guys know that I'm totally off-base here, then let me know. /hug
Since the manual update is sort of a side-effect of some of the other update triggers, this functionality will not be going away. /soothe
I've been toying with a few ways to do the time remaining thing. I've settled on using the SecondsToTime WoW API call to convert raw seconds into a human readable format. It's inaccurate since it only displays the first two of months, days, hours, minutes, seconds ... but it saves me time, and is probably easier on your CPU than alternatives. The final barrier here is actually converting the fixed reset time into seconds remaining. Working on it. :)
You will have to delete your FuBar_RaidSaveFu saved variables, or log into each of your characters with data to avoid frustrating errors. I won't break saved variables compatibility like this for a while.
Check out the notes here: http://www.wowace.com/projects/fu-bar_raid-save-fu/files/28-r21/
Future changes:
- option to display time-of-reset as server time instead of local time, more display formats
- use of LibAbacus-3.0 to introduce new display formats for time-until-reset
- display of instance attributes (ID, name, time-until-reset, time-of-reset) in four separate columns, instead of jammed into one or two
- toying with the idea of recording and displaying (maybe even sharing) the names of known bosses killed
That being said, some things to note :
1. _My_ code only handles the "conversion", calculations are performed by jokey's functions.
2. The tooltip code has been heavily stripped/simplified to accomodate regular tips (non-tablet ones). We'll see how the discussion goes on the "new" tablet and what will happen eventually.
3. A bug was fixed with the Death Knight in WoW 3.0. What is the bug :
strupper(UnitClass("player")) will properly return "DEATH KNIGHT", however the table entry for the DK in RAID_CLASS_COLORS[class] shows as "DEATHKNIGHT" so we need to trim whatever unitclass returns (or otherwise implement a simple string check, I guess) to ensure proper color matching in the ClassColorise method (or else get an error most likely).
4. The "You are now saved" etc message should be properly "caught" in the LDB implementation, however I could not test this in an instance but I'm fairly positive that it works (since it works for example when using the CHAT_MSG_SAY event - a cool way to test string matching when solo :p)
5. I'll probably comment out the debug option in the lua, since it gives away a lot of spam and isn't really needed, devs can enable it at will by simply editing the file.
6. What else ? Oh yeah, I need to implement localization via AceLocale-3.0 (when I'm not lazy).
Jokey if you want to have a look, be my guest, would appreciate the feedback. Btw this is not released anywhere yet, until I can properly test it (and if you still ok with the idea since it's your original addon).
The DEATH KNIGHT class coloring thing is annoying. I think the simplest thing would be to just put a special branch in the class coloring function for them. The long-term fix would be to implement a function to trim internal spaces, but this seems unnecessarily complicated (especially since only DKs will need it). Blizzard might even change their index, who knows?
I'm waiting to see what happens with the new Tablet library. I'm holding off maintaining any sort of "bosses down" record until I see a way to display it without cluttering the tooltip. A tooltip for mousing over each instance in the list is what I'm imagining so far.
I'm really pleased that other people are finding this sort of add-on useful. And now even more people can enjoy it!
Which Broker "presenter" are you using? I really like the way FuBar and TitanBar work, so I probably wouldn't switch over unless a decent facimile was possible.
The DK thingie isn't a big deal, you can either replace spaces with nothing ("") in the class string or correct it with an if statement, it was just an annoyance.
And yeah I'm also looking forward to an easy and relatively bloat free lib to make the tooltip look a bit more "cool" alignment wise. I'm also anxious to see any of your new features.
As for Broker displays, I mainly use Titan (since I'm maintaining/coding the damn thing) but I also often run with Fortress or SBC, using an mcp mod to store profiles for the addons I want loaded for a specific occasion (easy switching really).
Those functions will be likely be phased out by the time I remove RockDB. They're basically accessor functions. This was my very first add-on so I took alot of inspiration from a bunch of other FuBar add-ons, and it was a design decision that helped me sort out what was going on (much like the crazy usage of strings in the pre-1.1 version).
There are a few vestigial features in the add-on that can and will be trimmed as I go along.
- trimmed some unused code
- format options for time-until-reset and time-of-reset (LibAbacus-3.0)
- fixed Death Knight coloring code as per Tristanian's suggestion
- 4 columns now, and all instance info is optional except name
v1.2 had a silly bug where the time-of-reset could not be made date-only
Managed to test the LDB implementation on a 3.0 Naxx 25 man last night. Works as expected.
If anyone has any ideas, or would love to have a particular date format in there, just let me know.
And yeah, good news about 3.0 compatibility. Thanks for that.
As a swede i would like to see dd-mm-yy or dd-mon-yy (mon = month trunched down)
Oh, forgot to reply. This was added in the last revision (ages ago) so consider it done. :)
Did you end up releasing this officially? I'm thinking of going the Omen3 route and changing my add-on so it detects the presence of FuBar or LDB and adjusts its display stuff automatically. The add-on would eventually be renamed.
The other option would be to release a separate add-on. Are you interested in doing this at some point? Care if I do it? I'd be waiting a few weeks until the new Ace3 tooltip library has been renamed and solidified. Just wanna know where you're at. :)
You are obviously most welcome to create an implementation that supports both displays, if that's what you want, after all its your idea/addon. Feel free to use whatever code in the LDB equivalent you see fit and I will discontinue my version, if you want to go with a "unified" one.
My plan is to rename this addon and include both LDB and FuBar support. My problem is I don't really know what to call it. RaidSaves or RaidSaver seem obvious, I was also thinking maybe KeyRing or something.
Suggestions welcome! :)
Possible to sort by expiration date? And it doesn't show if it's Heroic or not, which is a real issue.
I'm aware of the issue and will hopefully have it sorted by the end of the month.
Ouchie, I just noticed that :
name, ID, remaining = GetSavedInstanceInfo(index)
should now be :
name, ID, remaining, difficulty = GetSavedInstanceInfo(index)
where difficulty > 1 indicates a heroic version of said instance.
Should be fairly easy to implement a check and maybe add a "Heroic"
string next to the instance name perhaps optionally and maybe
hmm a "Normal" string for non-heroics ? I will play around with
it a bit.
I just at " (Heroic)" to the end of the name string. I'm thinking of putting in a separate column, but that'll have to wait until after I switch over to LibQTip.
See, and that's exactly why I was looking for a fix/replacement of the addon I currently use: InstanceInfoFu.
I'll give yours a spin.
Mmm, curse only lists 1.2.2 as the latest version which does not have the heroic'-tag. Is curse slow to update or where do I get v1.2.3?