Puffin

Puffin

720 Downloads

Puffin is an experimental WoW UI addon. It works well enough for daily use, replacing a significant amount of the default user interface. However, the author does not recommend that Puffin be used by anyone outside the addon development community and there is no commitment to ongoing development or support. Currently, Puffin includes the basic unit frames (player, target, focus, pet, targettarget, focustarget, boss1-5), resource display, castbars, mirror bar, data brokers, and skinning of minimap, world map, and objective tracker.

Puffin is primarily an experiment in using an object-oriented software architecture in a WoW addon. Model objects represent the state of the game (and contain most calls to the WoW API). View and widget objects present information on the display (using custom widgets for text, bars, icons, etc.). A simple and efficient object-oriented Lua library called middleclass is used to implement inheritance.

Puffin has a minimal kernel that provides initialization, processes hardware and software-generated events, and implements a simple database for sharing information between objects. In principle, models react to game-generated events and update game state in the database, and then trigger software events to propagate changes to views. Views composite UI features out of widgets and keep them up-to-date using info shared by models. In practice, some display-related tasks (e.g., skinning the minimap) are handled in models and some game-related info is directly accessed by views (e.g., unit health/power). The castbar design comes closest to the original architectural intent.

Configuration uses a Lua file (there is an options panel but, at the moment, it is only for testing) and requires programming experience for customization.

Please contact the author through private messages if you are interested in Puffin and want additional information about any aspect of the design.