diff --git a/KittenDismount.toc b/KittenDismount.toc index 4620992..a04cf07 100644 --- a/KittenDismount.toc +++ b/KittenDismount.toc @@ -1,10 +1,11 @@ ## Interface: 110002 -## Version: 0.0.1 -## Title: Easy Dismount +## Version: 0.0.2 +## Title: Kitten Easy Dismount ## Notes: Quick addon to dismount if you are on a flying mount, but on the ground. ## Author: Annika ## SavedVariables: KittenDismount_SavedVars -main.lua +dump.lua settings.lua +main.lua diff --git a/dump.lua b/dump.lua new file mode 100644 index 0000000..10f8ab1 --- /dev/null +++ b/dump.lua @@ -0,0 +1,14 @@ +function KittenDismount_dump(o) + if type(o) == 'table' then + local s = '{ ' + for k,v in pairs(o) do + if type(k) ~= 'number' then + k = '"'..k..'"' + end + s = s .. '['..k..'] = ' .. KittenDismount_dump(v) .. ',' + end + return s .. '} ' + else + return tostring(o) + end +end diff --git a/main.lua b/main.lua index 546dd7c..b6d932f 100644 --- a/main.lua +++ b/main.lua @@ -1,19 +1,11 @@ -local surgeForward = 372608; -local skywardAscent = 372610; -local whirlingSurge = 361584; -local aerielHalt = 403092; -local secondWind = 425782; - local frame = CreateFrame("Frame", "DismountAddonFrame"); frame:RegisterEvent("UNIT_SPELLCAST_SENT"); local function OnEvent(self, event, ...) if event == "UNIT_SPELLCAST_SENT" then - print(KittenDismount_SavedVars) - print(KittenDismount_SavedVars.surgeForward) local unit, target, castGUID, spellID = ...; if not IsFlying() then - if spellID == surgeForward or spellID == whirlingSurge or spellID == aerielHalt then + if KittenDismount_disabledSpells[spellID] then Dismount() end end @@ -22,4 +14,10 @@ end frame:SetScript("OnEvent", OnEvent) +local function OnAddonLoaded() + KittenDismount_SetDismountArray() +end + +EventUtil.ContinueOnAddOnLoaded("KittenDismount", OnAddonLoaded); + -- Hi Kitten! diff --git a/settings.lua b/settings.lua index dfa5d43..756847c 100644 --- a/settings.lua +++ b/settings.lua @@ -1,12 +1,26 @@ KittenDismount_SavedVars = {} +KittenDismount_disabledSpells = {} + +function KittenDismount_SetDismountArray() + local spells = { + surgeForward = 372608, + skywardAscent = 372610, + whirlingSurge = 361584, + aerielHalt = 403092, + secondWind = 425782, + } + local disabled = {} + + for key, value in pairs(spells) do + disabled[value] = KittenDismount_SavedVars[key] + end + KittenDismount_disabledSpells = disabled +end local category = Settings.RegisterVerticalLayoutCategory("Kitten Dismount") local function OnSettingChanged(setting, value) - print(KittenDismount_dump(KittenDismount_SavedVars)) - print("hey") - print("Setting changed: ", setting:GetVariable(), value) - print(KittenDismount_SavedVars["surgeForward"]) + KittenDismount_SetDismountArray() end local function RegisterCheckbox(category, variable, variableKey, name, defaultValue, tooltip) @@ -15,26 +29,11 @@ local function RegisterCheckbox(category, variable, variableKey, name, defaultVa Settings.CreateCheckbox(category, setting, tooltip) end -function KittenDismount_dump(o) - if type(o) == 'table' then - local s = '{ ' - for k,v in pairs(o) do - if type(k) ~= 'number' then k = '"'..k..'"' end - s = s .. '['..k..'] = ' .. KittenDismount_dump(v) .. ',' - end - return s .. '} ' - else - return tostring(o) - end -end - - do local name = "Surge Forward" local variable = "surgeForwardToggle" local variableKey = "surgeForward" - local variableTbl = KittenDismount_SavedVars - local defaultValue = true + local defaultValue = Settings.Default.True local tooltip = "Automatically dismount when Surge Forward is cast while on the ground." RegisterCheckbox(category, variable, variableKey, name, defaultValue, tooltip) @@ -43,8 +42,7 @@ do local name = "Skyward Ascent" local variable = "skywardAscentToggle" local variableKey = "skywardAscent" - local variableTbl = KittenDismount_SavedVars - local defaultValue = false + local defaultValue = Settings.Default.False local tooltip = "Automatically dismount when Skyward Ascent is cast while on the ground." RegisterCheckbox(category, variable, variableKey, name, defaultValue, tooltip) @@ -53,8 +51,7 @@ do local name = "Whirling Surge" local variable = "whirlingSurgeToggle" local variableKey = "whirlingSurge" - local variableTbl = KittenDismount_SavedVars - local defaultValue = true + local defaultValue = Settings.Default.True local tooltip = "Automatically dismount when Whirling Surge is cast while on the ground." RegisterCheckbox(category, variable, variableKey, name, defaultValue, tooltip) @@ -63,8 +60,7 @@ do local name = "Aeriel Halt" local variable = "aerielHaltToggle" local variableKey = "aerielHalt" - local variableTbl = KittenDismount_SavedVars - local defaultValue = true + local defaultValue = Settings.Default.True local tooltip = "Automatically dismount when Aeriel Halt is cast while on the ground." RegisterCheckbox(category, variable, variableKey, name, defaultValue, tooltip) @@ -73,8 +69,7 @@ do local name = "Second Wind" local variable = "secondWindToggle" local variableKey = "secondWind" - local variableTbl = KittenDismount_SavedVars - local defaultValue = false + local defaultValue = Settings.Default.False local tooltip = "Automatically dismount when Second Wind is cast while on the ground." RegisterCheckbox(category, variable, variableKey, name, defaultValue, tooltip)