Well, Esammyn has just about finished his database cleanup code and so now it's time for me to step up and do my refactoring which has been waiting for a lull in development since it will be so disruptive.
It's all a part of the process in converting Gatherer to being a more environmentally friendly, more localizable, more developable addon. I'm carrying out the restructuring work in the branches/3.0 directory.
I've moved a heap of the code that was in the monolithic Gatherer.lua into seperate role based files. All the functions now exist in the single Gatherer namespace, with subcategories underneath, and finally the function name, so at a single glance, you can tell the file that the given function will appear in. EG: Gatherer_MiniMapPos is now Gatherer.Mapping.MinimapPosition and in the GatherMapping.lua file, along with all the other Gatherer.Mapping functions.
Now that this has been done, I'll fix up any stray references to the old function names and start working on Babylizing the localized strings so we can get this whole localizer thing up and running. Then we can get some of our translators working on doing Gatherer translations as well.
Have a look at the new structure if you get the chance. I'd love to get some feedback.
hm, had a quick look (real quick) before starting the TBC beta version (based on live Gatherer).
I caught a glance at a reference or two for the babylonian code, is this going to use the SPELLCAST_... events and base it's return upon the loot received ?
just wondering if it's still in an intermediate state or on the trend it will follow.
apart from that, the new structure looks good from what I've seen so far, will try to have a more indepth look when I have some time.
To tell the truth, I don't yet know the eventual shape it will take.
I've completed the Swag library and it successfully captures most things properly now. I need to make it automatically detect the nodes now.
Esamynn's working on a seperate map library (Astrolabe) that will replace all of our minimap functions. Esamynn's also captured all of the new zone scales and his routines convert exactly into yards, so this means we will be able to provide yards-to-target information.
This version will become 3.0 and is slated for release as of WoW 2.0 in December..
That being said. The code is still very much in flux and may change drastically at any time (especially if it turns out that something I thought I could do, I can't)
To give you an idea, the new code will be designed to be able to track nodes that have variable positions (in TBC, there are nodes that are actually MOBs) so we need the ability to track them. Since this lends itself to skinning, we are considering adding skinning regions to the Gatherer supported tracked objects as well.
The new code will also be designed to track items that are as yet unknown as well.
The new code will also be able to track items in client locales other than the officially supported list. after a short period of learning. (It will actually "learn" the names of items when it notices things happening. Eventually we will be able to get people's SV files and put the learned information back into the release version so that it doesn't have to learn when it runs in that locale.)
It will actually "learn" the names of items when it notices things happening.
Sounds very interesting. I think I should take a good look at the code when it is finished, since this is the kind of coding that really get me "turned on" as a proffesional software engineer.