/trunk
mb8:SetText(LivestockLocalizations.LIVESTOCK_FONTSTRING_SHOWLANDLABEL) |
mb8:SetPoint("TOP", 0, -180) |
mb8:SetScript("OnClick", function() |
CreateMacro("LandMounts", "INV_Misc_QuestionMark", "/click LivestockLandMountsButton LeftButton 1", 1) |
CreateMacro("LandMounts", "INV_Misc_QuestionMark", "/click LivestockLandMountsButton", 1) |
DEFAULT_CHAT_FRAME:AddMessage(LivestockLocalizations.LIVESTOCK_INTERFACE_LANDMACROCREATED) |
end) |
mb9:SetText(LivestockLocalizations.LIVESTOCK_FONTSTRING_SHOWFLYINGLABEL) |
mb9:SetPoint("TOP", 133, -180) |
mb9:SetScript("OnClick", function() |
CreateMacro("FlyingMounts", "INV_Misc_QuestionMark", "/click LivestockFlyingMountsButton LeftButton 1", 1) |
CreateMacro("FlyingMounts", "INV_Misc_QuestionMark", "/click LivestockFlyingMountsButton", 1) |
DEFAULT_CHAT_FRAME:AddMessage(LivestockLocalizations.LIVESTOCK_INTERFACE_FLYINGMACROCREATED) |
end) |
local mb10 = CreateFrame("Button", "LivestockComboMacroButton", mainprefs, "GameMenuButtonTemplate") |
local mb10 = CreateFrame("Button", "LivestockSmartMacroButton", mainprefs, "GameMenuButtonTemplate") |
mb10:SetHeight(25) |
mb10:SetWidth(115) |
mb10:SetText(LivestockLocalizations.LIVESTOCK_FONTSTRING_SHOWSMARTLABEL) |
mb10:SetPoint("TOP", 0, -210) |
mb10:SetScript("OnClick", function() |
CreateMacro("ComboMounts", "INV_Misc_QuestionMark", "/click LivestockSmartButton LeftButton 1", 1) |
CreateMacro("ComboMounts", "INV_Misc_QuestionMark", "/click LivestockSmartButton", 1) |
DEFAULT_CHAT_FRAME:AddMessage(LivestockLocalizations.LIVESTOCK_INTERFACE_SMARTMACROCREATED) |
end) |
<Scripts> |
<OnLoad> |
self:RegisterForDrag("LeftButton", "RightButton") |
self:RegisterForClicks("LeftButtonDown","RightButtonDown") |
self:RegisterForClicks("AnyUp") |
self:SetAttribute("pressAndHoldAction", true); |
self:SetAttribute("typerelease", "macro"); |
</OnLoad> |
<OnDragStart> |
if IsModifierKeyDown() then |
</Anchors> |
<Attributes> |
<Attribute name="type" value="macro" /> |
<Attribute name="macrotext" value="/click LivestockComboButton LeftButton 1" /> |
<Attribute name="macrotext" value="/click LivestockComboButton" /> |
</Attributes> |
<Layers> |
<Layer level="OVERLAY" > |
<Scripts> |
<OnLoad> |
self:RegisterForDrag("LeftButton","RightButton") |
self:RegisterForClicks("LeftButtonDown","RightButtonDown") |
self:RegisterForClicks("AnyUp") |
self:SetAttribute("pressAndHoldAction", true); |
self:SetAttribute("typerelease", "macro"); |
</OnLoad> |
<OnDragStart> |
if IsModifierKeyDown() then |
<Scripts> |
<OnLoad> |
self:RegisterForDrag("LeftButton","RightButton") |
self:RegisterForClicks("LeftButtonDown","RightButtonDown") |
self:RegisterForClicks("AnyUp") |
self:SetAttribute("pressAndHoldAction", true); |
self:SetAttribute("typerelease", "macro"); |
</OnLoad> |
<OnDragStart> |
if IsModifierKeyDown() then |
<Scripts> |
<OnLoad> |
self:RegisterForDrag("LeftButton","RightButton") |
self:RegisterForClicks("LeftButtonDown","RightButtonDown") |
self:RegisterForClicks("AnyUp") |
self:SetAttribute("pressAndHoldAction", true); |
self:SetAttribute("typerelease", "macro"); |
</OnLoad> |
<OnDragStart> |
if IsModifierKeyDown() then |
<Button name="LivestockComboButton" inherits="SecureActionButtonTemplate" parent="UIParent" hidden="true" > |
<Scripts> |
<OnLoad> |
self:RegisterForClicks("AnyUp") |
self:SetAttribute("pressAndHoldAction", true); |
</OnLoad> |
<PreClick> |
Livestock.SmartPreClick(self) |
</PreClick> |
Livestock.MenuButtonOnDoubleClick(self) |
</OnDoubleClick> |
<OnLoad> |
self:RegisterForClicks("LeftButtonUp","RightButtonUp") |
self:RegisterForClicks("AnyUp") |
</OnLoad> |
</Scripts> |
</Button> |
["LivestockCritterMacroButton"] = L.LIVESTOCK_FONTSTRING_SHOWCRITTERSLABEL, |
["LivestockLandMountMacroButton"] = L.LIVESTOCK_FONTSTRING_SHOWLANDLABEL, |
["LivestockFlyingMountMacroButton"] = L.LIVESTOCK_FONTSTRING_SHOWFLYINGLABEL, |
["LivestockComboMacroButton"] = L.LIVESTOCK_FONTSTRING_SHOWSMARTLABEL, |
["LivestockSmartMacroButton"] = L.LIVESTOCK_FONTSTRING_SHOWSMARTLABEL, |
["LivestockSmartPreferencesFrameSafeFlightText"] = L.LIVESTOCK_FONTSTRING_SAFEFLIGHTLABEL, |
["LivestockPetPreferencesFrameAutoDismissOnStealthText"] = L.LIVESTOCK_FONTSTRING_AUTODISMISSONSTEALTHLABEL, |
["LivestockPetPreferencesFramePVPDismissText"] = L.LIVESTOCK_FONTSTRING_PVPDISMISSLABEL, |
self:SetAttribute("state-smartmap",self:GetAttribute("state-smartmap")) |
elseif name == "state-smartmap" then |
self:SetAttribute("type", nil) |
self:SetAttribute("type", "spell") |
self:SetAttribute("typerelease", "spell") |
self:SetAttribute("spell", nil) |
if value == 1 then |
if LivestockClass == "DRUID" then |
if catform == 1 then |
self:SetAttribute("type", "spell") |
self:SetAttribute("spell", catspell) |
end |
elseif LivestockClass == "HUNTER" then |
if indoorspeed == 1 then |
self:SetAttribute("type", "spell") |
self:SetAttribute("spell", aotc) |
end |
elseif LivestockClass == "SHAMAN" then |
if movingform == 1 then |
self:SetAttribute("type", "spell") |
self:SetAttribute("spell", wolfspell) |
end |
end |
elseif value == 2 then |
self:SetAttribute("type", "macro") |
self:SetAttribute("typerelease", "macro") |
self:SetAttribute("macrotext", "/run Livestock.Dismount()") |
self:SetAttribute("mounttype", nil) |
elseif value == 3 then |
if combatformstoggle == 1 then |
if LivestockClass == "DRUID" then |
self:SetAttribute("type", "macro") |
self:SetAttribute("typerelease", "macro") |
self:SetAttribute("macrotext", "/cast !"..travelspell) |
elseif LivestockClass == "SHAMAN" then |
self:SetAttribute("type", "spell") |
self:SetAttribute("spell", wolfspell) |
elseif LivestockClass == "HUNTER" then |
self:SetAttribute("type", "spell") |
self:SetAttribute("spell", aotc) |
elseif LivestockClass == "PRIEST" then |
self:SetAttribute("type", "spell") |
self:SetAttribute("spell", shieldspell) |
elseif LivestockClass == "MONK" then |
self:SetAttribute("type", "spell") |
self:SetAttribute("spell", rollspell) |
elseif LivestockClass == "ROGUE" then |
self:SetAttribute("type", "spell") |
self:SetAttribute("spell", sprintspell) |
end |
end |
elseif value == 6 then |
if tonumber(waterwalkingtoggle) == 1 and (LivestockClass == "SHAMAN" or LivestockClass == "PRIEST" or LivestockClass == "DEATHKNIGHT") then |
self:SetAttribute("type", "spell") |
self:SetAttribute("spell", waterwalkingspell) |
self:SetAttribute("unit", "player") |
elseif IsMounted() then |
self:SetAttribute("type", "macro") |
self:SetAttribute("typerelease", "macro") |
self:SetAttribute("macrotext", "/run Livestock.Dismount()") |
self:SetAttribute("mounttype", nil) |
end |
elseif value == 7 then |
if safeflying == 1 then |
self:SetAttribute("type", nil) |
self:SetAttribute("typerelease", nil) |
self:SetAttribute("spell", nil) |
elseif IsMounted() then |
self:SetAttribute("type", "macro") |
self:SetAttribute("typerelease", "macro") |
self:SetAttribute("macrotext", "/run Livestock.Dismount()") |
self:SetAttribute("mounttype", nil) |
end |
return "LAND" |
end |
elseif continent == 572 or continent == 619 then -- if we're in Draenor or Broken Isles |
if (expertRiding or artisanRiding or masterRiding) then -- IsFlyableArea() is currently bugged |
if (expertRiding or artisanRiding or masterRiding) and IsFlyableArea() then |
return "FLYING" |
else |
return "LAND" |
end |
elseif continent == 876 or continent == 875 or zoneID == 1355 then -- if we're in Kul Tiras or Zandalar or Nazjatar |
if IsFlyableArea() and bfaFlying then |
if bfaFlying and IsFlyableArea() then |
return "FLYING" |
else |
return "LAND" |
local race = select(2, UnitRace("player")) |
local DraenorZoneAbilitySpellID = 161691 |
self:SetAttribute("type", "spell") |
self:SetAttribute("typerelease", "spell") |
if (debug) then |
print(format("PREDEBUG: '%s' is mount-type, state is '%d'", self.mounttype or "nil", self:GetAttribute("state-smartmap"))) |
end |
if IsFalling() and LivestockSettings.slowfall == 1 then |
self:SetAttribute("type", "spell") |
self:SetAttribute("spell", (LivestockClass == "PRIEST" and L.LIVESTOCK_SPELL_LEVITATE) or L.LIVESTOCK_SPELL_SLOWFALL) |
self:SetAttribute("unit", "player") |
return |
if state == 1 then |
if LivestockSettings.indoorspeed == 1 then |
if LivestockClass == "HUNTER" then |
self:SetAttribute("type", "spell") |
self:SetAttribute("spell", L.LIVESTOCK_SPELL_CHEETAH) |
self.mounttype = nil |
elseif LivestockClass == "PRIEST" then |
self:SetAttribute("type", "spell") |
self:SetAttribute("spell", L.LIVESTOCK_SPELL_PWSHIELD) |
self.mounttype = nil |
elseif LivestockClass == "MONK" then |
self:SetAttribute("type", "spell") |
self:SetAttribute("spell", L.LIVESTOCK_SPELL_ROLL) |
self.mounttype = nil |
elseif LivestockClass == "ROGUE" then |
self:SetAttribute("type", "spell") |
self:SetAttribute("spell", L.LIVESTOCK_SPELL_SPRINT) |
self.mounttype = nil |
end |
elseif LivestockClass == "SHAMAN" then |
if LivestockSettings.movingform == 1 and GetUnitSpeed("player") ~= 0 then |
self:SetAttribute("type", "spell") |
self:SetAttribute("spell", L.LIVESTOCK_SPELL_GHOSTWOLF) |
self.mounttype = nil |
self.clearmovingform = true |
if LivestockClass == "DRUID" and not InCombatLockdown() then |
if (Livestock.LandOrFlying() == "FLYING" and LivestockSettings.druidlogic == 1) or (Livestock.LandOrFlying() == "LAND" and LivestockSettings.travelform == 1) then |
if GetSpellInfo(L.LIVESTOCK_SPELL_TRAVELFORM) then |
self:SetAttribute("type", "spell") |
self:SetAttribute("spell", L.LIVESTOCK_SPELL_TRAVELFORM) |
end |
end |
if LivestockSettings.movingspeed == 1 and GetUnitSpeed("player") ~= 0 then |
if LivestockClass == "HUNTER" then |
self:SetAttribute("type", "spell") |
self:SetAttribute("spell", L.LIVESTOCK_SPELL_CHEETAH) |
self.mounttype = nil |
elseif LivestockClass == "PRIEST" then |
self:SetAttribute("type", "spell") |
self:SetAttribute("spell", L.LIVESTOCK_SPELL_PWSHIELD) |
self.mounttype = nil |
elseif LivestockClass == "ROGUE" then |
self:SetAttribute("type", "spell") |
self:SetAttribute("spell", L.LIVESTOCK_SPELL_SPRINT) |
self.mounttype = nil |
end |
if LivestockClass == "MONK" then |
if LivestockSettings.zenflight == 1 and GetUnitSpeed("player") ~= 0 and self.mounttype == "FLYING" then |
if GetSpellInfo(L.LIVESTOCK_SPELL_ZENFLIGHT) then |
self:SetAttribute("type", "spell") |
self:SetAttribute("spell", L.LIVESTOCK_SPELL_ZENFLIGHT) |
self.mounttype = nil |
end |
elseif LivestockSettings.movingspeed == 1 and GetUnitSpeed("player") ~= 0 then |
self:SetAttribute("type", "spell") |
self:SetAttribute("spell", L.LIVESTOCK_SPELL_ROLL) |
self.mounttype = nil |
end |
if LivestockSettings.movingspeed == 1 and GetUnitSpeed("player") ~= 0 then |
if LivestockClass == "HUNTER" then |
self:SetAttribute("type", "spell") |
self:SetAttribute("spell", L.LIVESTOCK_SPELL_CHEETAH) |
self.mounttype = nil |
elseif LivestockClass == "PRIEST" then |
self:SetAttribute("type", "spell") |
self:SetAttribute("spell", L.LIVESTOCK_SPELL_PWSHIELD) |
self.mounttype = nil |
elseif LivestockClass == "ROGUE" then |
self:SetAttribute("type", "spell") |
self:SetAttribute("spell", L.LIVESTOCK_SPELL_SPRINT) |
self.mounttype = nil |
end |
local spellID = select(7, GetSpellInfo(GetSpellInfo(DraenorZoneAbilitySpellID))) |
if spellID == 165803 or spellID == 164222 then |
self:SetAttribute("type", "macro") |
self:SetAttribute("typerelease", "macro") |
self:SetAttribute("macrotext", "/use "..L.LIVESTOCK_SKILL_GARRISON) |
self.mounttype = nil |
return |
if LivestockClass == "MONK" then |
if LivestockSettings.zenflight == 1 and GetUnitSpeed("player") ~= 0 and self.mounttype == "FLYING" then |
if GetSpellInfo(L.LIVESTOCK_SPELL_ZENFLIGHT) then |
self:SetAttribute("type", "spell") |
self:SetAttribute("spell", L.LIVESTOCK_SPELL_ZENFLIGHT) |
self.mounttype = nil |
end |
elseif LivestockSettings.movingspeed == 1 and GetUnitSpeed("player") ~= 0 then |
self:SetAttribute("type", "spell") |
self:SetAttribute("spell", L.LIVESTOCK_SPELL_ROLL) |
self.mounttype = nil |
end |
if LivestockClass == "SHAMAN" then |
if LivestockSettings.movingform == 1 and GetUnitSpeed("player") ~= 0 then |
self:SetAttribute("type", "spell") |
self:SetAttribute("spell", L.LIVESTOCK_SPELL_GHOSTWOLF) |
self.mounttype = nil |
self.clearmovingform = true |
if LivestockClass == "DRUID" then |
if LivestockSettings.movingform == 1 and GetUnitSpeed("player") ~= 0 or (LivestockSettings.druidlogic == 1 and self.mounttype == "FLYING") or (LivestockSettings.travelform == 1 and self.mounttype == "LAND") then |
if AuraUtil.FindAuraByName(L.LIVESTOCK_SPELL_TRAVELFORM, "player") and LivestockSettings.moonkin == 1 and GetSpellInfo(L.LIVESTOCK_SPELL_MOONKINFORM) then |
self:SetAttribute("type", "spell") |
self:SetAttribute("spell", L.LIVESTOCK_SPELL_MOONKINFORM) |
self.mounttype = nil |
else |
self:SetAttribute("type", "spell") |
self:SetAttribute("spell", GetSpellInfo(L.LIVESTOCK_SPELL_TRAVELFORM) or L.LIVESTOCK_SPELL_CATFORM) |
self.mounttype = nil |
self.clearmovingform = true |
if AuraUtil.FindAuraByName(L.LIVESTOCK_SPELL_MOONKINFORM, "player") then |
else |
self:SetAttribute("type", "macro") |
self:SetAttribute("typerelease", "macro") |
self:SetAttribute("macrotext", "/cancelform") |
end |
end |
end |
if self.mounttype == "LAND" and race == "Worgen" and LivestockSettings.worgenlogic == 1 and GetUnitSpeed("player") == 0 then |
self:SetAttribute("type", "spell") |
self:SetAttribute("spell", L.LIVESTOCK_SPELL_RUNNINGWILD) |
self.mounttype = nil |
end |
if (LivestockSettings.movingform == 1 and GetUnitSpeed("player") ~= 0) or (LivestockSettings.travelform == 1 and self.mounttype == "LAND" and LivestockClass == "DRUID") then |
if AuraUtil.FindAuraByName(L.LIVESTOCK_SPELL_TRAVELFORM, "player") and LivestockSettings.moonkin == 1 and GetSpellInfo(L.LIVESTOCK_SPELL_MOONKINFORM) then |
self:SetAttribute("type", "spell") |
self:SetAttribute("spell", L.LIVESTOCK_SPELL_MOONKINFORM) |
self.mounttype = nil |
else |
self:SetAttribute("type", "spell") |
self:SetAttribute("spell", (LivestockClass == "SHAMAN" and L.LIVESTOCK_SPELL_GHOSTWOLF) or GetSpellInfo(L.LIVESTOCK_SPELL_TRAVELFORM) or L.LIVESTOCK_SPELL_CATFORM) |
self.mounttype = nil |
self.clearmovingform = true |
end |
elseif LivestockSettings.movingspeed == 1 and GetUnitSpeed("player") ~= 0 then |
if LivestockClass == "HUNTER" then |
self:SetAttribute("type", "spell") |
self:SetAttribute("spell", L.LIVESTOCK_SPELL_CHEETAH) |
self.mounttype = nil |
elseif LivestockClass == "PRIEST" then |
self:SetAttribute("type", "spell") |
self:SetAttribute("spell", L.LIVESTOCK_SPELL_PWSHIELD) |
self.mounttype = nil |
elseif LivestockClass == "MONK" then |
self:SetAttribute("type", "spell") |
self:SetAttribute("spell", L.LIVESTOCK_SPELL_ROLL) |
self.mounttype = nil |
elseif LivestockClass == "ROGUE" then |
self:SetAttribute("type", "spell") |
self:SetAttribute("spell", L.LIVESTOCK_SPELL_SPRINT) |
self.mounttype = nil |
end |
local spellID = select(7, GetSpellInfo(GetSpellInfo(DraenorZoneAbilitySpellID))) |
if spellID == 165803 or spellID == 164222 then |
self:SetAttribute("type", "macro") |
self:SetAttribute("typerelease", "macro") |
self:SetAttribute("macrotext", "/use "..L.LIVESTOCK_SKILL_GARRISON) |
self.mounttype = nil |
return |
end |
elseif race == "Worgen" and LivestockSettings.worgenlogic == 1 then |
self:SetAttribute("type", "spell") |
self:SetAttribute("spell", L.LIVESTOCK_SPELL_RUNNINGWILD) |
self.mounttype = nil |
elseif LivestockClass == "DRUID" then |
if AuraUtil.FindAuraByName(L.LIVESTOCK_SPELL_MOONKINFORM, "player") then |
else |
self:SetAttribute("type", "macro") |
self:SetAttribute("typerelease", "macro") |
self:SetAttribute("macrotext", "/cancelform") |
end |
end |
elseif state == 6 then -- swimming |
if LivestockClass == "DRUID" and GetUnitSpeed("player") ~= 0 and GetSpellInfo(L.LIVESTOCK_SPELL_TRAVELFORM) then |
self:SetAttribute("type", "spell") |
self:SetAttribute("spell", L.LIVESTOCK_SPELL_TRAVELFORM) |
self.mounttype = nil |
self.clearmovingform = true |
self.mounttype = nil |
local spellName = AuraUtil.FindAuraByName(L.LIVESTOCK_SPELL_TRAVELFORM, "player") |
if LivestockSettings.moonkin == 1 and spellName and GetSpellInfo(L.LIVESTOCK_SPELL_MOONKINFORM) then |
self:SetAttribute("type", "spell") |
self:SetAttribute("spell", L.LIVESTOCK_SPELL_MOONKINFORM) |
else |
if AuraUtil.FindAuraByName(L.LIVESTOCK_SPELL_MOONKINFORM, "player") then |
else |
self:SetAttribute("type", "spell") |
self:SetAttribute("spell", L.LIVESTOCK_SPELL_TRAVELFORM) |
end |
end |
if self.clearmovingform then |
self.clearmovingform = nil |
self:SetAttribute("type", nil) |
self:SetAttribute("typerelease", nil) |
self:SetAttribute("spell", nil) |
self:SetAttribute("macrotext", nil) |
end |
local race = select(2, UnitRace("player")) |
self:SetAttribute("type", "spell") |
self:SetAttribute("typerelease", "spell") |
if IsFlying() and LivestockSettings.safeflying == 1 then -- trying to summon a land or flying mount in the air should fail to set any attributes and not flag anything for summoning. No smush deaths. |
return |
end |
if LivestockClass == "SHAMAN" then |
local name = AuraUtil.FindAuraByName(L.LIVESTOCK_SPELL_GHOSTWOLF, "player") |
if name then -- name will be the name of the form at this point |
self:SetAttribute("type", "spell") |
self:SetAttribute("spell", name) -- by casting the spell that we had on in the first place, we effectively remove the spell. |
end |
end |
AuraUtil.FindAuraByName(L.LIVESTOCK_SPELL_TREANTFORM, "player") or |
AuraUtil.FindAuraByName(L.LIVESTOCK_SPELL_STAGFORM, "player") then |
self:SetAttribute("type", "macro") |
self:SetAttribute("typerelease", "macro") |
self:SetAttribute("macrotext", "/cancelform") |
self:SetAttribute("mounttype", nil) |
end |
end |
if self.typeofmount == "land" and race == "Worgen" and LivestockSettings.worgenlogic == 1 and GetUnitSpeed("player") == 0 then |
self:SetAttribute("type", "spell") |
self:SetAttribute("spell", L.LIVESTOCK_SPELL_RUNNINGWILD) |
self.typeofmount = nil |
end |
end |
self:SetAttribute("type", nil) -- clear the attributes of the button in case they were used |
self:SetAttribute("typerelease", nil) |
self:SetAttribute("spell", nil) |
end |
end |
end |
function Livestock_OnAddonCompartmentClick(addonName, buttonName) |
Settings.OpenToCategory(LivestockLocalizations.LIVESTOCK_INTERFACE_MAINPANEL) |
end |
--[[ |
Ordered table iterator, allow to iterate on the natural order of the keys of a |
table. |
Version 3.3.6 |
- TOC update for patch 10.1.0 |
- Addon compartment support |
- Buttons and macros once again work like they did before 10.0 |
- *** Please recreate any macros to avoid issues *** |
Version 3.3.5 |
- Updates for patch 10.0.7 |
- Reworked logic to choose dragonriding in the Dragon Isles. |
- Reworked logic to choose dragonriding in the Dragon Isles |
Version 3.3.4 |
Version 3.3.3 |
- Moved dragonriding mounts into their own menu. |
- Moved dragonriding mounts into their own menu |
Version 3.3.2 |
- Minor Druid logic updates. |
- Minor Druid logic updates |
Version 3.3.1 |
- Enabled dragonriding in The Nokhud Offensive. |
- Enabled dragonriding in The Nokhud Offensive |
Version 3.3.0 |
- Attempt to prevent dragonriding inside instances. |
- Attempt to prevent dragonriding inside instances |
Version 3.2.9 |
- Fixed dragonriding from water surface. |
- Fixed dragonriding from water surface |
Version 3.2.8 |
- Fixed item link parsing for zone/subzone/party commands. |
- Fixed item link parsing for zone/subzone/party commands |
Version 3.2.7 |
- Initial dragonriding support. |
- Initial dragonriding support |
Version 3.2.6 |
- Fixed cat form, ghost wolf, etc. |
- Fixed cat form, ghost wolf, etc |
Version 3.2.5 |
## Interface: 100007 |
## Interface: 100100 |
## Title: Livestock |
## Notes: Enables easy random summoning of vanity pets and mounts, including the option of "smart mounting" |
## Author: Kharthus - Deathwing(US) |
## Version: 3.3.5 |
## Version: 3.3.6 |
## AddonCompartmentFunc: Livestock_OnAddonCompartmentClick |
## IconTexture: 136456 |
## SavedVariablesPerCharacter: LivestockSettings |
LibRecompense\RecompenseTools.lua |