You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

186 lines
6.3 KiB

local addonName, addon = ...
---addon = LibStub("AceAddon-3.0"):NewAddon(addon, addonName, "AceEvent-3.0", "AceConsole-3.0", "AceHook-3.0")
addon = LibStub("AceAddon-3.0"):GetAddon(addonName)
local Camera = {}
addon.Camera = Camera
local L = LibStub("AceLocale-3.0"):GetLocale(addonName)
local _, playerRace, playerRaceID = UnitRace("player")
local genders = {
[2] = "Male",
[3] = "Female",
}
local gender = genders[UnitSex("player")]
function Camera:GetCameraID(item, force)
local GetItemInfoInstant = C_Item and C_Item.GetItemInfoInstant
local cameraType, isWeapon, cameraID
local itemid, _, _, slot, _, class, subclass = GetItemInfoInstant(item)
slot = addon.Globals.INVENTORY_SLOT_NAMES[slot]
slot = addon.Globals.INVENTORY_SLOT_NAMES[slot]
if addon.Globals.CAMERAS[class][subclass] and not Camera.lookupItems[slot] then
isWeapon = true
cameraID = addon.Globals.CAMERAS[class][subclass]
else
local race = playerRace
local force = addon.Profile.TooltipPreview_SwapModifier ~= L["None"] and addon.Globals.mods[addon.Profile.TooltipPreview_SwapModifier]()
local inAltForm = select(2, C_PlayerInfo.GetAlternateFormInfo())
if race == 'Worgen' and addon.Profile.TooltipPreview_SwapDefault or (force and not inAltForm) or (not force and inAltForm) then
race = 'WorgenAlt'
end
if race == 'Dracthyr' and addon.Profile.TooltipPreview_SwapDefault or (force and not inAltForm) or (not force and inAltForm) then
race = 'DracthyrAlt'
end
local cameraItem = Camera.lookupItems[slot]
local itemAppearanceID, itemModifiedAppearanceID = C_TransmogCollection.GetItemInfo(cameraItem)
cameraID = C_TransmogCollection.GetAppearanceCameraID(itemAppearanceID)
cameraType = ("%s-%s-%s"):format(race, gender, slot)
end
return Camera.raceCameraIDs[cameraType] or cameraID, isWeapon
end
function Camera:GetCameraIDBySlot(slotID, force)
local slot = addon.Globals.CATEGORYID_TO_NAME[slotID]
local cameraType
local race = playerRace
if not addon.useNativeForm or force then
if race == 'Worgen' then
race = 'WorgenAlt'
end
if race == 'Dracthyr' then
race = 'DracthyrAlt'
end
end
cameraType = ("%s-%s-%s"):format(race, gender, slot)
local cameraItem = Camera.lookupItems[slot]
local itemAppearanceID, itemModifiedAppearanceID = C_TransmogCollection.GetItemInfo(cameraItem)
local cameraID = C_TransmogCollection.GetAppearanceCameraID(itemAppearanceID)
return Camera.raceCameraIDs[cameraType] or cameraID, false
end
addon.Globals.CAMERAS = {[2]={243,251,252,244,245,247,238,239,624,246,248,241,253,253,241,253,247,253,240,818,[0] = 242}, [4] = { [0] = 250, [6]=249}} --
Camera.lookupItems={
["HEADSLOT"] = 191616,
["SHOULDERSLOT"] = 191620,
["BACKSLOT"] = 200763,
["CHESTSLOT"] = 191617,
["SHIRTSLOT"] = 6833,
["TABARDSLOT"] = 142504,
["WRISTSLOT"] = 200687,
["HANDSSLOT"] = 191774,
["WAISTSLOT"] = 191621,
["LEGSSLOT"] = 191618,
["FEETSLOT"] = 191622,
}
Camera.raceCameraIDs = {
["Dracthyr-Female-HEADSLOT"] = 1702,
["Dracthyr-Female-SHOULDERSLOT"] = 1704,
["Dracthyr-Female-BACKSLOT"] = 1706,
["Dracthyr-Female-CHESTSLOT"] = 1698,
["Dracthyr-Female-SHIRTSLOT"] = 1709,
["Dracthyr-Female-TABARDSLOT"] = 1707,
["Dracthyr-Female-WRISTSLOT"] = 1711,
["Dracthyr-Female-HANDSSLOT"] = 1708,
["Dracthyr-Female-WAISTSLOT"] = 1700,
["Dracthyr-Female-LEGSSLOT"] = 1701,
["Dracthyr-Female-FEETSLOT"] = 1705,
["DracthyrAlt-Female-HEADSLOT"] = 274,
["DracthyrAlt-Female-SHOULDERSLOT"] = 275,
["DracthyrAlt-Female-BACKSLOT"] = 276,
["DracthyrAlt-Female-CHESTSLOT"] = 278,
["DracthyrAlt-Female-SHIRTSLOT"] = 278,
["DracthyrAlt-Female-TABARDSLOT"] = 279,
["DracthyrAlt-Female-WRISTSLOT"] = 280,
["DracthyrAlt-Female-HANDSSLOT"] = 281,
["DracthyrAlt-Female-WAISTSLOT"] = 282,
["DracthyrAlt-Female-LEGSSLOT"] = 283,
["DracthyrAlt-Female-FEETSLOT"] = 284,
["Dracthyr-Male-HEADSLOT"] = 1702,
["Dracthyr-Male-SHOULDERSLOT"] = 1704,
["Dracthyr-Male-BACKSLOT"] = 1706,
["Dracthyr-Male-CHESTSLOT"] = 1698,
["Dracthyr-Male-SHIRTSLOT"] = 1709,
["Dracthyr-Male-TABARDSLOT"] = 1707,
["Dracthyr-Male-WRISTSLOT"] = 1711,
["Dracthyr-Male-HANDSSLOT"] = 1708,
["Dracthyr-Male-WAISTSLOT"] = 1700,
["Dracthyr-Male-LEGSSLOT"] = 1701,
["Dracthyr-Male-FEETSLOT"] = 1705,
["DracthyrAlt-Male-HEADSLOT"] = 1713,
["DracthyrAlt-Male-SHOULDERSLOT"] = 455,
["DracthyrAlt-Male-BACKSLOT"] = 1714,
["DracthyrAlt-Male-CHESTSLOT"] = 457,
["DracthyrAlt-Male-SHIRTSLOT"] = 458,
["DracthyrAlt-Male-TABARDSLOT"] = 1715,
["DracthyrAlt-Male-WRISTSLOT"] = 460,
["DracthyrAlt-Male-HANDSSLOT"] = 461,
["DracthyrAlt-Male-WAISTSLOT"] = 462,
["DracthyrAlt-Male-LEGSSLOT"] = 463,
["DracthyrAlt-Male-FEETSLOT"] = 464,
["Worgen-Male-HEADSLOT"] = 309,
["Worgen-Male-SHOULDERSLOT"] = 310,
["Worgen-Male-BACKSLOT"] = 311,
["Worgen-Male-CHESTSLOT"] = 312,
["Worgen-Male-SHIRTSLOT"] = 313,
["Worgen-Male-TABARDSLOT"] = 314,
["Worgen-Male-WRISTSLOT"] = 315,
["Worgen-Male-HANDSSLOT"] = 316,
["Worgen-Male-WAISTSLOT"] = 317,
["Worgen-Male-LEGSSLOT"] = 318,
["Worgen-Male-FEETSLOT"] = 319,
["WorgenAlt-Male-HEADSLOT"] = 236,
["WorgenAlt-Male-SHOULDERSLOT"] = 221,
["WorgenAlt-Male-BACKSLOT"] = 235,
["WorgenAlt-Male-CHESTSLOT"] = 674,
["WorgenAlt-Male-SHIRTSLOT"] = 229,
["WorgenAlt-Male-TABARDSLOT"] = 230,
["WorgenAlt-Male-WRISTSLOT"] = 237,
["WorgenAlt-Male-HANDSSLOT"] = 226,
["WorgenAlt-Male-WAISTSLOT"] = 234,
["WorgenAlt-Male-LEGSSLOT"] = 228,
["WorgenAlt-Male-FEETSLOT"] = 227,
["Worgen-Female-HEADSLOT"] = 320,
["Worgen-Female-SHOULDERSLOT"] = 321,
["Worgen-Female-BACKSLOT"] = 322,
["Worgen-Female-CHESTSLOT"] = 324,
["Worgen-Female-SHIRTSLOT"] = 324,
["Worgen-Female-TABARDSLOT"] = 325,
["Worgen-Female-WRISTSLOT"] = 326,
["Worgen-Female-HANDSSLOT"] = 327,
["Worgen-Female-WAISTSLOT"] = 328,
["Worgen-Female-LEGSSLOT"] = 329,
["Worgen-Female-FEETSLOT"] = 330,
["WorgenAlt-Female-HEADSLOT"] = 274,
["WorgenAlt-Female-SHOULDERSLOT"] = 275,
["WorgenAlt-Female-BACKSLOT"] = 276,
["WorgenAlt-Female-CHESTSLOT"] = 278,
["WorgenAlt-Female-SHIRTSLOT"] = 278,
["WorgenAlt-Female-TABARDSLOT"] = 279,
["WorgenAlt-Female-WRISTSLOT"] = 280,
["WorgenAlt-Female-HANDSSLOT"] = 281,
["WorgenAlt-Female-WAISTSLOT"] = 282,
["WorgenAlt-Female-LEGSSLOT"] = 283,
["WorgenAlt-Female-FEETSLOT"] = 284,
}