From f4069d38f05e87856f84f294ad11aa3703544423 Mon Sep 17 00:00:00 2001 From: Annika Merris Date: Thu, 26 Sep 2024 12:41:38 -0400 Subject: [PATCH] Working on Settings --- KittenDismount.toc | 10 ++++++ main.lua | 25 ++++++++++++++ settings.lua | 83 ++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 118 insertions(+) create mode 100644 KittenDismount.toc create mode 100644 main.lua create mode 100644 settings.lua diff --git a/KittenDismount.toc b/KittenDismount.toc new file mode 100644 index 0000000..4620992 --- /dev/null +++ b/KittenDismount.toc @@ -0,0 +1,10 @@ +## Interface: 110002 +## Version: 0.0.1 +## Title: 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 +settings.lua diff --git a/main.lua b/main.lua new file mode 100644 index 0000000..546dd7c --- /dev/null +++ b/main.lua @@ -0,0 +1,25 @@ +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 + Dismount() + end + end + end +end + +frame:SetScript("OnEvent", OnEvent) + +-- Hi Kitten! diff --git a/settings.lua b/settings.lua new file mode 100644 index 0000000..dfa5d43 --- /dev/null +++ b/settings.lua @@ -0,0 +1,83 @@ +KittenDismount_SavedVars = {} + +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"]) +end + +local function RegisterCheckbox(category, variable, variableKey, name, defaultValue, tooltip) + local setting = Settings.RegisterAddOnSetting(category, variable, variableKey, KittenDismount_SavedVars, Settings.VarType.Boolean, name, defaultValue) + setting:SetValueChangedCallback(OnSettingChanged) + 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 tooltip = "Automatically dismount when Surge Forward is cast while on the ground." + + RegisterCheckbox(category, variable, variableKey, name, defaultValue, tooltip) +end +do + local name = "Skyward Ascent" + local variable = "skywardAscentToggle" + local variableKey = "skywardAscent" + local variableTbl = KittenDismount_SavedVars + local defaultValue = false + local tooltip = "Automatically dismount when Skyward Ascent is cast while on the ground." + + RegisterCheckbox(category, variable, variableKey, name, defaultValue, tooltip) +end +do + local name = "Whirling Surge" + local variable = "whirlingSurgeToggle" + local variableKey = "whirlingSurge" + local variableTbl = KittenDismount_SavedVars + local defaultValue = true + local tooltip = "Automatically dismount when Whirling Surge is cast while on the ground." + + RegisterCheckbox(category, variable, variableKey, name, defaultValue, tooltip) +end +do + local name = "Aeriel Halt" + local variable = "aerielHaltToggle" + local variableKey = "aerielHalt" + local variableTbl = KittenDismount_SavedVars + local defaultValue = true + local tooltip = "Automatically dismount when Aeriel Halt is cast while on the ground." + + RegisterCheckbox(category, variable, variableKey, name, defaultValue, tooltip) +end +do + local name = "Second Wind" + local variable = "secondWindToggle" + local variableKey = "secondWind" + local variableTbl = KittenDismount_SavedVars + local defaultValue = false + local tooltip = "Automatically dismount when Second Wind is cast while on the ground." + + RegisterCheckbox(category, variable, variableKey, name, defaultValue, tooltip) +end + +Settings.RegisterAddOnCategory(category)