DoIt!

DoIt!

21.7k Downloads

Introduction

DoIt is a framework for rapidly building WoW addons. It's approach is completely object oriented.

Classy

The Classy is used to create common data types and class instances in Lua. Classy is the guts of this framework. For examples of how to use these data types, check out Classy/UnitTests.lua. Classy is also available on GitHub for other Lua environments besides World of Warcraft. 

Core Library

These are the WoW specific classes. It has an efficient event handling system. It also contains a large number of classes for working with the WoW API in an OOP way.

Secure Hooks

SecureHooks class. You can use this class to better manage your secure hooks (calls to hooksecurefunc). Blizzard never provided an unhook ability, SecureHooks will give you complete control to hook and unhook whenever and as much as you need to.

MagnetButtons Module

DoIt's first module is called MagnetButtons. This was it's own addon at one point, and is not fully integrated into this framework. Conversion to a DoIt module is a work in-progress.

Blizzard Interface Display Manger Module

Conditionally manage the display of Blizzard's UI elements, altering properties like location, visibility, and transparency. Click here.

Debugging

When reporting bugs, debugging information will help me track down the problem, also state if bug is specific to retail, classic, or both. Note that whenever files are added to the project, you'll need to exit wow completely to refresh files.

-- To Enable Debugging
/script DoIt_Saved.Debug = true
/script SetCVar("ScriptErrors", "1")
/reload

-- To Disable Debugging
/script DoIt_Saved.Debug = false
/script SetCVar("ScriptErrors", "0")
/reload

Also it you are debugging I suggest BugGrabber and BugSack.

Credits

Genius Wizard Meorawr from WoW Addons discord for many of the performace suggestions I've implement in versions 0.28-0.40.