diff Turok/readme.txt @ 6:a9b8b0866ece

clear out log jam
author Nenue
date Sun, 21 Feb 2016 08:32:53 -0500
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Turok/readme.txt	Sun Feb 21 08:32:53 2016 -0500
@@ -0,0 +1,42 @@
+Turok: Dinosaur HUD
+
+Hardcode of various WeakAura configurations. This is created as a personal learning challenge, so it may or may not be faster than the actual jumble of WeakAuras because that addon is written very well.
+
+Project Goals:
+
+ - Focus bar with dynamic coloring and prediction lines based on talent effects
+ - Unit cast bars that are thematically linked with everything else
+ - Dynamically arranged tracking icons and sliders cooldown/aura information
+ - Quality-of-life alerts for Lone Wolf and Aspect of the Pack
+
+Coding Conventions:
+
+ Although AceAddon modules are used, the addon is not truly modular.
+ The structure provides simple control over the internal loading sequence.
+ So if needed, "module" enables can be scattered over several post-load frames to make in-combat /reload less hazardous.
+
+ SavedVars data is arranged in a non-propagating hierarchical metatable.
+ Accessing a deeply-nested member will traverse its parents until one of them contains data.
+ The only exception to this is on lazy read expressions, such as:
+
+   > if (childtable.unsetvar) then
+
+ This will always yield a false, whether or not a value is assigned in its parents.
+ To check for hierarchical flag variables, you can compare the index against nil, like so:
+
+   > if (childtable.unsetvar ~= nil) then
+
+ The operation will trigger __index and a value from the hierarchy will be presented.
+ Any positive flag state will be copied down when direct assignment is used.
+ To get a useful flag state, you need to run the first logical expression within a ternary idiom:
+
+   > childflag = (childtable.unsetvar) and true or nil    -- pulls the true flag value
+   > parentflag = childtable.unsetvar                     -- pulls any non-nil value
+
+ Another thing to note is hierarchical values are not assigned downstream.
+ If an empty child value is indexed, it will always traverse up the tree.
+ As a result, values consulted frequently will be computationally taxing.
+ These should be copied into a local variable and read from that instead.
+ Then, when an event that might change the value is detected, the local variable is updated instead.
+ From a performance standpoint, the effects are net-positive, since assignments potentially cover dozens of keys.
+ The memory footprint also isn't much different, while the assignment operations are carried out in spaced intervals.
\ No newline at end of file