12-01-10 06:55 AM by: Lulia
I wanted to update you all on where Power Bars is and why I haven't yet released the update to version 0.5.
First off: I've been working intensely on getting this version out, however, I've also tried to give myself more breaks and forced myself to push away more so that I can look for a job, etc... since I have real life pressures and bills to deal with it certainly takes a priority and slows my Warcraft time both for fun and for the AddOn.
So, onto why the update has been delayed...
Short Answer: I've been having a persistent and rather bothersome internal error with my addon in dealing with the new virtual Eclipse system in Power Bars. The explanation for this is rather complex, but, in short, it's reporting the error quite frequently, which could get annoying very fast.
Long Answer: (Solution to follow). The new Eclipse system which checks for predicted Eclipse was a rather ambitious and challenging addition to the AddOn. This is my first AddOn and my first experience with lua, coming only from a Novice (at best) level of C/C++ and some minor scripting experience with another client in its own language.
However, I hadn't added any options for Balance druids, and I was told that the predicted Eclipse, as offered in Balance Power Tracker, was an option that a lot of Balance Druids were looking for. I was excited to add it and so I did. My approach may not have been what others would have done, but it was sufficient for my purposes.
I created a "Spell Table" in the AddOn, which dynamically tracks casted spells so that it can "predict" the Eclipse you would have, assuming your currently casted and in-flight spells will land. At first the Spell Table had a lot of issues, but, through thorough testing on the PTR with a pre-made Balance druid, I was able to get it functioning and, accurately predicting Eclipse.
I was excited and released a "beta" version (of the beta version, silly, I know) of my AddOn to Balance druids to test even more thoroughly. A few new errors were caught and solved, but then more internal-addon errors occurred.
Since this is the long version, I'll explain what these "internal" addon errors are. They're not WoW errors, they don't pop up a debug window from WoW and complain to you and stop running AddOn code, which would result in other things not functioning in the game. Rather, internal addon errors are the result of my placing things in the code, often in logic statements, which let me know that something unexpected is happening.
These internal errors were firing and printing statements to people's chat frames, resulting in undesired "spam" from the AddOn. Thus, I immediately began working on finding solutions. I found some of the potential problem-causers, but couldn't find everything, and that's what's held back the final bug-testing of the AddOn.
Since the PTR is down, I can no longer test for these errors myself, since they don't show up on my little level 10 Balance druid, made for the sole purpose of testing Eclipse stuff for my AddOn. I've had to rely on others, and while those others have been extremely helpful (Nobgul and a boomkin on my server in particular, along with the Moonkin repository people), it's not the same as being able to test, make changes, test, and make changes myself.
I've added a whole new portion to my AddOn to better track internal messages so that I could get the info that I need. However, the system is not complete, and while I know more about the errors that are plaguing me, I still don't know their source and I don't how I'm going to fix them yet.
Solution: Right now I'm thinking I may just hide the error and keep it to the message console (and not in the chat frame). This is not the ideal method, however, the "error" has no effect on WoW itself, and seems to have a minimal impact on the AddOn's ability to predict Eclipse. In the mean time, I'm going to improve the internal messaging system in my AddOn and level a druid in Cataclysm, hopefully getting it to a level where I can better test this error.
Thus, over the course of this week, I will be finishing bug-testing, hiding the error and cleaning things up for a release.