From dac833937d5a5b95654ed166596cd5e96cfebd07 Mon Sep 17 00:00:00 2001 From: jeffi Date: Thu, 7 Mar 2024 17:48:17 -0600 Subject: [PATCH] Trying to get rid of duplicate types between Daemonic and Tinkr. --- Daemonic.lua | 164 +----------- README.md | 1 + Tinkr.lua | 704 ++++++++++++++------------------------------------ Universal.lua | 513 ++++++++++++++++++++++++++++++++++++ 4 files changed, 712 insertions(+), 670 deletions(-) create mode 100644 Universal.lua diff --git a/Daemonic.lua b/Daemonic.lua index a56a4f2..937d968 100644 --- a/Daemonic.lua +++ b/Daemonic.lua @@ -1,3 +1,5 @@ +---@meta + --#region DaemonicTypes ---@enum KeyCode local KeyCode = { @@ -6,18 +8,6 @@ local KeyCode = { RSHIFT = "RSHIFT" } ----@enum CollisionFlags -local CollisionFlags = { - M2Collision = 0x1, - M2Render = 0x2, - WMOCollision = 0x10, - WMORender = 0x20, - Terrain = 0x100, - WaterWalkableLiquid = 0x10000, - Liquid = 0x20000, - EntityCollision = 0x100000, -} - ---@alias GUID string ---@alias UnitReference UnitId | GUID @@ -44,154 +34,6 @@ local HMacHashType = { ---@alias DaemonicObjectReference GUID ----@enum LuaType -local LuaType = { - Bool = 1, - Char = 2, - Byte = 3, - Short = 4, - UShort = 5, - Int = 6, - UInt = 7, - Long = 8, - ULong = 9, - Float = 10, - Double = 11, - StringType = 12, - IntPtr = 13, - UIntPtr = 14, - GUID = 15, -} - ----@enum UnitCreatureType -local UnitCreatureType = { - Beast = 1, - Dragonkin = 2, - Demon = 3, - Elemental = 4, - Giant = 5, - Undead = 6, - Humanoid = 7, - Critter = 8, - Mechanical = 9, - NotSpecified = 10, - Totem = 11, - NonCombatPet = 12, - GasCloud = 13, - WildPet = 14, -- Retail Only - Aberration = 15, -- Retail Only -} - ----@enum DObjectTypes -local DObjectTypes = { - Object = 0, - Item = 1, - Container = 2, - AzeriteEmpoweredItem = 3, - AzeriteItem = 4, - Unit = 5, - Player = 6, - ActivePlayer = 7, - GameObject = 8, - DynamicObject = 9, - Corpse = 10, - AreaTrigger = 11, - SceneObject = 12, - Conversation = 13, - AiGroup = 14, - Scenario = 15, - Loot = 16, - Invalid = 17, -} - ----@enum GameObjectType -local GameObjectType = { - Door = 0, - Button = 1, - Questgiver = 2, - Chest = 3, -- Herbs, Minerals, Chests - Binder = 4, - Generic = 5, - Trap = 6, - Chair = 7, - SpellFocus = 8, - Text = 9, - Goober = 10, - TransportElevator = 11, - AreaDamage = 12, - Camera = 13, - Mapobject = 14, - MoTransportShip = 15, - DuelFlag = 16, - FishingNode = 17, - Ritual = 18, - Mailbox = 19, - DONOTUSE1 = 20, - GuardPost = 21, - SpellCaster = 22, - MeetingStone = 23, - FlagStand = 24, - FishingHole = 25, - FlagDrop = 26, - DONOTUSE2 = 27, - DONOTUSE3 = 28, - ControlZone = 29, - AuraGenerator = 30, - DungeonDifficulty = 31, - BarberChair = 32, - DestructibleBuilding = 33, - GuildBank = 34, - Trapdoor = 35, - Newflag = 36, - Newflagdrop = 37, - GarrisonBuilding = 38, - GarrisonPlot = 39, - ClientCreature = 40, - ClientItem = 41, - CapturePoint = 42, - PhaseableMO = 43, - GarrisonMonument = 44, - GarrisonShipment = 45, - GarrisonMonumentPlaque = 46, - ItemForge = 47, - UILink = 48, - KeystoneReceptacle = 49, - GatheringNode = 50, - ChallengeModeReward = 51, - Multi = 52, - SeigableMulti = 53, - SeigableMo = 54, - PvpReward = 55, - PlayerChoiceChest = 56, - LegendaryForge = 57, - GearTalentTree = 58, - WeeklyRewardChest = 59, - ClientModel = 60, -} - ----@enum MovementFlags -local MovementFlags = { - None = 0x0, - Forward = 0x1, - Backward = 0x2, - StrafeLeft = 0x4, - StrafeRight = 0x8, - TurnLeft = 0x10, - TurnRight = 0x20, - PitchUp = 0x40, - PitchDown = 0x80, - Walking = 0x100, - OnTransport = 0x200, - Immobilized = 0x400, - Falling = 0x800, - FallingFar = 0x1000, - Swimming = 0x100000, - Ascending = 0x200000, - Descending = 0x400000, - CanFly = 0x800000, - Flying = 0x1000000, -} - ---@enum FindPathReturnType local FindPathReturnType = { NavigationFinished = 0, @@ -484,7 +326,7 @@ local Daemonic = { ---@return string ObjectMover = function(unit) end, ---@param unit UnitReference - ---@return DObjectTypes + ---@return ObjectType ObjectType = function(unit) end, ---@param unit UnitReference ---@return boolean diff --git a/README.md b/README.md index ea16d88..703ef57 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,7 @@ If using VSCode you can update your projects `.vscode/settings.json` file to add the types you need. For example: ``` "Lua.workspace.library": [ + "~/dev/UnlockerTypes/Universal.lua", "~/dev/UnlockerTypes/Tinkr.lua" ] ``` \ No newline at end of file diff --git a/Tinkr.lua b/Tinkr.lua index f1f8405..b889709 100644 --- a/Tinkr.lua +++ b/Tinkr.lua @@ -1,314 +1,5 @@ ---@meta ---- The current player. ----@alias PlayerUnitId "player" -local PlayerUnitId = "player" - ---- The current player's focus target as selected by the /focus command. ----@alias FocusUnitId "focus" -local FocusUnitId = "focus" - ---- The unit which the mouse is currently (or was most recently) hovering over. ----@alias MouseoverUnitId "mouseover" -local MouseoverUnitId = "mouseover" - ---- A valid unit token that always refers to no unit. UnitName will return "Unknown, nil" for this UnitID. ----@alias NoneUnitId "none" -local NoneUnitId = "none" - ---- The current player's pet. ----@alias PetUnitId "pet" -local PetUnitId = "pet" - ---- The currently targeted unit. May be overridden in macros by unit specified as a value of respective Secure Button attribute. ----@alias TargetUnitId "target" -local TargetUnitId = "target" - ---- The current player's vehicle. ----@alias VehicleUnitId "vehicle" -local VehicleUnitId = "vehicle" - ---- The NPC with which the player is currently interacting. You must be interacting with the NPC for this to work (e.g. the quest, flight path, merchant, gossip, or bank frame is open). ----@alias NpcUnitId "npc" -local NpcUnitId = "npc" - ---- The quest giver NPC with which the player is currently interacting. In most cases this will be identical to the "npc" unit. ----@alias QuestNpcUnitId "questnpc" -local QuestNpcUnitId = "questnpc" - -local PartyBaseUnitId = "party" -local PartyPetBaseUnitId = PartyBaseUnitId .. PetUnitId -local RaidBaseUnitId = "raid" -local RaidPetBaseUnitId = RaidBaseUnitId .. PetUnitId -local ArenaBaseUnitId = "arena" -local BossBaseUnitId = "boss" -local NameplateBaseUnitId = "nameplate" -local SpectatedBaseUnitId = "spectated" -local SpectatedTeamAId = "a" -local SpectatedTeamABaseUnitId = SpectatedBaseUnitId .. SpectatedTeamAId -local SpectatedTeamAPetBaseUnitId = SpectatedBaseUnitId .. PetUnitId .. SpectatedTeamAId -local SpectatedTeamBId = "b" -local SpectatedTeamBBaseUnitId = SpectatedBaseUnitId .. SpectatedTeamBId -local SpectatedTeamBPetBaseUnitId = SpectatedBaseUnitId .. PetUnitId .. SpectatedTeamBId - ---- The raid member with raidIndex N (1,2,3,...,40) `raid1` - `raid40`. ----@enum (key) RaidUnitIds -local RaidUnitIds = { - raid1 = RaidBaseUnitId .. "1", - raid2 = RaidBaseUnitId .. "2", - raid3 = RaidBaseUnitId .. "3", - raid4 = RaidBaseUnitId .. "4", - raid5 = RaidBaseUnitId .. "5", - raid6 = RaidBaseUnitId .. "6", - raid7 = RaidBaseUnitId .. "7", - raid8 = RaidBaseUnitId .. "8", - raid9 = RaidBaseUnitId .. "9", - raid10 = RaidBaseUnitId .. "10", - raid11 = RaidBaseUnitId .. "11", - raid12 = RaidBaseUnitId .. "12", - raid13 = RaidBaseUnitId .. "13", - raid14 = RaidBaseUnitId .. "14", - raid15 = RaidBaseUnitId .. "15", - raid16 = RaidBaseUnitId .. "16", - raid17 = RaidBaseUnitId .. "17", - raid18 = RaidBaseUnitId .. "18", - raid19 = RaidBaseUnitId .. "19", - raid20 = RaidBaseUnitId .. "20", - raid21 = RaidBaseUnitId .. "21", - raid22 = RaidBaseUnitId .. "22", - raid23 = RaidBaseUnitId .. "23", - raid24 = RaidBaseUnitId .. "24", - raid25 = RaidBaseUnitId .. "25", - raid26 = RaidBaseUnitId .. "26", - raid27 = RaidBaseUnitId .. "27", - raid28 = RaidBaseUnitId .. "28", - raid29 = RaidBaseUnitId .. "29", - raid30 = RaidBaseUnitId .. "30", - raid31 = RaidBaseUnitId .. "31", - raid32 = RaidBaseUnitId .. "32", - raid33 = RaidBaseUnitId .. "33", - raid34 = RaidBaseUnitId .. "34", - raid35 = RaidBaseUnitId .. "35", - raid36 = RaidBaseUnitId .. "36", - raid37 = RaidBaseUnitId .. "37", - raid38 = RaidBaseUnitId .. "38", - raid39 = RaidBaseUnitId .. "39", - raid40 = RaidBaseUnitId .. "40", -} - ---- Opposing arena member with index N (1,2,3,4 or 5) `arena1` - `arena5`. ----@enum (key) ArenaUnitIds -local ArenaUnitIds = { - arena1 = ArenaBaseUnitId .. "1", - arena2 = ArenaBaseUnitId .. "2", - arena3 = ArenaBaseUnitId .. "3", - arena4 = ArenaBaseUnitId .. "4", - arena5 = ArenaBaseUnitId .. "5", -} - ---- The active bosses of the current encounter if available N (1,2,3...,8) `boss1` - `boss8`. ----@enum (key) BossUnitIds -local BossUnitIds = { - boss1 = BossBaseUnitId .. "1", - boss2 = BossBaseUnitId .. "2", - boss3 = BossBaseUnitId .. "3", - boss4 = BossBaseUnitId .. "4", - boss5 = BossBaseUnitId .. "5", - boss6 = BossBaseUnitId .. "6", - boss7 = BossBaseUnitId .. "7", - boss8 = BossBaseUnitId .. "8", -} - ---- The Nth party member excluding the player (1,2,3 or 4) `party1` - `party4`. ----@enum (key) PartyUnitIds -local PartyUnitIds = { - party1 = PartyBaseUnitId .. "1", - party2 = PartyBaseUnitId .. "2", - party3 = PartyBaseUnitId .. "3", - party4 = PartyBaseUnitId .. "4", -} - ---- The pet of the Nth party member (N is 1,2,3, or 4) `partypet1` - `partypet4`. ----@enum (key) PartyPetUnitIds -local PartyPetUnitIds = { - partypet1 = PartyPetBaseUnitId .. "1", - partypet2 = PartyPetBaseUnitId .. "2", - partypet3 = PartyPetBaseUnitId .. "3", - partypet4 = PartyPetBaseUnitId .. "4", -} - ---- The pet of the raid member with raidIndex N (1,2,3,...,40) `raidpet1` - `raidpet40`. ----@enum (key) RaidPetUnitIds -local RaidPetUnitIds = { - raidpet1 = RaidPetBaseUnitId .. "1", - raidpet2 = RaidPetBaseUnitId .. "2", - raidpet3 = RaidPetBaseUnitId .. "3", - raidpet4 = RaidPetBaseUnitId .. "4", - raidpet5 = RaidPetBaseUnitId .. "5", - raidpet6 = RaidPetBaseUnitId .. "6", - raidpet7 = RaidPetBaseUnitId .. "7", - raidpet8 = RaidPetBaseUnitId .. "8", - raidpet9 = RaidPetBaseUnitId .. "9", - raidpet10 = RaidPetBaseUnitId .. "10", - raidpet11 = RaidPetBaseUnitId .. "11", - raidpet12 = RaidPetBaseUnitId .. "12", - raidpet13 = RaidPetBaseUnitId .. "13", - raidpet14 = RaidPetBaseUnitId .. "14", - raidpet15 = RaidPetBaseUnitId .. "15", - raidpet16 = RaidPetBaseUnitId .. "16", - raidpet17 = RaidPetBaseUnitId .. "17", - raidpet18 = RaidPetBaseUnitId .. "18", - raidpet19 = RaidPetBaseUnitId .. "19", - raidpet20 = RaidPetBaseUnitId .. "20", - raidpet21 = RaidPetBaseUnitId .. "21", - raidpet22 = RaidPetBaseUnitId .. "22", - raidpet23 = RaidPetBaseUnitId .. "23", - raidpet24 = RaidPetBaseUnitId .. "24", - raidpet25 = RaidPetBaseUnitId .. "25", - raidpet26 = RaidPetBaseUnitId .. "26", - raidpet27 = RaidPetBaseUnitId .. "27", - raidpet28 = RaidPetBaseUnitId .. "28", - raidpet29 = RaidPetBaseUnitId .. "29", - raidpet30 = RaidPetBaseUnitId .. "30", - raidpet31 = RaidPetBaseUnitId .. "31", - raidpet32 = RaidPetBaseUnitId .. "32", - raidpet33 = RaidPetBaseUnitId .. "33", - raidpet34 = RaidPetBaseUnitId .. "34", - raidpet35 = RaidPetBaseUnitId .. "35", - raidpet36 = RaidPetBaseUnitId .. "36", - raidpet37 = RaidPetBaseUnitId .. "37", - raidpet38 = RaidPetBaseUnitId .. "38", - raidpet39 = RaidPetBaseUnitId .. "39", - raidpet40 = RaidPetBaseUnitId .. "40", -} - ---- The Nth nameplate unit (1,2,3,...,40) `nameplate1` - `nameplate40`. ----@enum (key) NameplateUnitIds -local NameplateUnitIds = { - nameplate1 = NameplateBaseUnitId .. "1", - nameplate2 = NameplateBaseUnitId .. "2", - nameplate3 = NameplateBaseUnitId .. "3", - nameplate4 = NameplateBaseUnitId .. "4", - nameplate5 = NameplateBaseUnitId .. "5", - nameplate6 = NameplateBaseUnitId .. "6", - nameplate7 = NameplateBaseUnitId .. "7", - nameplate8 = NameplateBaseUnitId .. "8", - nameplate9 = NameplateBaseUnitId .. "9", - nameplate10 = NameplateBaseUnitId .. "10", - nameplate11 = NameplateBaseUnitId .. "11", - nameplate12 = NameplateBaseUnitId .. "12", - nameplate13 = NameplateBaseUnitId .. "13", - nameplate14 = NameplateBaseUnitId .. "14", - nameplate15 = NameplateBaseUnitId .. "15", - nameplate16 = NameplateBaseUnitId .. "16", - nameplate17 = NameplateBaseUnitId .. "17", - nameplate18 = NameplateBaseUnitId .. "18", - nameplate19 = NameplateBaseUnitId .. "19", - nameplate20 = NameplateBaseUnitId .. "20", - nameplate21 = NameplateBaseUnitId .. "21", - nameplate22 = NameplateBaseUnitId .. "22", - nameplate23 = NameplateBaseUnitId .. "23", - nameplate24 = NameplateBaseUnitId .. "24", - nameplate25 = NameplateBaseUnitId .. "25", - nameplate26 = NameplateBaseUnitId .. "26", - nameplate27 = NameplateBaseUnitId .. "27", - nameplate28 = NameplateBaseUnitId .. "28", - nameplate29 = NameplateBaseUnitId .. "29", - nameplate30 = NameplateBaseUnitId .. "30", - nameplate31 = NameplateBaseUnitId .. "31", - nameplate32 = NameplateBaseUnitId .. "32", - nameplate33 = NameplateBaseUnitId .. "33", - nameplate34 = NameplateBaseUnitId .. "34", - nameplate35 = NameplateBaseUnitId .. "35", - nameplate36 = NameplateBaseUnitId .. "36", - nameplate37 = NameplateBaseUnitId .. "37", - nameplate38 = NameplateBaseUnitId .. "38", - nameplate39 = NameplateBaseUnitId .. "39", - nameplate40 = NameplateBaseUnitId .. "40", -} - --- The Nth spectated unit (1,2,3,...,15) for Team "a". Only present in commentator mode. `spectateda1` - `spectateda15` ----@enum (key) SpectatedTeamAUnitIds -local SpectatedTeamAUnitIds = { - spectateda1 = SpectatedTeamABaseUnitId .. "1", - spectateda2 = SpectatedTeamABaseUnitId .. "2", - spectateda3 = SpectatedTeamABaseUnitId .. "3", - spectateda4 = SpectatedTeamABaseUnitId .. "4", - spectateda5 = SpectatedTeamABaseUnitId .. "5", - spectateda6 = SpectatedTeamABaseUnitId .. "6", - spectateda7 = SpectatedTeamABaseUnitId .. "7", - spectateda8 = SpectatedTeamABaseUnitId .. "8", - spectateda9 = SpectatedTeamABaseUnitId .. "9", - spectateda10 = SpectatedTeamABaseUnitId .. "10", - spectateda11 = SpectatedTeamABaseUnitId .. "11", - spectateda12 = SpectatedTeamABaseUnitId .. "12", - spectateda13 = SpectatedTeamABaseUnitId .. "13", - spectateda14 = SpectatedTeamABaseUnitId .. "14", - spectateda15 = SpectatedTeamABaseUnitId .. "15", -} - --- The pet of the Nth spectated unit (1,2,3,...,15) for Team "a". Only present in commentator mode. `spectatedpeta1` - `spectatedpeta15` ----@enum (key) SpectatedTeamAPetUnitIds -local SpectatedTeamAPetUnitIds = { - spectatedpeta1 = SpectatedTeamAPetBaseUnitId .. "1", - spectatedpeta2 = SpectatedTeamAPetBaseUnitId .. "2", - spectatedpeta3 = SpectatedTeamAPetBaseUnitId .. "3", - spectatedpeta4 = SpectatedTeamAPetBaseUnitId .. "4", - spectatedpeta5 = SpectatedTeamAPetBaseUnitId .. "5", - spectatedpeta6 = SpectatedTeamAPetBaseUnitId .. "6", - spectatedpeta7 = SpectatedTeamAPetBaseUnitId .. "7", - spectatedpeta8 = SpectatedTeamAPetBaseUnitId .. "8", - spectatedpeta9 = SpectatedTeamAPetBaseUnitId .. "9", - spectatedpeta10 = SpectatedTeamAPetBaseUnitId .. "10", - spectatedpeta11 = SpectatedTeamAPetBaseUnitId .. "11", - spectatedpeta12 = SpectatedTeamAPetBaseUnitId .. "12", - spectatedpeta13 = SpectatedTeamAPetBaseUnitId .. "13", - spectatedpeta14 = SpectatedTeamAPetBaseUnitId .. "14", - spectatedpeta15 = SpectatedTeamAPetBaseUnitId .. "15", -} - --- The Nth spectated unit (1,2,3,...,15) for Team "b". Only present in commentator mode. `spectatedb1` - `spectatedb15` ----@enum (key) SpectatedTeamBUnitIds -local SpectatedTeamBUnitIds = { - spectatedb1 = SpectatedTeamBBaseUnitId .. "1", - spectatedb2 = SpectatedTeamBBaseUnitId .. "2", - spectatedb3 = SpectatedTeamBBaseUnitId .. "3", - spectatedb4 = SpectatedTeamBBaseUnitId .. "4", - spectatedb5 = SpectatedTeamBBaseUnitId .. "5", - spectatedb6 = SpectatedTeamBBaseUnitId .. "6", - spectatedb7 = SpectatedTeamBBaseUnitId .. "7", - spectatedb8 = SpectatedTeamBBaseUnitId .. "8", - spectatedb9 = SpectatedTeamBBaseUnitId .. "9", - spectatedb10 = SpectatedTeamBBaseUnitId .. "10", - spectatedb11 = SpectatedTeamBBaseUnitId .. "11", - spectatedb12 = SpectatedTeamBBaseUnitId .. "12", - spectatedb13 = SpectatedTeamBBaseUnitId .. "13", - spectatedb14 = SpectatedTeamBBaseUnitId .. "14", - spectatedb15 = SpectatedTeamBBaseUnitId .. "15", -} - --- The pet of the Nth spectated unit (1,2,3,...,15) for Team "B". Only present in commentator mode. `spectatedpetb1` - `spectatedpetb15` ----@enum (key) SpectatedTeamBPetUnitIds -local SpectatedTeamBPetUnitIds = { - spectatedpetb1 = SpectatedTeamBPetBaseUnitId .. "1", - spectatedpetb2 = SpectatedTeamBPetBaseUnitId .. "2", - spectatedpetb3 = SpectatedTeamBPetBaseUnitId .. "3", - spectatedpetb4 = SpectatedTeamBPetBaseUnitId .. "4", - spectatedpetb5 = SpectatedTeamBPetBaseUnitId .. "5", - spectatedpetb6 = SpectatedTeamBPetBaseUnitId .. "6", - spectatedpetb7 = SpectatedTeamBPetBaseUnitId .. "7", - spectatedpetb8 = SpectatedTeamBPetBaseUnitId .. "8", - spectatedpetb9 = SpectatedTeamBPetBaseUnitId .. "9", - spectatedpetb10 = SpectatedTeamBPetBaseUnitId .. "10", - spectatedpetb11 = SpectatedTeamBPetBaseUnitId .. "11", - spectatedpetb12 = SpectatedTeamBPetBaseUnitId .. "12", - spectatedpetb13 = SpectatedTeamBPetBaseUnitId .. "13", - spectatedpetb14 = SpectatedTeamBPetBaseUnitId .. "14", - spectatedpetb15 = SpectatedTeamBPetBaseUnitId .. "15", -} - ----@alias UnitIds PlayerUnitId | FocusUnitId | MouseoverUnitId | NoneUnitId | PetUnitId | TargetUnitId | VehicleUnitId | NpcUnitId | QuestNpcUnitId | RaidUnitIds | ArenaUnitIds | BossUnitIds | PartyUnitIds | PartyPetUnitIds | RaidPetUnitIds | NameplateUnitIds | SpectatedTeamAUnitIds | SpectatedTeamAPetUnitIds | SpectatedTeamBUnitIds | SpectatedTeamBPetUnitIds - --#region TinkrTypes --- Example: "!00038" @@ -318,7 +9,8 @@ local SpectatedTeamBPetUnitIds = { ---@field unit fun(): UnitIds ---@field guid fun(): string ----@alias TinkrObjectReference WowGameObject | UnitId +---@alias TinkrObjectReference WowGameObject | UnitIds + ---@alias spellId integer ---@enum PathTypes @@ -332,58 +24,6 @@ local PathTypes = { PATHFIND_SHORT = 0x20, -- path is longer or equal to its limited path length } ----@enum TObjectTypes -local TObjectTypes = { - Object = 0, - Item = 1, - Container = 2, - AzeriteEmpoweredItem = 3, - AzeriteItem = 4, - Unit = 5, - Player = 6, - ActivePlayer = 7, - GameObject = 8, - DynamicObject = 9, - Corpse = 10, - AreaTrigger = 11, - SceneObject = 12, - Conversation = 13, - AiGroup = 14, - Scenario = 15, - Loot = 16, - Invalid = 17, -} - ----@enum eGameObjType -local eGameObjType = { - Door = 0, - Button = 1, - QuestGiver = 2, - Chest = 3, - Binder = 4, - Generic = 5, - Trap = 6, - Chair = 7, - SpellFocus = 8, - Text = 9, - Goober = 0xa, - Transport = 0xb, - AreaDamage = 0xc, - Camera = 0xd, - WorldObj = 0xe, -- Compare with Mapobject - MapObjTransport = 0xf, - DuelArbiter = 0x10, - FishingNode = 0x11, - Ritual = 0x12, - Mailbox = 0x13, - AuctionHouse = 0x14, -- Compare to DONOTUSE1? - SpellCaster = 0x16, - MeetingStone = 0x17, - Unkown18 = 0x18, -- Compare to FlagStand - FishingPool = 0x19, -- Compare to FishingHole - FORCEDWORD = 0xFFFFFFFF, -} - ---@class Missle ---@field cx number # current x ---@field cy number # current y @@ -398,42 +38,6 @@ local eGameObjType = { ---@field my? number # model y ---@field mz? number # model z ----@enum TinkrMovementFlags -local TinkrMovementFlags = { - NONE = 0x00000000, - FORWARD = 0x00000001, - BACKWARD = 0x00000002, - STRAFELEFT = 0x00000004, - STRAFERIGHT = 0x00000008, - TURNLEFT = 0x00000010, - TURNRIGHT = 0x00000020, - PITCHUP = 0x00000040, - PITCHDOWN = 0x00000080, - WALKMODE = 0x00000100, - ONTRANSPORT = 0x00000200, - LEVITATING = 0x00000400, - ROOT = 0x00000800, - FALLING = 0x00001000, - FALLINGFAR = 0x00002000, - PENDINGSTOP = 0x00004000, - PENDINGSTRAFESTOP = 0x00008000, - PENDINGFORWARD = 0x00010000, - PENDINGBACKWARD = 0x00020000, - PENDINGSTRAFELEFT = 0x00040000, - PENDINGSTRAFERIGHT = 0x00080000, - PENDINGROOT = 0x00100000, - SWIMMING = 0x00200000, - ASCENDING = 0x00400000, - DESCENDING = 0x00800000, - CAN_FLY = 0x01000000, - FLYING = 0x02000000, - SPLINEELEVATION = 0x04000000, - SPLINEENABLED = 0x08000000, - WATERWALKING = 0x10000000, - SAFEFALL = 0x20000000, - HOVER = 0x40000000, -} - ---@enum SkinType local SkinType = { HERBALISM = 0x100, @@ -1198,40 +802,52 @@ local TinkrUtilModulesDetour = { ---@class Tinkr.Util.Modules.Draw local TinkrUtilModulesDraw = { ---@param self Tinkr.Util.Modules.Draw - ---@param wx number - ---@param wy number - ---@param wz number - WorldToScreen = function(self, wx, wy, wz) end, + ---@param x number + ---@param y number + ---@param z number + ---@param size number + ---@param arc number + ---@param rotation number + Arc = function(self, x, y, z, size, arc, rotation) end, + + ---@param self Tinkr.Util.Modules.Draw + ---@param vectors Position[] + ---@param x number + ---@param y number + ---@param z number + ---@param rotationX number + ---@param rotationY number + ---@param rotationZ number + Array = function(self, vectors, x, y, z, rotationX, rotationY, rotationZ) end, ---@param self Tinkr.Util.Modules.Draw ---@return number x, number y, number z CameraPosition = function(self) end, ---@param self Tinkr.Util.Modules.Draw - ---@param value number - ---@param fromLow number - ---@param fromHigh number - ---@param toLow number - ---@param toHigh number - Map = function(self, value, fromLow, fromHigh, toLow, toHigh) end, + ---@param x number + ---@param y number + ---@param z number + ---@param radius number + ---@param steps number + Circle = function(self, x, y, z, radius, steps) end, ---@param self Tinkr.Util.Modules.Draw - ---@param r number - ---@param g number - ---@param b number - ---@param a number - SetColor = function(self, r, g, b, a) end, + ClearCanvas = function(self) end, ---@param self Tinkr.Util.Modules.Draw - ---@param r number - ---@param g number - ---@param b number - ---@param a number - SetColorRaw = function(self, r, g, b, a) end, + ---@param x number + ---@param y number + ---@param z number + ---@param radius number + ---@param height number + Cylinder = function(self, x, y, z, radius, height) end, ---@param self Tinkr.Util.Modules.Draw - ---@param a number - SetAlpha = function(self, a) end, + DashedLine = function(self) end, + + ---@param self Tinkr.Util.Modules.Draw + Disable = function(self) end, ---@param self Tinkr.Util.Modules.Draw ---@param ax number @@ -1251,38 +867,46 @@ local TinkrUtilModulesDraw = { Distance2D = function(self, x1, y1, x2, y2) end, ---@param self Tinkr.Util.Modules.Draw - ---@param width number - SetWidth = function(self, width) end, + Draw3DTexture = function(self) end, ---@param self Tinkr.Util.Modules.Draw - ---@param cx number - ---@param cy number - ---@param cz number - ---@param px number - ---@param py number - ---@param pz number - ---@param r number - RotateX = function(self, cx, cy, cz, px, py, pz, r) end, + Enable = function(self) end, ---@param self Tinkr.Util.Modules.Draw - ---@param cx number - ---@param cy number - ---@param cz number - ---@param px number - ---@param py number - ---@param pz number - ---@param r number - RotateY = function(self, cx, cy, cz, px, py, pz, r) end, + ---@return boolean + Enabled = function(self) end, ---@param self Tinkr.Util.Modules.Draw - ---@param cx number - ---@param cy number - ---@param cz number - ---@param px number - ---@param py number - ---@param pz number - ---@param r number - RotateZ = function(self, cx, cy, cz, px, py, pz, r) end, + FilledArc = function(self) end, + + ---@param self Tinkr.Util.Modules.Draw + ---@param x number + ---@param y number + ---@param z number + ---@param radius number + FilledCircle = function(self, x, y, z, radius) end, + + ---@param self Tinkr.Util.Modules.Draw + FilledRectangle = function(self) end, + + ---@param self Tinkr.Util.Modules.Draw + FilledRectangleOffset = function(self) end, + + ---@param self Tinkr.Util.Modules.Draw + FilledRing = function(self) end, + + ---@param self Tinkr.Util.Modules.Draw + ---@param object TinkrObjectReference + ---@return number r, number g, number b + GetColorFromObject = function(self, object) end, + + ---@param self Tinkr.Util.Modules.Draw + Helper = function(self) end, + + ---@param self Tinkr.Util.Modules.Draw + ---@param hex string + ---@return number r, number g, number b + HexToRGB = function(self, hex) end, ---@param self Tinkr.Util.Modules.Draw ---@param x1 number @@ -1294,6 +918,13 @@ local TinkrUtilModulesDraw = { ---@param maxD number Line = function(self, x1, y1, z1, x2, y2, z2, maxD) end, + ---@param self Tinkr.Util.Modules.Draw + ---@param sx number + ---@param sy number + ---@param ex number + ---@param ey number + Line2D = function(self, sx, sy, ex, ey) end, + ---@param self Tinkr.Util.Modules.Draw ---@param x1 number ---@param y1 number @@ -1304,113 +935,166 @@ local TinkrUtilModulesDraw = { LineRaw = function(self, x1, y1, z1, x2, y2, z2) end, ---@param self Tinkr.Util.Modules.Draw - ---@param sx number - ---@param sy number - ---@param ex number - ---@param ey number - Line2D = function(self, sx, sy, ex, ey) end, + ---@param value number + ---@param fromLow number + ---@param fromHigh number + ---@param toLow number + ---@param toHigh number + Map = function(self, value, fromLow, fromHigh, toLow, toHigh) end, ---@param self Tinkr.Util.Modules.Draw - ---@param x number - ---@param y number - ---@param z number - ---@param radius number - ---@param steps number - Circle = function(self, x, y, z, radius, steps) end, + ---@param canvas? table + ---@return Tinkr.Util.Modules.Draw.Canvas + New = function(self, canvas) end, ---@param self Tinkr.Util.Modules.Draw ---@param x number ---@param y number ---@param z number ---@param radius number - ---@param height number - Cylinder = function(self, x, y, z, radius, height) end, + Outline = function(self, x, y, z, radius) end, - ---@param self Tinkr.Util.Modules.Draw - ---@param vectors Position[] - ---@param x number - ---@param y number - ---@param z number - ---@param rotationX number - ---@param rotationY number - ---@param rotationZ number - Array = function(self, vectors, x, y, z, rotationX, rotationY, rotationZ) end, + ProjectedTexture = function(self) end, ---@param self Tinkr.Util.Modules.Draw - ---@param text string - ---@param font string ---@param x number ---@param y number ---@param z number - Text = function(self, text, font, x, y, z) end, + ---@param w number + ---@param l number + ---@param rot number + Rectangle = function(self, x, y, z, w, l, rot) end, ---@param self Tinkr.Util.Modules.Draw - ---@param config table ---@param x number ---@param y number ---@param z number - ---@param alphaA number - Texture = function(self, config, x, y, z, alphaA) end, - - ---@param self Tinkr.Util.Modules.Draw - ClearCanvas = function(self) end, - - ---@param self Tinkr.Util.Modules.Draw - Update = function(self) end, + ---@param w number + ---@param l number + ---@param rot number + RectangleOffset = function(self, x, y, z, w, l, rot) end, ---@param self Tinkr.Util.Modules.Draw - Helper = function(self) end, + ---@param cx number + ---@param cy number + ---@param cz number + ---@param px number + ---@param py number + ---@param pz number + ---@param r number + RotateX = function(self, cx, cy, cz, px, py, pz, r) end, ---@param self Tinkr.Util.Modules.Draw - Enable = function(self) end, + ---@param cx number + ---@param cy number + ---@param cz number + ---@param px number + ---@param py number + ---@param pz number + ---@param r number + RotateY = function(self, cx, cy, cz, px, py, pz, r) end, ---@param self Tinkr.Util.Modules.Draw - Disable = function(self) end, + ---@param cx number + ---@param cy number + ---@param cz number + ---@param px number + ---@param py number + ---@param pz number + ---@param r number + RotateZ = function(self, cx, cy, cz, px, py, pz, r) end, ---@param self Tinkr.Util.Modules.Draw - ---@return boolean - Enabled = function(self) end, + ---@param a number + SetAlpha = function(self, a) end, ---@param self Tinkr.Util.Modules.Draw - ---@param callback fun() - Sync = function(self, callback) end, + ---@param a number + SetAlphaRaw = function(self, a) end, ---@param self Tinkr.Util.Modules.Draw - ---@param hex string - ---@return number r, number g, number b - HexToRGB = function(self, hex) end, + ---@param r number + ---@param g number + ---@param b number + ---@param a number + SetColor = function(self, r, g, b, a) end, ---@param self Tinkr.Util.Modules.Draw ---@param object TinkrObjectReference SetColorFromObject = function(self, object) end, ---@param self Tinkr.Util.Modules.Draw - ---@param object TinkrObjectReference - ---@return number r, number g, number b - GetColorFromObject = function(self, object) end, + ---@param r number + ---@param g number + ---@param b number + ---@param a number + SetColorRaw = function(self, r, g, b, a) end, ---@param self Tinkr.Util.Modules.Draw - ---@param canvas table - New = function(self, canvas) end, + ---@param width number + SetWidth = function(self, width) end, + + ---@param self Tinkr.Util.Modules.Draw + ---@param callback fun(draw: Tinkr.Util.Modules.Draw.Canvas) + Sync = function(self, callback) end, ---@param self Tinkr.Util.Modules.Draw + ---@param text string + ---@param font string ---@param x number ---@param y number ---@param z number - ---@param size number - ---@param arc number - ---@param rotation number - Arc = function(self, x, y, z, size, arc, rotation) end, + Text = function(self, text, font, x, y, z) end, ---@param self Tinkr.Util.Modules.Draw + ---@param config table ---@param x number ---@param y number ---@param z number - ---@param w number - ---@param l number - ---@param rot number - Rectangle = function(self, x, y, z, w, l, rot) end, + ---@param alphaA number + Texture = function(self, config, x, y, z, alphaA) end, + + TracedCircle = function() end, + + Triangle = function() end, + Triangle2D = function() end, + TriangleAbsolut = function() end, + TriangleAbsolute = function() end, + + ---@param self Tinkr.Util.Modules.Draw + Update = function(self) end, + + ---@param self Tinkr.Util.Modules.Draw + ---@param wx number + ---@param wy number + ---@param wz number + WorldToScreen = function(self, wx, wy, wz) end, + + mixColors = function() end } + +---@class Tinkr.Util.Modules.Draw.Canvas : Tinkr.Util.Modules.Draw +---@field enabled boolean +---@field height number +---@field line_width number +---@field scale number +---@field width number +---@field callbacks fun(self: Tinkr.Util.Modules.Draw.Canvas)[] +---@field color { [1]: number, [2]: number, [3]: number, [4]: number } +---@field lines table +---@field lines_used table +---@field strings FontString[] +---@field strings_used FontString[] +---@field textures Texture[] +---@field textures_used Texture[] +---@field triangles table +---@field triangles_used table +---@field canvas Frame +---@field relative Frame +local TinkrUtilDrawCanvas = { + +} + --#endregion Tinkr.Util.Modules.Draw --#region Tinkr.Util.Modules.Evaluator @@ -1675,6 +1359,8 @@ local TinkrUtil = { Modules = {}, ---@type Tinkr.Util.GUIBuilder GUIBuilder = {}, + ---@type Tinkr.Util.Modules.Draw + Draw = {}, LibStub = LibStub, JSON = Tinkr.Util.Modules.JSON, Serialize = {}, @@ -1948,12 +1634,12 @@ SetPitch = TinkrMovement.SetPitch local TinkrObjects = { ---Returns the spellID of a WowGameObject representation of an Area Trigger ---@param objectRef TinkrObjectReference - ---@return spellId | false + ---@return { spellID1: number, spellID2: number } | false AreaTriggerSpell = function(objectRef) end, ---Returns the gameobject type of a WowGameObject. ---@param objectRef TinkrObjectReference - ---@return GameObjectType | false + ---@return ObjectType | false GameObjectType = function(objectRef) end, ---Gets a list of all Missiles. @@ -1961,7 +1647,7 @@ local TinkrObjects = { Missiles = function() end, ---Gets a single object. - ---@param unitId UnitId + ---@param unitId TinkrObjectReference ---@return WowGameObject | false Object = function(unitId) end, @@ -2046,7 +1732,7 @@ local TinkrObjects = { ---Returns the current movement state of a Unit ---@param objectRef TinkrObjectReference - ---@return TinkrMovementFlags + ---@return MovementFlags ObjectMovementFlag = function(objectRef) end, ---Returns the objectReference that the WowGameObject is moving on. @@ -2096,7 +1782,7 @@ local TinkrObjects = { ---Returns the type of a WowGameObject. ---@param objectRef TinkrObjectReference - ---@return TObjectTypes | false + ---@return ObjectType | false ObjectType = function(objectRef) end, ---@param objectRef TinkrObjectReference @@ -2114,7 +1800,7 @@ local TinkrObjects = { ObjectWorldPosition = function(objectRef) end, ---Gets a list of all objects. - ---@param filterTypeId? TObjectTypes + ---@param filterTypeId? ObjectType ---@return WowGameObject[] Objects = function(filterTypeId) end, diff --git a/Universal.lua b/Universal.lua new file mode 100644 index 0000000..62762c1 --- /dev/null +++ b/Universal.lua @@ -0,0 +1,513 @@ +---@meta + +---@enum CollisionFlags +local CollisionFlags = { + M2Collision = 0x1, + M2Render = 0x2, + WMOCollision = 0x10, + WMORender = 0x20, + Terrain = 0x100, + WaterWalkableLiquid = 0x10000, + Liquid = 0x20000, + EntityCollision = 0x100000, +} + +---@enum ObjectType +local ObjectType = { + Object = 0, + Item = 1, + Container = 2, + AzeriteEmpoweredItem = 3, + AzeriteItem = 4, + Unit = 5, + Player = 6, + ActivePlayer = 7, + GameObject = 8, + DynamicObject = 9, + Corpse = 10, + AreaTrigger = 11, + SceneObject = 12, + Conversation = 13, + AiGroup = 14, + Scenario = 15, + Loot = 16, + Invalid = 17, +} + +---@enum LuaType +local LuaType = { + Bool = 1, + Char = 2, + Byte = 3, + Short = 4, + UShort = 5, + Int = 6, + UInt = 7, + Long = 8, + ULong = 9, + Float = 10, + Double = 11, + StringType = 12, + IntPtr = 13, + UIntPtr = 14, + GUID = 15, +} + +---@enum UnitCreatureType +local UnitCreatureType = { + Beast = 1, + Dragonkin = 2, + Demon = 3, + Elemental = 4, + Giant = 5, + Undead = 6, + Humanoid = 7, + Critter = 8, + Mechanical = 9, + NotSpecified = 10, + Totem = 11, + NonCombatPet = 12, + GasCloud = 13, + WildPet = 14, -- Retail Only + Aberration = 15, -- Retail Only +} + +local ot = { + GOT_Door = 0, + GOT_Button = 1, + GOT_QuestGiver = 2, + GOT_Chest = 3, + GOT_Binder = 4, + GOT_Generic = 5, + GOT_Trap = 6, + GOT_Chair = 7, + GOT_SpellFocus = 8, + GOT_Text = 9, + GOT_Goober = 0xa, + GOT_Transport = 0xb, + GOT_AreaDamage = 0xc, + GOT_Camera = 0xd, + GOT_WorldObj = 0xe, + GOT_MapObjTransport = 0xf, + GOT_DuelArbiter = 0x10, + GOT_FishingNode = 0x11, + GOT_Ritual = 0x12, + GOT_Mailbox = 0x13, + GOT_AuctionHouse = 0x14, + GOT_SpellCaster = 0x16, + GOT_MeetingStone = 0x17, + GOT_Unkown18 = 0x18, + GOT_FishingPool = 0x19, + GOT_FORCEDWORD = 0xFFFFFFFF, +} + +---@enum GameObjectType +local GameObjectType = { + Door = 0, + Button = 1, + QuestGiver = 2, + Chest = 3, -- Herbs, Minerals, Chests + Binder = 4, + Generic = 5, + Trap = 6, + Chair = 7, + SpellFocus = 8, + Text = 9, + Goober = 0xa, -- 10 + Transport = 0xb, -- 11 + AreaDamage = 0xc, -- 12 + Camera = 0xd, -- 13 + WorldObj = 0xe, -- 14 + MapObjTransport = 0xf, -- 15 + DuelArbiter = 0x10, -- 16 + FishingNode = 0x11, -- 17 + Ritual = 0x12, -- 18 + Mailbox = 0x13, -- 19 + AuctionHouse = 0x14, -- 20 + GuardPost = 21, + SpellCaster = 0x16, -- 22 + MeetingStone = 0x17, -- 23 + FlagStand = 0x18, -- 24 + FishingPool = 0x19, -- 25 + FlagDrop = 26, + DONOTUSE2 = 27, + DONOTUSE3 = 28, + ControlZone = 29, + AuraGenerator = 30, + DungeonDifficulty = 31, + BarberChair = 32, + DestructibleBuilding = 33, + GuildBank = 34, + Trapdoor = 35, + Newflag = 36, + Newflagdrop = 37, + GarrisonBuilding = 38, + GarrisonPlot = 39, + ClientCreature = 40, + ClientItem = 41, + CapturePoint = 42, + PhaseableMO = 43, + GarrisonMonument = 44, + GarrisonShipment = 45, + GarrisonMonumentPlaque = 46, + ItemForge = 47, + UILink = 48, + KeystoneReceptacle = 49, + GatheringNode = 50, + ChallengeModeReward = 51, + Multi = 52, + SeigableMulti = 53, + SeigableMo = 54, + PvpReward = 55, + PlayerChoiceChest = 56, + LegendaryForge = 57, + GearTalentTree = 58, + WeeklyRewardChest = 59, + ClientModel = 60, + ForceDWord = 0xFFFFFFFF, -- 4294967295 +} + +---@enum MovementFlags +local MovementFlags = { + NONE = 0x00000000, + FORWARD = 0x00000001, + BACKWARD = 0x00000002, + STRAFELEFT = 0x00000004, + STRAFERIGHT = 0x00000008, + TURNLEFT = 0x00000010, + TURNRIGHT = 0x00000020, + PITCHUP = 0x00000040, + PITCHDOWN = 0x00000080, + WALKMODE = 0x00000100, + ONTRANSPORT = 0x00000200, + LEVITATING = 0x00000400, + ROOT = 0x00000800, + FALLING = 0x00001000, + FALLINGFAR = 0x00002000, + PENDINGSTOP = 0x00004000, + PENDINGSTRAFESTOP = 0x00008000, + PENDINGFORWARD = 0x00010000, + PENDINGBACKWARD = 0x00020000, + PENDINGSTRAFELEFT = 0x00040000, + PENDINGSTRAFERIGHT = 0x00080000, + PENDINGROOT = 0x00100000, + SWIMMING = 0x00200000, + ASCENDING = 0x00400000, + DESCENDING = 0x00800000, + CAN_FLY = 0x01000000, + FLYING = 0x02000000, + SPLINEELEVATION = 0x04000000, + SPLINEENABLED = 0x08000000, + WATERWALKING = 0x10000000, + SAFEFALL = 0x20000000, + HOVER = 0x40000000, +} + +--- The current player. +---@alias PlayerUnitId "player" +local PlayerUnitId = "player" + +--- The current player's focus target as selected by the /focus command. +---@alias FocusUnitId "focus" +local FocusUnitId = "focus" + +--- The unit which the mouse is currently (or was most recently) hovering over. +---@alias MouseoverUnitId "mouseover" +local MouseoverUnitId = "mouseover" + +--- A valid unit token that always refers to no unit. UnitName will return "Unknown, nil" for this UnitID. +---@alias NoneUnitId "none" +local NoneUnitId = "none" + +--- The current player's pet. +---@alias PetUnitId "pet" +local PetUnitId = "pet" + +--- The currently targeted unit. May be overridden in macros by unit specified as a value of respective Secure Button attribute. +---@alias TargetUnitId "target" +local TargetUnitId = "target" + +--- The current player's vehicle. +---@alias VehicleUnitId "vehicle" +local VehicleUnitId = "vehicle" + +--- The NPC with which the player is currently interacting. You must be interacting with the NPC for this to work (e.g. the quest, flight path, merchant, gossip, or bank frame is open). +---@alias NpcUnitId "npc" +local NpcUnitId = "npc" + +--- The quest giver NPC with which the player is currently interacting. In most cases this will be identical to the "npc" unit. +---@alias QuestNpcUnitId "questnpc" +local QuestNpcUnitId = "questnpc" + +local PartyBaseUnitId = "party" +local PartyPetBaseUnitId = PartyBaseUnitId .. PetUnitId +local RaidBaseUnitId = "raid" +local RaidPetBaseUnitId = RaidBaseUnitId .. PetUnitId +local ArenaBaseUnitId = "arena" +local BossBaseUnitId = "boss" +local NameplateBaseUnitId = "nameplate" +local SpectatedBaseUnitId = "spectated" +local SpectatedTeamAId = "a" +local SpectatedTeamABaseUnitId = SpectatedBaseUnitId .. SpectatedTeamAId +local SpectatedTeamAPetBaseUnitId = SpectatedBaseUnitId .. PetUnitId .. SpectatedTeamAId +local SpectatedTeamBId = "b" +local SpectatedTeamBBaseUnitId = SpectatedBaseUnitId .. SpectatedTeamBId +local SpectatedTeamBPetBaseUnitId = SpectatedBaseUnitId .. PetUnitId .. SpectatedTeamBId + +--- The raid member with raidIndex N (1,2,3,...,40) `raid1` - `raid40`. +---@enum (key) RaidUnitIds +local RaidUnitIds = { + raid1 = RaidBaseUnitId .. "1", + raid2 = RaidBaseUnitId .. "2", + raid3 = RaidBaseUnitId .. "3", + raid4 = RaidBaseUnitId .. "4", + raid5 = RaidBaseUnitId .. "5", + raid6 = RaidBaseUnitId .. "6", + raid7 = RaidBaseUnitId .. "7", + raid8 = RaidBaseUnitId .. "8", + raid9 = RaidBaseUnitId .. "9", + raid10 = RaidBaseUnitId .. "10", + raid11 = RaidBaseUnitId .. "11", + raid12 = RaidBaseUnitId .. "12", + raid13 = RaidBaseUnitId .. "13", + raid14 = RaidBaseUnitId .. "14", + raid15 = RaidBaseUnitId .. "15", + raid16 = RaidBaseUnitId .. "16", + raid17 = RaidBaseUnitId .. "17", + raid18 = RaidBaseUnitId .. "18", + raid19 = RaidBaseUnitId .. "19", + raid20 = RaidBaseUnitId .. "20", + raid21 = RaidBaseUnitId .. "21", + raid22 = RaidBaseUnitId .. "22", + raid23 = RaidBaseUnitId .. "23", + raid24 = RaidBaseUnitId .. "24", + raid25 = RaidBaseUnitId .. "25", + raid26 = RaidBaseUnitId .. "26", + raid27 = RaidBaseUnitId .. "27", + raid28 = RaidBaseUnitId .. "28", + raid29 = RaidBaseUnitId .. "29", + raid30 = RaidBaseUnitId .. "30", + raid31 = RaidBaseUnitId .. "31", + raid32 = RaidBaseUnitId .. "32", + raid33 = RaidBaseUnitId .. "33", + raid34 = RaidBaseUnitId .. "34", + raid35 = RaidBaseUnitId .. "35", + raid36 = RaidBaseUnitId .. "36", + raid37 = RaidBaseUnitId .. "37", + raid38 = RaidBaseUnitId .. "38", + raid39 = RaidBaseUnitId .. "39", + raid40 = RaidBaseUnitId .. "40", +} + +--- Opposing arena member with index N (1,2,3,4 or 5) `arena1` - `arena5`. +---@enum (key) ArenaUnitIds +local ArenaUnitIds = { + arena1 = ArenaBaseUnitId .. "1", + arena2 = ArenaBaseUnitId .. "2", + arena3 = ArenaBaseUnitId .. "3", + arena4 = ArenaBaseUnitId .. "4", + arena5 = ArenaBaseUnitId .. "5", +} + +--- The active bosses of the current encounter if available N (1,2,3...,8) `boss1` - `boss8`. +---@enum (key) BossUnitIds +local BossUnitIds = { + boss1 = BossBaseUnitId .. "1", + boss2 = BossBaseUnitId .. "2", + boss3 = BossBaseUnitId .. "3", + boss4 = BossBaseUnitId .. "4", + boss5 = BossBaseUnitId .. "5", + boss6 = BossBaseUnitId .. "6", + boss7 = BossBaseUnitId .. "7", + boss8 = BossBaseUnitId .. "8", +} + +--- The Nth party member excluding the player (1,2,3 or 4) `party1` - `party4`. +---@enum (key) PartyUnitIds +local PartyUnitIds = { + party1 = PartyBaseUnitId .. "1", + party2 = PartyBaseUnitId .. "2", + party3 = PartyBaseUnitId .. "3", + party4 = PartyBaseUnitId .. "4", +} + +--- The pet of the Nth party member (N is 1,2,3, or 4) `partypet1` - `partypet4`. +---@enum (key) PartyPetUnitIds +local PartyPetUnitIds = { + partypet1 = PartyPetBaseUnitId .. "1", + partypet2 = PartyPetBaseUnitId .. "2", + partypet3 = PartyPetBaseUnitId .. "3", + partypet4 = PartyPetBaseUnitId .. "4", +} + +--- The pet of the raid member with raidIndex N (1,2,3,...,40) `raidpet1` - `raidpet40`. +---@enum (key) RaidPetUnitIds +local RaidPetUnitIds = { + raidpet1 = RaidPetBaseUnitId .. "1", + raidpet2 = RaidPetBaseUnitId .. "2", + raidpet3 = RaidPetBaseUnitId .. "3", + raidpet4 = RaidPetBaseUnitId .. "4", + raidpet5 = RaidPetBaseUnitId .. "5", + raidpet6 = RaidPetBaseUnitId .. "6", + raidpet7 = RaidPetBaseUnitId .. "7", + raidpet8 = RaidPetBaseUnitId .. "8", + raidpet9 = RaidPetBaseUnitId .. "9", + raidpet10 = RaidPetBaseUnitId .. "10", + raidpet11 = RaidPetBaseUnitId .. "11", + raidpet12 = RaidPetBaseUnitId .. "12", + raidpet13 = RaidPetBaseUnitId .. "13", + raidpet14 = RaidPetBaseUnitId .. "14", + raidpet15 = RaidPetBaseUnitId .. "15", + raidpet16 = RaidPetBaseUnitId .. "16", + raidpet17 = RaidPetBaseUnitId .. "17", + raidpet18 = RaidPetBaseUnitId .. "18", + raidpet19 = RaidPetBaseUnitId .. "19", + raidpet20 = RaidPetBaseUnitId .. "20", + raidpet21 = RaidPetBaseUnitId .. "21", + raidpet22 = RaidPetBaseUnitId .. "22", + raidpet23 = RaidPetBaseUnitId .. "23", + raidpet24 = RaidPetBaseUnitId .. "24", + raidpet25 = RaidPetBaseUnitId .. "25", + raidpet26 = RaidPetBaseUnitId .. "26", + raidpet27 = RaidPetBaseUnitId .. "27", + raidpet28 = RaidPetBaseUnitId .. "28", + raidpet29 = RaidPetBaseUnitId .. "29", + raidpet30 = RaidPetBaseUnitId .. "30", + raidpet31 = RaidPetBaseUnitId .. "31", + raidpet32 = RaidPetBaseUnitId .. "32", + raidpet33 = RaidPetBaseUnitId .. "33", + raidpet34 = RaidPetBaseUnitId .. "34", + raidpet35 = RaidPetBaseUnitId .. "35", + raidpet36 = RaidPetBaseUnitId .. "36", + raidpet37 = RaidPetBaseUnitId .. "37", + raidpet38 = RaidPetBaseUnitId .. "38", + raidpet39 = RaidPetBaseUnitId .. "39", + raidpet40 = RaidPetBaseUnitId .. "40", +} + +--- The Nth nameplate unit (1,2,3,...,40) `nameplate1` - `nameplate40`. +---@enum (key) NameplateUnitIds +local NameplateUnitIds = { + nameplate1 = NameplateBaseUnitId .. "1", + nameplate2 = NameplateBaseUnitId .. "2", + nameplate3 = NameplateBaseUnitId .. "3", + nameplate4 = NameplateBaseUnitId .. "4", + nameplate5 = NameplateBaseUnitId .. "5", + nameplate6 = NameplateBaseUnitId .. "6", + nameplate7 = NameplateBaseUnitId .. "7", + nameplate8 = NameplateBaseUnitId .. "8", + nameplate9 = NameplateBaseUnitId .. "9", + nameplate10 = NameplateBaseUnitId .. "10", + nameplate11 = NameplateBaseUnitId .. "11", + nameplate12 = NameplateBaseUnitId .. "12", + nameplate13 = NameplateBaseUnitId .. "13", + nameplate14 = NameplateBaseUnitId .. "14", + nameplate15 = NameplateBaseUnitId .. "15", + nameplate16 = NameplateBaseUnitId .. "16", + nameplate17 = NameplateBaseUnitId .. "17", + nameplate18 = NameplateBaseUnitId .. "18", + nameplate19 = NameplateBaseUnitId .. "19", + nameplate20 = NameplateBaseUnitId .. "20", + nameplate21 = NameplateBaseUnitId .. "21", + nameplate22 = NameplateBaseUnitId .. "22", + nameplate23 = NameplateBaseUnitId .. "23", + nameplate24 = NameplateBaseUnitId .. "24", + nameplate25 = NameplateBaseUnitId .. "25", + nameplate26 = NameplateBaseUnitId .. "26", + nameplate27 = NameplateBaseUnitId .. "27", + nameplate28 = NameplateBaseUnitId .. "28", + nameplate29 = NameplateBaseUnitId .. "29", + nameplate30 = NameplateBaseUnitId .. "30", + nameplate31 = NameplateBaseUnitId .. "31", + nameplate32 = NameplateBaseUnitId .. "32", + nameplate33 = NameplateBaseUnitId .. "33", + nameplate34 = NameplateBaseUnitId .. "34", + nameplate35 = NameplateBaseUnitId .. "35", + nameplate36 = NameplateBaseUnitId .. "36", + nameplate37 = NameplateBaseUnitId .. "37", + nameplate38 = NameplateBaseUnitId .. "38", + nameplate39 = NameplateBaseUnitId .. "39", + nameplate40 = NameplateBaseUnitId .. "40", +} + +-- The Nth spectated unit (1,2,3,...,15) for Team "a". Only present in commentator mode. `spectateda1` - `spectateda15` +---@enum (key) SpectatedTeamAUnitIds +local SpectatedTeamAUnitIds = { + spectateda1 = SpectatedTeamABaseUnitId .. "1", + spectateda2 = SpectatedTeamABaseUnitId .. "2", + spectateda3 = SpectatedTeamABaseUnitId .. "3", + spectateda4 = SpectatedTeamABaseUnitId .. "4", + spectateda5 = SpectatedTeamABaseUnitId .. "5", + spectateda6 = SpectatedTeamABaseUnitId .. "6", + spectateda7 = SpectatedTeamABaseUnitId .. "7", + spectateda8 = SpectatedTeamABaseUnitId .. "8", + spectateda9 = SpectatedTeamABaseUnitId .. "9", + spectateda10 = SpectatedTeamABaseUnitId .. "10", + spectateda11 = SpectatedTeamABaseUnitId .. "11", + spectateda12 = SpectatedTeamABaseUnitId .. "12", + spectateda13 = SpectatedTeamABaseUnitId .. "13", + spectateda14 = SpectatedTeamABaseUnitId .. "14", + spectateda15 = SpectatedTeamABaseUnitId .. "15", +} + +-- The pet of the Nth spectated unit (1,2,3,...,15) for Team "a". Only present in commentator mode. `spectatedpeta1` - `spectatedpeta15` +---@enum (key) SpectatedTeamAPetUnitIds +local SpectatedTeamAPetUnitIds = { + spectatedpeta1 = SpectatedTeamAPetBaseUnitId .. "1", + spectatedpeta2 = SpectatedTeamAPetBaseUnitId .. "2", + spectatedpeta3 = SpectatedTeamAPetBaseUnitId .. "3", + spectatedpeta4 = SpectatedTeamAPetBaseUnitId .. "4", + spectatedpeta5 = SpectatedTeamAPetBaseUnitId .. "5", + spectatedpeta6 = SpectatedTeamAPetBaseUnitId .. "6", + spectatedpeta7 = SpectatedTeamAPetBaseUnitId .. "7", + spectatedpeta8 = SpectatedTeamAPetBaseUnitId .. "8", + spectatedpeta9 = SpectatedTeamAPetBaseUnitId .. "9", + spectatedpeta10 = SpectatedTeamAPetBaseUnitId .. "10", + spectatedpeta11 = SpectatedTeamAPetBaseUnitId .. "11", + spectatedpeta12 = SpectatedTeamAPetBaseUnitId .. "12", + spectatedpeta13 = SpectatedTeamAPetBaseUnitId .. "13", + spectatedpeta14 = SpectatedTeamAPetBaseUnitId .. "14", + spectatedpeta15 = SpectatedTeamAPetBaseUnitId .. "15", +} + +-- The Nth spectated unit (1,2,3,...,15) for Team "b". Only present in commentator mode. `spectatedb1` - `spectatedb15` +---@enum (key) SpectatedTeamBUnitIds +local SpectatedTeamBUnitIds = { + spectatedb1 = SpectatedTeamBBaseUnitId .. "1", + spectatedb2 = SpectatedTeamBBaseUnitId .. "2", + spectatedb3 = SpectatedTeamBBaseUnitId .. "3", + spectatedb4 = SpectatedTeamBBaseUnitId .. "4", + spectatedb5 = SpectatedTeamBBaseUnitId .. "5", + spectatedb6 = SpectatedTeamBBaseUnitId .. "6", + spectatedb7 = SpectatedTeamBBaseUnitId .. "7", + spectatedb8 = SpectatedTeamBBaseUnitId .. "8", + spectatedb9 = SpectatedTeamBBaseUnitId .. "9", + spectatedb10 = SpectatedTeamBBaseUnitId .. "10", + spectatedb11 = SpectatedTeamBBaseUnitId .. "11", + spectatedb12 = SpectatedTeamBBaseUnitId .. "12", + spectatedb13 = SpectatedTeamBBaseUnitId .. "13", + spectatedb14 = SpectatedTeamBBaseUnitId .. "14", + spectatedb15 = SpectatedTeamBBaseUnitId .. "15", +} + +-- The pet of the Nth spectated unit (1,2,3,...,15) for Team "B". Only present in commentator mode. `spectatedpetb1` - `spectatedpetb15` +---@enum (key) SpectatedTeamBPetUnitIds +local SpectatedTeamBPetUnitIds = { + spectatedpetb1 = SpectatedTeamBPetBaseUnitId .. "1", + spectatedpetb2 = SpectatedTeamBPetBaseUnitId .. "2", + spectatedpetb3 = SpectatedTeamBPetBaseUnitId .. "3", + spectatedpetb4 = SpectatedTeamBPetBaseUnitId .. "4", + spectatedpetb5 = SpectatedTeamBPetBaseUnitId .. "5", + spectatedpetb6 = SpectatedTeamBPetBaseUnitId .. "6", + spectatedpetb7 = SpectatedTeamBPetBaseUnitId .. "7", + spectatedpetb8 = SpectatedTeamBPetBaseUnitId .. "8", + spectatedpetb9 = SpectatedTeamBPetBaseUnitId .. "9", + spectatedpetb10 = SpectatedTeamBPetBaseUnitId .. "10", + spectatedpetb11 = SpectatedTeamBPetBaseUnitId .. "11", + spectatedpetb12 = SpectatedTeamBPetBaseUnitId .. "12", + spectatedpetb13 = SpectatedTeamBPetBaseUnitId .. "13", + spectatedpetb14 = SpectatedTeamBPetBaseUnitId .. "14", + spectatedpetb15 = SpectatedTeamBPetBaseUnitId .. "15", +} + +---@alias UnitIds PlayerUnitId | FocusUnitId | MouseoverUnitId | NoneUnitId | PetUnitId | TargetUnitId | VehicleUnitId | NpcUnitId | QuestNpcUnitId | RaidUnitIds | ArenaUnitIds | BossUnitIds | PartyUnitIds | PartyPetUnitIds | RaidPetUnitIds | NameplateUnitIds | SpectatedTeamAUnitIds | SpectatedTeamAPetUnitIds | SpectatedTeamBUnitIds | SpectatedTeamBPetUnitIds