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.
UnlockerTypes/Tinkr.lua

2342 lines
79 KiB

---@meta
--#region TinkrTypes
--- Example: "!00038"
---@alias TinkrObjectManagerId string
---@class WowGameObject : userdata
---@field unit fun(): UnitIds
---@field guid fun(): string
---@field id fun(): number | boolean, ...: number|nil
---@alias TinkrObjectReference WowGameObject | UnitIds
---@alias spellId integer
---@enum PathTypes
local PathTypes = {
PATHFIND_BLANK = 0x00, -- path not built yet
PATHFIND_NORMAL = 0x01, -- normal path
PATHFIND_SHORTCUT = 0x02, -- travel through obstacles, terrain, air, etc (old behavior)
PATHFIND_INCOMPLETE = 0x04, -- we have partial path to follow - getting closer to target
PATHFIND_NOPATH = 0x08, -- no valid path at all or error in generating one
PATHFIND_NOT_USING_PATH = 0x10, -- used when we are either flying/swiming or on map w/o mmaps
PATHFIND_SHORT = 0x20, -- path is longer or equal to its limited path length
}
---@class Missle
---@field cx number # current x
---@field cy number # current y
---@field cz number # current z
---@field hx number # hit x
---@field hy number # hit y
---@field hz number # hit z
---@field ix number # init x
---@field iy number # init y
---@field iz number # init z
---@field mx? number # model x
---@field my? number # model y
---@field mz? number # model z
---@enum SkinType
local SkinType = {
HERBALISM = 0x100,
MINING = 0x200,
ENGINEERING = 0x8000,
}
--@alias ObjTypes | ObjectTypes.Object | ObjectTypes.Item | ObjectTypes.Container | ObjectTypes.AzeriteEmpoweredItem | ObjectTypes.AzeriteItem | ObjectTypes.Unit | ObjectTypes.Player | ObjectTypes.ActivePlayer | ObjectTypes.GameObject | ObjectTypes.DynamicObject | ObjectTypes.Corpse | ObjectTypes.AreaTrigger | ObjectTypes.SceneObject | ObjectTypes.Conversation | ObjectTypes.AiGroup | ObjectTypes.Scenario | ObjectTypes.Loot | ObjectTypes.Invalid
---@alias Position {x: number, y: number, z: number}
---@alias PositionArray Position[]
---@alias HttpGetRequestParams { method: 'GET', url: string, headers?: string[], callback: fun(status: number, res: string) }
---@alias HttpPostRequestParams { method: 'POST', url: string, fields: { [string]: any }, body?: string, files?: { [string]: string }, headers?: string[], callback: fun(status: number, res: string) }
---@enum TinkrCollisionFlags
local TinkrCollisionFlags = {
M2Collision = 0x1,
M2Render = 0x2,
WMOCollision = 0x10,
WMORender = 0x20,
Terrain = 0x100,
WaterWalkableLiquid = 0x10000,
Liquid = 0x20000,
EntityCollision = 0x100000,
}
--#endregion TinkrTypes
--#region Tinkr.Util
--#region Tinkr.Util.Http
---@class Tinkr.Util.Http
local TinkrUtilHttp = {
---Make a HTTP request
---@param self Tinkr.Util.Http
---@param parms HttpGetRequestParams | HttpPostRequestParams
Request = function(self, parms) end,
}
--#endregion Tinkr.Util.Http
--#region Tinkr.Util.Commands
--#region Tinkr.Util.Commands.New.Register
---@class Tinkr.Util.Commands.New.Register
local TinkrUtilCommandsNewRegister = {
---@param self Tinkr.Util.Commands.New.Register
---@param command string | string[],
---@param handler fun(...),
---@param help string,
---@param arguments? string[]
Register = function(self, command, handler, help, arguments) end,
}
--#endregion Tinkr.Util.Commands.New.Register
---@class Tinkr.Util.Commands
local TinkrUtilCommands = {
---Create a new command
---@param self Tinkr.Util.Commands
---@param prefix string
---@return Tinkr.Util.Commands.New.Register
New = function(self, prefix) end,
}
--#endregion Tinkr.Util.Commands
--#region Tinkr.Util.GUIBuilder
--#region Tinkr.Util.GUIBuilder.Reusable
---@class Tinkr.Util.GUIBuilder.Base.Keyable
---@field key string
---@class Tinkr.Util.GUIBuilder.Base.Sizable
---@field width number
---@field height number
---@alias Tinkr.Util.GUIBuilderChildElement Tinkr.Util.GUIBuilder.Element.SimpleGroup.Config | Tinkr.Util.GUIBuilder.Element.Tab.Config | Tinkr.Util.GUIBuilder.Element.Radio.Config | Tinkr.Util.GUIBuilder.Element.ScrollGroup.Config | Tinkr.Util.GUIBuilder.Element.Image.Config | Tinkr.Util.GUIBuilder.Element.TreeBranch.Config | Tinkr.Util.GUIBuilder.Element.Slider.Config | Tinkr.Util.GUIBuilder.Element.Heading.Config | Tinkr.Util.GUIBuilder.Element.Padding.Config | Tinkr.Util.GUIBuilder.Element.Radio.Config | Tinkr.Util.GUIBuilder.Element.Spacer.Config | Tinkr.Util.GUIBuilder.Element.Dropdown.Config | Tinkr.Util.GUIBuilder.Element.EditBox.Config | Tinkr.Util.GUIBuilder.Element.Group.Config | Tinkr.Util.GUIBuilder.Element.TabGroup.Config | Tinkr.Util.GUIBuilder.Element.Window.Config | Tinkr.Util.GUIBuilder.Element.Text.Config | Tinkr.Util.GUIBuilder.Element.Columns.Config | Tinkr.Util.GUIBuilder.Element.Rows.Config | Tinkr.Util.GUIBuilder.Element.HTML.Config | Tinkr.Util.GUIBuilder.Element.ColorPicker.Config | Tinkr.Util.GUIBuilder.Element.TreeGroup.Config
---@class Tinkr.Util.GUIBuilder.Base.GroupElement.Options
---@field content Tinkr.Util.GUIBuilderChildElement[]
--#endregion Tinkr.Util.GUIBuilder.Reusable
--#region Tinkr.Util.GUIBuilder.Element.Button
---@class Tinkr.Util.GUIBuilder.Element.Button.Options : Tinkr.Util.GUIBuilder.Base.Keyable
---@field text string
---@field disabled? boolean
---@field fullwidth boolean
---@class Tinkr.Util.GUIBuilder.Element.Button.Config : Tinkr.Util.GUIBuilder.Element.Button.Options
---@field type "Button"
---@class Tinkr.Util.GUIBuilder.Element.Button.Instance : Button
---@class Tinkr.Util.GUIBuilder.Element.Button.Factory
---@overload fun(self: Tinkr.Util.GUIBuilder, options: Tinkr.Util.GUIBuilder.Element.Button.Config): Tinkr.Util.GUIBuilder.Element.Button.Instance
--#endregion Tinkr.Util.GUIBuilder.Element.Button
--#region Tinkr.Util.GUIBuilder.Element.Window
---@class Tinkr.Util.GUIBuilder.Element.Window.Options : Tinkr.Util.GUIBuilder.Base.Keyable, Tinkr.Util.GUIBuilder.Base.Sizable, Tinkr.Util.GUIBuilder.Base.GroupElement.Options
---@field title string
---@class Tinkr.Util.GUIBuilder.Element.Window.Config : Tinkr.Util.GUIBuilder.Element.Window.Options
---@field type "Window"
---@class Tinkr.Util.GUIBuilder.Element.Window.Instance : AceGUIWindow, AceGUIWidget
---@field Release fun()
---@field Hide fun()
---@field Show fun()
---@field closebutton Tinkr.Util.GUIBuilder.Element.Button.Instance
---@field SetTitle fun(title: string)
---@field OnRelease fun()
---@field OnAcquire fun()
---@field SetStatusText fun(text: string)
---@field SetStatusTable fun(status: table)
---@field ApplyStatus fun()
---@field OnWidthSet fun(width: number)
---@field OnHeightSet fun(height: number)
---@field EnableResize fun(state: boolean)
---@class Tinkr.Util.GUIBuilder.Element.Window.Factory
---@overload fun(self: Tinkr.Util.GUIBuilder, options: Tinkr.Util.GUIBuilder.Element.Window.Config): Tinkr.Util.GUIBuilder.Element.Window.Instance
--#endregion Tinkr.Util.GUIBuilder.Element.Window
--#region Tinkr.Util.GUIBuilder.Element.Text
---@class Tinkr.Util.GUIBuilder.Element.Text.Options
---@field text string
---@field size? number
---@field color? string
---@field font? string
---@class Tinkr.Util.GUIBuilder.Element.Text.Config : Tinkr.Util.GUIBuilder.Element.Text.Options
---@field type "Text"
---@class Tinkr.Util.GUIBuilder.Element.Text.Instance : FontString
---@class Tinkr.Util.GUIBuilder.Element.Text.Factory
---@overload fun(self: Tinkr.Util.GUIBuilder, options: Tinkr.Util.GUIBuilder.Element.Text.Config): Tinkr.Util.GUIBuilder.Element.Text.Instance
--#endregion Tinkr.Util.GUIBuilder.Element.Text
--#region Tinkr.Util.GUIBuilder.Element.Tab
---@class Tinkr.Util.GUIBuilder.Element.Tab.Options : Tinkr.Util.GUIBuilder.Base.GroupElement.Options
---@field title string
---@class Tinkr.Util.GUIBuilder.Element.Tab.Config : Tinkr.Util.GUIBuilder.Element.Tab.Options
---@field type "Tab"
---@class Tinkr.Util.GUIBuilder.Element.Tab.Instance
---@class Tinkr.Util.GUIBuilder.Element.Tab.Factory
---@overload fun(self: Tinkr.Util.GUIBuilder, options: Tinkr.Util.GUIBuilder.Element.Tab.Config): Tinkr.Util.GUIBuilder.Element.Tab.Instance
--#endregion Tinkr.Util.GUIBuilder.Element.Tab
--#region Tinkr.Util.GUIBuilder.Element.TabGroup
---@class Tinkr.Util.GUIBuilder.Element.TabGroup.Options : Tinkr.Util.GUIBuilder.Base.Keyable
---@field tabs Tinkr.Util.GUIBuilder.Element.Tab.Config[]
---@class Tinkr.Util.GUIBuilder.Element.TabGroup.Config : Tinkr.Util.GUIBuilder.Element.TabGroup.Options
---@field type "TabGroup"
---@class Tinkr.Util.GUIBuilder.Element.TabGroup.Instance
---@class Tinkr.Util.GUIBuilder.Element.Tab.Factory
---@overload fun(self: Tinkr.Util.GUIBuilder, options: Tinkr.Util.GUIBuilder.Element.Tab.Config): Tinkr.Util.GUIBuilder.Element.Tab.Instance
--#endregion Tinkr.Util.GUIBuilder.Element.TabGroup
--#region Tinkr.Util.GUIBuilder.Element.Spacer
---@class Tinkr.Util.GUIBuilder.Element.Spacer.Options
---@field height? number
---@class Tinkr.Util.GUIBuilder.Element.Spacer.Config
---@field type "Spacer"
---@class Tinkr.Util.GUIBuilder.Element.Spacer.Instance
---@class Tinkr.Util.GUIBuilder.Element.Tab.Factory
---@overload fun(self: Tinkr.Util.GUIBuilder, options: Tinkr.Util.GUIBuilder.Element.Tab.Config): Tinkr.Util.GUIBuilder.Element.Tab.Instance
--#endregion Tinkr.Util.GUIBuilder.Element.Spacer
--#region Tinkr.Util.GUIBuilder.Element.Checkbox
---@class Tinkr.Util.GUIBuilder.Element.Checkbox.Options : Tinkr.Util.GUIBuilder.Base.Keyable
---@field label string
---@field description? string
---@field tristate? boolean
---@field default? 'yes' | 'no' | 'half'
---@class Tinkr.Util.GUIBuilder.Element.Checkbox.Config : Tinkr.Util.GUIBuilder.Element.Checkbox.Options
---@field type "Checkbox"
---@class Tinkr.Util.GUIBuilder.Element.Checkbox.Instance
---@class Tinkr.Util.GUIBuilder.Element.Checkbox.Factory
---@overload fun(self: Tinkr.Util.GUIBuilder, options: Tinkr.Util.GUIBuilder.Element.Checkbox.Config): Tinkr.Util.GUIBuilder.Element.Checkbox.Instance
--#endregion Tinkr.Util.GUIBuilder.Element.Checkbox
--#region Tinkr.Util.GUIBuilder.Element.Radio
---@class Tinkr.Util.GUIBuilder.Element.Radio.Options : Tinkr.Util.GUIBuilder.Base.Keyable
---@field stacked? boolean
---@field values string[]
---@class Tinkr.Util.GUIBuilder.Element.Radio.Config : Tinkr.Util.GUIBuilder.Element.Radio.Options
---@field type "Radio"
---@class Tinkr.Util.GUIBuilder.Element.Radio.Instance
---@class Tinkr.Util.GUIBuilder.Element.Radio.Factory
---@overload fun(self: Tinkr.Util.GUIBuilder, options: Tinkr.Util.GUIBuilder.Element.Radio.Config): Tinkr.Util.GUIBuilder.Element.Radio.Instance
--#endregion Tinkr.Util.GUIBuilder.Element.Radio
--#region Tinkr.Util.GUIBuilder.Element.Group
---@class Tinkr.Util.GUIBuilder.Element.Group.Options : Tinkr.Util.GUIBuilder.Base.GroupElement.Options
---@field title string
---@class Tinkr.Util.GUIBuilder.Element.Group.Config : Tinkr.Util.GUIBuilder.Element.Group.Options
---@field type "Group"
---@class Tinkr.Util.GUIBuilder.Element.Group.Instance
---@class Tinkr.Util.GUIBuilder.Element.Group.Factory
---@overload fun(self: Tinkr.Util.GUIBuilder, options: Tinkr.Util.GUIBuilder.Element.Group.Config): Tinkr.Util.GUIBuilder.Element.Group.Instance
--#endregion Tinkr.Util.GUIBuilder.Element.Group
--#region Tinkr.Util.GUIBuilder.Element.EditBox
---@class Tinkr.Util.GUIBuilder.Element.EditBox.Options : Tinkr.Util.GUIBuilder.Base.Keyable
---@field label string
---@field description? string
---@field placeholder? string
---@field button? boolean
---@field multiline? boolean
---@field lines? number
---@class Tinkr.Util.GUIBuilder.Element.EditBox.Config : Tinkr.Util.GUIBuilder.Element.EditBox.Options
---@field type "EditBox"
---@class Tinkr.Util.GUIBuilder.Element.EditBox.Instance
---@class Tinkr.Util.GUIBuilder.Element.EditBox.Factory
---@overload fun(self: Tinkr.Util.GUIBuilder, options: Tinkr.Util.GUIBuilder.Element.EditBox.Config): Tinkr.Util.GUIBuilder.Element.EditBox.Instance
--#endregion Tinkr.Util.GUIBuilder.Element.EditBox
--#region Tinkr.Util.GUIBuilder.Element.Dropdown
---@class Tinkr.Util.GUIBuilder.Element.Dropdown.Options : Tinkr.Util.GUIBuilder.Base.Keyable
---@field label string
---@field description? string
---@field default? string
---@field values string[]
---@field multi? boolean
---@class Tinkr.Util.GUIBuilder.Element.Dropdown.Config : Tinkr.Util.GUIBuilder.Element.Dropdown.Options
---@field type "Dropdown"
---@class Tinkr.Util.GUIBuilder.Element.Dropdown.Instance
---@class Tinkr.Util.GUIBuilder.Element.Dropdown.Factory
---@overload fun(self: Tinkr.Util.GUIBuilder, options: Tinkr.Util.GUIBuilder.Element.Dropdown.Config): Tinkr.Util.GUIBuilder.Element.Dropdown.Instance
--#endregion Tinkr.Util.GUIBuilder.Element.Dropdown
--#region Tinkr.Util.GUIBuilder.Element.Padding
---@class Tinkr.Util.GUIBuilder.Element.Padding.Options : Tinkr.Util.GUIBuilder.Base.Keyable, Tinkr.Util.GUIBuilder.Base.GroupElement.Options
---@field padding number
---@class Tinkr.Util.GUIBuilder.Element.Padding.Config : Tinkr.Util.GUIBuilder.Element.Padding.Options
---@field type "Padding"
---@class Tinkr.Util.GUIBuilder.Element.Padding.Instance
---@class Tinkr.Util.GUIBuilder.Element.Padding.Factory
---@overload fun(self: Tinkr.Util.GUIBuilder, options: Tinkr.Util.GUIBuilder.Element.Padding.Config): Tinkr.Util.GUIBuilder.Element.Padding.Instance
--#endregion Tinkr.Util.GUIBuilder.Element.Padding
--#region Tinkr.Util.GUIBuilder.Element.Rows
---@class Tinkr.Util.GUIBuilder.Element.Rows.Options
---@class Tinkr.Util.GUIBuilder.Element.Rows.Config : Tinkr.Util.GUIBuilder.Element.Rows.Options
---@field type "Rows"
---@class Tinkr.Util.GUIBuilder.Element.Rows.Instance
---@class Tinkr.Util.GUIBuilder.Element.Rows.Factory
---@overload fun(self: Tinkr.Util.GUIBuilder, options: Tinkr.Util.GUIBuilder.Element.Rows.Config): Tinkr.Util.GUIBuilder.Element.Rows.Instance
--#endregion Tinkr.Util.GUIBuilder.Element.Rows
--#region Tinkr.Util.GUIBuilder.Element.Columns
---@class Tinkr.Util.GUIBuilder.Element.Columns.Options
---@class Tinkr.Util.GUIBuilder.Element.Columns.Config : Tinkr.Util.GUIBuilder.Element.Columns.Options
---@field type "Columns"
---@class Tinkr.Util.GUIBuilder.Element.Columns.Instance
---@class Tinkr.Util.GUIBuilder.Element.Columns.Factory
---@overload fun(self: Tinkr.Util.GUIBuilder, options: Tinkr.Util.GUIBuilder.Element.Columns.Config): Tinkr.Util.GUIBuilder.Element.Columns.Instance
--#endregion Tinkr.Util.GUIBuilder.Element.Columns
--#region Tinkr.Util.GUIBuilder.Element.Image
---@class Tinkr.Util.GUIBuilder.Element.Image.Options : Tinkr.Util.GUIBuilder.Base.Sizable
---@field image string
---@field fit? boolean
---@class Tinkr.Util.GUIBuilder.Element.Image.Config : Tinkr.Util.GUIBuilder.Element.Image.Options
---@field type "Image"
---@class Tinkr.Util.GUIBuilder.Element.Image.Instance
---@class Tinkr.Util.GUIBuilder.Element.Image.Factory
---@overload fun(self: Tinkr.Util.GUIBuilder, options: Tinkr.Util.GUIBuilder.Element.Image.Config): Tinkr.Util.GUIBuilder.Element.Image.Instance
--#endregion Tinkr.Util.GUIBuilder.Element.Image
--#region Tinkr.Util.GUIBuilder.Element.TreeBranch
---@class Tinkr.Util.GUIBuilder.Element.TreeBranch.Options : Tinkr.Util.GUIBuilder.Base.Keyable
---@field title string
---@field icon number
---@class Tinkr.Util.GUIBuilder.Element.TreeBranch.Config : Tinkr.Util.GUIBuilder.Element.TreeBranch.Options
---@field type "TreeBranch"
---@class Tinkr.Util.GUIBuilder.Element.TreeBranch.Instance
---@class Tinkr.Util.GUIBuilder.Element.TreeBranch.Factory
---@overload fun(self: Tinkr.Util.GUIBuilder, options: Tinkr.Util.GUIBuilder.Element.TreeBranch.Config): Tinkr.Util.GUIBuilder.Element.TreeBranch.Instance
--#endregion Tinkr.Util.GUIBuilder.Element.TreeBranch
--#region Tinkr.Util.GUIBuilder.Element.TreeGroup
---@class Tinkr.Util.GUIBuilder.Element.TreeGroup.Options : Tinkr.Util.GUIBuilder.Base.Keyable
---@field branches Tinkr.Util.GUIBuilder.Element.TreeBranch.Config[]
---@class Tinkr.Util.GUIBuilder.Element.TreeGroup.Config : Tinkr.Util.GUIBuilder.Element.TreeGroup.Options
---@field type "TreeGroup"
---@class Tinkr.Util.GUIBuilder.Element.TreeGroup.Instance
---@class Tinkr.Util.GUIBuilder.Element.TreeGroup.Factory
---@overload fun(self: Tinkr.Util.GUIBuilder, options: Tinkr.Util.GUIBuilder.Element.TreeGroup.Config): Tinkr.Util.GUIBuilder.Element.TreeGroup.Instance
--#endregion Tinkr.Util.GUIBuilder.Element.TreeGroup
--#region Tinkr.Util.GUIBuilder.Element.Slider
---@class Tinkr.Util.GUIBuilder.Element.Slider.Options : Tinkr.Util.GUIBuilder.Base.Keyable
---@field label string
---@field description? string
---@field min? number
---@field max? number
---@field step? number
---@field default? number
---@field percent? boolean
---@class Tinkr.Util.GUIBuilder.Element.Slider.Config : Tinkr.Util.GUIBuilder.Element.Slider.Options
---@field type "Slider"
---@class Tinkr.Util.GUIBuilder.Element.Slider.Instance
---@class Tinkr.Util.GUIBuilder.Element.Slider.Factory
---@overload fun(self: Tinkr.Util.GUIBuilder, options: Tinkr.Util.GUIBuilder.Element.Slider.Config): Tinkr.Util.GUIBuilder.Element.Slider.Instance
--#endregion Tinkr.Util.GUIBuilder.Element.Slider
--#region Tinkr.Util.GUIBuilder.Element.ColorPicker
---@class Tinkr.Util.GUIBuilder.Element.ColorPicker.Options : Tinkr.Util.GUIBuilder.Base.Keyable
---@field label string
---@field description? string
---@field alpha? boolean
---@field default? string
---@class Tinkr.Util.GUIBuilder.Element.ColorPicker.Config : Tinkr.Util.GUIBuilder.Element.ColorPicker.Options
---@field type "ColorPicker"
---@class Tinkr.Util.GUIBuilder.Element.ColorPicker.Instance
---@class Tinkr.Util.GUIBuilder.Element.ColorPicker.Factory
---@overload fun(self: Tinkr.Util.GUIBuilder, options: Tinkr.Util.GUIBuilder.Element.ColorPicker.Config): Tinkr.Util.GUIBuilder.Element.ColorPicker.Instance
--#endregion Tinkr.Util.GUIBuilder.Element.ColorPicker
--#region Tinkr.Util.GUIBuilder.Element.SimpleGroup
---@class Tinkr.Util.GUIBuilder.Element.SimpleGroup.Options
---@class Tinkr.Util.GUIBuilder.Element.SimpleGroup.Config : Tinkr.Util.GUIBuilder.Element.SimpleGroup.Options
---@field type "SimpleGroup"
---@class Tinkr.Util.GUIBuilder.Element.SimpleGroup.Instance
---@class Tinkr.Util.GUIBuilder.Element.SimpleGroup.Factory
---@overload fun(self: Tinkr.Util.GUIBuilder, options: Tinkr.Util.GUIBuilder.Element.SimpleGroup.Config): Tinkr.Util.GUIBuilder.Element.SimpleGroup.Instance
--#endregion Tinkr.Util.GUIBuilder.Element.SimpleGroup
--#region Tinkr.Util.GUIBuilder.Element.Heading
---@class Tinkr.Util.GUIBuilder.Element.Heading.Options : string
---@class Tinkr.Util.GUIBuilder.Element.Heading.Config : Tinkr.Util.GUIBuilder.Element.Heading.Options
---@field text string
---@field type "Heading"
---@class Tinkr.Util.GUIBuilder.Element.Heading.Instance
---@class Tinkr.Util.GUIBuilder.Element.Heading.Factory
---@overload fun(self: Tinkr.Util.GUIBuilder, options: Tinkr.Util.GUIBuilder.Element.Heading.Config): Tinkr.Util.GUIBuilder.Element.Heading.Instance
--#endregion Tinkr.Util.GUIBuilder.Element.Heading
--#region Tinkr.Util.GUIBuilder.Element.ScrollGroup
---@class Tinkr.Util.GUIBuilder.Element.ScrollGroup.Options : Tinkr.Util.GUIBuilder.Base.GroupElement.Options
---@class Tinkr.Util.GUIBuilder.Element.ScrollGroup.Config : Tinkr.Util.GUIBuilder.Element.ScrollGroup.Options
---@field type "ScrollGroup"
---@class Tinkr.Util.GUIBuilder.Element.ScrollGroup.Instance
---@class Tinkr.Util.GUIBuilder.Element.ScrollGroup.Factory
---@overload fun(self: Tinkr.Util.GUIBuilder, options: Tinkr.Util.GUIBuilder.Element.ScrollGroup.Config): Tinkr.Util.GUIBuilder.Element.ScrollGroup.Instance
--#endregion Tinkr.Util.GUIBuilder.Element.ScrollGroup
--#region Tinkr.Util.GUIBuilder.Element.HTML
---@class Tinkr.Util.GUIBuilder.Element.HTML.Options : string
---@class Tinkr.Util.GUIBuilder.Element.HTML.Config
---@field html string
---@field type "HTML"
---@class Tinkr.Util.GUIBuilder.Element.HTML.Instance
---@class Tinkr.Util.GUIBuilder.Element.HTML.Factory
---@overload fun(self: Tinkr.Util.GUIBuilder, options: Tinkr.Util.GUIBuilder.Element.HTML.Config): Tinkr.Util.GUIBuilder.Element.HTML.Instance
--#endregion Tinkr.Util.GUIBuilder.Element.HTML
---@class Tinkr.Util.GUIBuilder.Listener
---@field to_source boolean
---@field callback fun()
---@class Tinkr.Util.GUIBuilder
local GUIBuilder = {
---@param self Tinkr.Util.GUIBuilder
Factory = function(self) end,
---@param self Tinkr.Util.GUIBuilder
---@param config { config: string }
---@return Tinkr.Util.GUIBuilder.Instance
New = function(self, config) end,
---@param self Tinkr.Util.GUIBuilder
---@param name string
---@param factoryFunc fun(self: Tinkr.Util.GUIBuilder, options: table): Tinkr.Util.GUIBuilderChildElement
RegisterElementFactory = function(self, name, factoryFunc) end,
}
---@class Tinkr.Util.GUIBuilder.Instance
local GUIBuilderInstance = {
---@param self Tinkr.Util.GUIBuilder.Instance
---@param config Tinkr.Util.GUIBuilder.Builder.Config
---@return Tinkr.Util.GUIBuilder.Element.Window.Instance
Build = function(self, config) end,
---@generic D
---@param self Tinkr.Util.GUIBuilder.Instance
---@param key string
---@param default? D | any
---@return D
GetConfig = function(self, key, default) end,
}
---@class Tinkr.Util.GUIBuilder.Element.Factory
---@field Button fun(self: Tinkr.Util.GUIBuilder.Instance, config: Tinkr.Util.GUIBuilder.Element.Button.Config): Tinkr.Util.GUIBuilder.Element.Button.Instance
---@field Checkbox fun(self: Tinkr.Util.GUIBuilder.Instance, config: Tinkr.Util.GUIBuilder.Element.Checkbox.Config): Tinkr.Util.GUIBuilder.Element.Checkbox.Instance
---@field ColorPicker fun(self: Tinkr.Util.GUIBuilder.Instance, config: Tinkr.Util.GUIBuilder.Element.ColorPicker.Config): Tinkr.Util.GUIBuilder.Element.ColorPicker.Instance
---@field Columns fun(self: Tinkr.Util.GUIBuilder.Instance, config: Tinkr.Util.GUIBuilder.Element.Columns.Config): Tinkr.Util.GUIBuilder.Element.Columns.Instance
---@field Dropdown fun(self: Tinkr.Util.GUIBuilder.Instance, config: Tinkr.Util.GUIBuilder.Element.Dropdown.Config): Tinkr.Util.GUIBuilder.Element.Dropdown.Instance
---@field EditBox fun(self: Tinkr.Util.GUIBuilder.Instance, config: Tinkr.Util.GUIBuilder.Element.EditBox.Config): Tinkr.Util.GUIBuilder.Element.EditBox.Instance
---@field Group fun(self: Tinkr.Util.GUIBuilder.Instance, config: Tinkr.Util.GUIBuilder.Element.Group.Config): Tinkr.Util.GUIBuilder.Element.Group.Instance
---@field HTML fun(self: Tinkr.Util.GUIBuilder.Instance, config: Tinkr.Util.GUIBuilder.Element.HTML.Config): Tinkr.Util.GUIBuilder.Element.HTML.Instance
---@field Heading fun(self: Tinkr.Util.GUIBuilder.Instance, config: Tinkr.Util.GUIBuilder.Element.Heading.Config): Tinkr.Util.GUIBuilder.Element.Heading.Instance
---@field Image fun(self: Tinkr.Util.GUIBuilder.Instance, config: Tinkr.Util.GUIBuilder.Element.Image.Config): Tinkr.Util.GUIBuilder.Element.Image.Instance
---@field Padding fun(self: Tinkr.Util.GUIBuilder.Instance, config: Tinkr.Util.GUIBuilder.Element.Padding.Config): Tinkr.Util.GUIBuilder.Element.Padding.Instance
---@field Radio fun(self: Tinkr.Util.GUIBuilder.Instance, config: Tinkr.Util.GUIBuilder.Element.Radio.Config): Tinkr.Util.GUIBuilder.Element.Radio.Instance
---@field Rows fun(self: Tinkr.Util.GUIBuilder.Instance, config: Tinkr.Util.GUIBuilder.Element.Rows.Config): Tinkr.Util.GUIBuilder.Element.Rows.Instance
---@field ScrollGroup fun(self: Tinkr.Util.GUIBuilder.Instance, config: Tinkr.Util.GUIBuilder.Element.ScrollGroup.Config): Tinkr.Util.GUIBuilder.Element.ScrollGroup.Instance
---@field SimpleGroup fun(self: Tinkr.Util.GUIBuilder.Instance, config: Tinkr.Util.GUIBuilder.Element.SimpleGroup.Config): Tinkr.Util.GUIBuilder.Element.SimpleGroup.Instance
---@field Slider fun(self: Tinkr.Util.GUIBuilder.Instance, config: Tinkr.Util.GUIBuilder.Element.Slider.Config): Tinkr.Util.GUIBuilder.Element.Slider.Instance
---@field Spacer fun(self: Tinkr.Util.GUIBuilder.Instance, config: Tinkr.Util.GUIBuilder.Element.Spacer.Config): Tinkr.Util.GUIBuilder.Element.Spacer.Instance
---@field TabGroup fun(self: Tinkr.Util.GUIBuilder.Instance, config: Tinkr.Util.GUIBuilder.Element.TabGroup.Config): Tinkr.Util.GUIBuilder.Element.TabGroup.Instance
---@field Text fun(self: Tinkr.Util.GUIBuilder.Instance, config: Tinkr.Util.GUIBuilder.Element.Text.Config): Tinkr.Util.GUIBuilder.Element.Text.Instance
---@field TreeGroup fun(self: Tinkr.Util.GUIBuilder.Instance, config: Tinkr.Util.GUIBuilder.Element.TreeGroup.Config): Tinkr.Util.GUIBuilder.Element.TreeGroup.Instance
---@field Window fun(self: Tinkr.Util.GUIBuilder.Instance, config: Tinkr.Util.GUIBuilder.Element.Window.Config): Tinkr.Util.GUIBuilder.Element.Window.Instance
---@class Tinkr.Util.GUIBuilder.Instance : Tinkr.Util.GUIBuilder
---@field Button fun(self: Tinkr.Util.GUIBuilder.Instance, buttonOptions: Tinkr.Util.GUIBuilder.Element.Button.Options): Tinkr.Util.GUIBuilder.Element.Button.Config
---@field Checkbox fun(self: Tinkr.Util.GUIBuilder.Instance, checkboxOptions: Tinkr.Util.GUIBuilder.Element.Checkbox.Options): Tinkr.Util.GUIBuilder.Element.Checkbox.Config
---@field ColorPicker fun(self: Tinkr.Util.GUIBuilder.Instance, colorPickerOptions: Tinkr.Util.GUIBuilder.Element.ColorPicker.Options): Tinkr.Util.GUIBuilder.Element.ColorPicker.Config
---@field Columns fun(self: Tinkr.Util.GUIBuilder.Instance, columnsOptions: Tinkr.Util.GUIBuilder.Element.Columns.Options): Tinkr.Util.GUIBuilder.Element.Columns.Config
---@field Dropdown fun(self: Tinkr.Util.GUIBuilder.Instance, dropdownOptions: Tinkr.Util.GUIBuilder.Element.Dropdown.Options): Tinkr.Util.GUIBuilder.Element.Dropdown.Config
---@field EditBox fun(self: Tinkr.Util.GUIBuilder.Instance, editBoxOptions: Tinkr.Util.GUIBuilder.Element.EditBox.Options): Tinkr.Util.GUIBuilder.Element.EditBox.Config
---@field Emit fun(self: Tinkr.Util.GUIBuilder.Instance, key: string, value: any, toSource?: boolean)
---@field Group fun(self: Tinkr.Util.GUIBuilder.Instance, groupOptions: Tinkr.Util.GUIBuilder.Element.Group.Options): Tinkr.Util.GUIBuilder.Element.Group.Config
---@field HTML fun(self: Tinkr.Util.GUIBuilder.Instance, htmlOptions: Tinkr.Util.GUIBuilder.Element.HTML.Options): Tinkr.Util.GUIBuilder.Element.HTML.Config
---@field Heading fun(self: Tinkr.Util.GUIBuilder.Instance, headingOptions: Tinkr.Util.GUIBuilder.Element.Heading.Options): Tinkr.Util.GUIBuilder.Element.Heading.Config
---@field Image fun(self: Tinkr.Util.GUIBuilder.Instance, imageOptions: Tinkr.Util.GUIBuilder.Element.Image.Options): Tinkr.Util.GUIBuilder.Element.Image.Config
---@field Listen fun(self: Tinkr.Util.GUIBuilder.Instance, key: string, callback: fun(key: string, value: any)): Tinkr.Util.GUIBuilder.Listener
---@field Padding fun(self: Tinkr.Util.GUIBuilder.Instance, paddingOptions: Tinkr.Util.GUIBuilder.Element.Padding.Options): Tinkr.Util.GUIBuilder.Element.Padding.Config
---@field Radio fun(self: Tinkr.Util.GUIBuilder.Instance, radioOptions: Tinkr.Util.GUIBuilder.Element.Radio.Options): Tinkr.Util.GUIBuilder.Element.Radio.Config
---@field ReadConfig fun(self: Tinkr.Util.GUIBuilder.Instance, name: string, default?: any): any
---@field RemoveListener fun(self: Tinkr.Util.GUIBuilder.Instance, key: string, listener: Tinkr.Util.GUIBuilder.Listener)
---@field Rows fun(self: Tinkr.Util.GUIBuilder.Instance, rowsOptions: Tinkr.Util.GUIBuilder.Element.Rows.Options): Tinkr.Util.GUIBuilder.Element.Rows.Config
---@field ScrollGroup fun(self: Tinkr.Util.GUIBuilder.Instance, scrollGroupOptions: Tinkr.Util.GUIBuilder.Element.ScrollGroup.Options): Tinkr.Util.GUIBuilder.Element.ScrollGroup.Config
---@field SetConfig fun(self: Tinkr.Util.GUIBuilder.Instance, name: string)
---@field SimpleGroup fun(self: Tinkr.Util.GUIBuilder.Instance, simpleGroupOptions: Tinkr.Util.GUIBuilder.Element.SimpleGroup.Options): Tinkr.Util.GUIBuilder.Element.SimpleGroup.Config
---@field Slider fun(self: Tinkr.Util.GUIBuilder.Instance, sliderOptions: Tinkr.Util.GUIBuilder.Element.Slider.Options): Tinkr.Util.GUIBuilder.Element.Slider.Config
---@field Spacer fun(self: Tinkr.Util.GUIBuilder.Instance, spacerOptions: Tinkr.Util.GUIBuilder.Element.Spacer.Options): Tinkr.Util.GUIBuilder.Element.Spacer.Config
---@field Tab fun(self: Tinkr.Util.GUIBuilder.Instance, tabOptions: Tinkr.Util.GUIBuilder.Element.Tab.Options): Tinkr.Util.GUIBuilder.Element.Tab.Config
---@field TabGroup fun(self: Tinkr.Util.GUIBuilder.Instance, tabGroupOptions: Tinkr.Util.GUIBuilder.Element.TabGroup.Options): Tinkr.Util.GUIBuilder.Element.TabGroup.Config
---@field Text fun(self: Tinkr.Util.GUIBuilder.Instance, textOptions: Tinkr.Util.GUIBuilder.Element.Text.Options | string): Tinkr.Util.GUIBuilder.Element.Text.Config
---@field TreeBranch fun(self: Tinkr.Util.GUIBuilder.Instance, treeBranchOptions: Tinkr.Util.GUIBuilder.Element.TreeBranch.Options): Tinkr.Util.GUIBuilder.Element.TreeBranch.Config
---@field TreeGroup fun(self: Tinkr.Util.GUIBuilder.Instance, treeGroupOptions: Tinkr.Util.GUIBuilder.Element.TreeGroup.Options): Tinkr.Util.GUIBuilder.Element.TreeGroup.Config
---@field validate fun(self: Tinkr.Util.GUIBuilder.Instance, options: string[])
---@field validateRule fun(self: Tinkr.Util.GUIBuilder.Instance, options: string[], rule: string, value: any): boolean
---@field Window fun(self: Tinkr.Util.GUIBuilder.Instance, windowOptions: Tinkr.Util.GUIBuilder.Element.Window.Options): Tinkr.Util.GUIBuilder.Element.Window.Config
---@field WriteConfig fun(self: Tinkr.Util.GUIBuilder.Instance, name: string, value: any)
---@field atomic table
---@field config Tinkr.Util.Config.Instance
---@field key string
---@field keys { [string]: boolean }
---@field listeners { [string]: Tinkr.Util.GUIBuilder.Listener[] }
---@field elements Tinkr.Util.GUIBuilder.Element.Factory
---@alias Tinkr.Util.GUIBuilder.Builder.Config Tinkr.Util.GUIBuilder.Element.Window.Config
--#endregion Tinkr.Util.GUIBuilder
--#region Tinkr.Util.Common
---@class Tinkr.Util.Common
local TinkrUtilCommon = {
HitFlags = TinkrCollisionFlags,
---@param number number
---@param decimals number
---@return number
Round = function(number, decimals) end,
---@param x number
---@param y number
---@param hitFlags CollisionFlags
---@return number x, number y, number z
ScreenToWorld = function(x, y, hitFlags) end,
---@param length number
---@return string
RandomVariable = function(length) end,
---@param x1 number
---@param y1 number
---@param z1 number
---@param x2 number
---@param y2 number
---@param z2 number
---@return number
GetAnglesBetweenPositions = function(x1, y1, z1, x2, y2, z2) end,
}
--#endregion Tinkr.Util.Common
--#region Tinkr.Util.Config
--#region Tinkr.Util.Config.Instance
---@class Tinkr.Util.Config.Instance : Tinkr.Util.Config
---@field data table
---@field file string
--#endregion Tinkr.Util.Config.Instance
---@class Tinkr.Util.Config
---@field New fun(self: Tinkr.Util.Config, name: string): Tinkr.Util.Config.Instance
---@field Read fun(self: Tinkr.Util.Config.Instance, key: string, default: any): any
---@field Sync fun(self: Tinkr.Util.Config.Instance, key: string)
---@field Write fun(self: Tinkr.Util.Config.Instance, key: string, value: any)
--#endregion Tinkr.Util.Config
--#region Tinkr.Util.Crypto
--#region Tinkr.Util.Crypto.AES
---@class Tinkr.Util.Crypto.AES
local TinkrUtilCryptoAES = {
---@param self Tinkr.Util.Crypto.AES
---@return string
IV = function(self) end,
---@param self Tinkr.Util.Crypto.AES
---@param input string
---@param key string
---@param iv string
---@return string
Encrypt = function(self, input, key, iv) end,
---@param self Tinkr.Util.Crypto.AES
---@param input string
---@param key string
---@param iv string
---@return string
Decrypt = function(self, input, key, iv) end,
}
--#endregion Tinkr.Util.Crypto.AES
--#region Tinkr.Util.Crypto.Hash
---@class Tinkr.Util.Crypto.Hash
local TinkrUtilCryptoHash = {
---@param self Tinkr.Util.Crypto.Hash
---@param input string
---@return string
MD5 = function(self, input) end,
---@param self Tinkr.Util.Crypto.Hash
---@param input string
---@return string
SHA1 = function(self, input) end,
---@param self Tinkr.Util.Crypto.Hash
---@param input string
---@return string
SHA2 = function(self, input) end,
---@param self Tinkr.Util.Crypto.Hash
---@param input string
---@return string
SHA256 = function(self, input) end,
---@param self Tinkr.Util.Crypto.Hash
---@param input string
---@return string
SHA3 = function(self, input) end,
---@param self Tinkr.Util.Crypto.Hash
---@param algo HMacHashType
---@param input string
---@param key string
---@return string
HMAC = function(self, algo, input, key) end,
}
--#endregion Tinkr.Util.Crypto.Hash
--#region Tinkr.Util.Crypto.Base64
---@class Tinkr.Util.Crypto.Base64
local TinkrUtilCryptoBase64 = {
---@param self Tinkr.Util.Crypto.Base64
---@param input string
---@return string
Encode = function(self, input) end,
---@param self Tinkr.Util.Crypto.Base64
---@param input string
---@return string
Decode = function(self, input) end,
}
--#endregion Tinkr.Util.Crypto.Base64
---@class Tinkr.Util.Crypto
local TinkrUtilCrypto = {
---@type Tinkr.Util.Crypto.AES
AES = {},
---@type Tinkr.Util.Crypto.Hash
Hash = {},
---@type Tinkr.Util.Crypto.Base64
Base64 = {},
}
--#endregion Tinkr.Util.Crypto
--#region Tinkr.Util.Modules
--#region Tinkr.Util.Modules.Detour
---@class Tinkr.Util.Modules.Detour
local TinkrUtilModulesDetour = {
---@param self Tinkr.Util.Modules.Detour
---@param path Position[]
---@return Position[]
SmoothPath = function(self, path) end,
---@param self Tinkr.Util.Modules.Detour
---@param path Position[]
---@return Position[]
FlattenPath = function(self, path) end,
---@param self Tinkr.Util.Modules.Detour
---@param path Position[]
---@return Position[]
PreparePath = function(self, path) end,
---@param self Tinkr.Util.Modules.Detour
---@param object TinkrObjectReference
---@return Position[]
ToObject = function(self, object) end,
---@param self Tinkr.Util.Modules.Detour
---@param x number
---@param y number
---@param z number
---@return Position[]
ToPosition = function(self, x, y, z) end,
---@param self Tinkr.Util.Modules.Detour
---@param startX number
---@param startY number
---@param startZ number
---@param destX number
---@param destY number
---@param destZ number
---@return Position[]
Raw = function(self, startX, startY, startZ, destX, destY, destZ) end,
---@param self Tinkr.Util.Modules.Detour
---@param route Position[]
---@param close Position
---@return Position[]
ConnectWaypoints = function(self, route, close) end,
---@param self Tinkr.Util.Modules.Detour
---@param path Position[]
---@param color string
DebugPath = function(self, path, color) end,
---@param self Tinkr.Util.Modules.Detour
---@param path Position[]
---@param color string
DebugTiles = function(self, path, color) end,
}
--#endregion Tinkr.Util.Modules.Detour
--#region Tinkr.Util.Modules.Draw
---@class Tinkr.Util.Modules.Draw
local TinkrUtilModulesDraw = {
---@param self Tinkr.Util.Modules.Draw
---@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 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
ClearCanvas = function(self) 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,
---@param self Tinkr.Util.Modules.Draw
DashedLine = function(self) end,
---@param self Tinkr.Util.Modules.Draw
Disable = function(self) end,
---@param self Tinkr.Util.Modules.Draw
---@param ax number
---@param ay number
---@param az number
---@param bx number
---@param by number
---@param bz number
---@return number
Distance = function(self, ax, ay, az, bx, by, bz) end,
---@param self Tinkr.Util.Modules.Draw
---@param x1 number
---@param y1 number
---@param x2 number
---@return number
Distance2D = function(self, x1, y1, x2, y2) end,
---@param self Tinkr.Util.Modules.Draw
Draw3DTexture = function(self) end,
---@param self Tinkr.Util.Modules.Draw
Enable = function(self) end,
---@param self Tinkr.Util.Modules.Draw
---@return boolean
Enabled = function(self) end,
---@param self Tinkr.Util.Modules.Draw
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
---@param y1 number
---@param z1 number
---@param x2 number
---@param y2 number
---@param z2 number
---@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
---@param z1 number
---@param x2 number
---@param y2 number
---@param z2 number
LineRaw = function(self, x1, y1, z1, x2, y2, z2) 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 self Tinkr.Util.Modules.Draw
---@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
Outline = function(self, x, y, z, radius) end,
ProjectedTexture = function(self) end,
---@param self Tinkr.Util.Modules.Draw
---@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 self Tinkr.Util.Modules.Draw
---@param x number
---@param y number
---@param z number
---@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
---@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
---@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
---@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
---@param a number
SetAlpha = function(self, a) end,
---@param self Tinkr.Util.Modules.Draw
---@param a number
SetAlphaRaw = function(self, a) 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,
---@param self Tinkr.Util.Modules.Draw
---@param object TinkrObjectReference
SetColorFromObject = function(self, object) 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 self Tinkr.Util.Modules.Draw
---@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
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 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
---@class Tinkr.Util.Modules.Evaluator
local TinkrUtilModulesEvaluator = {
---@param self Tinkr.Util.Modules.Evaluator
---@param length number
---@return string
RandomVariable = function(self, length) end,
---@param self Tinkr.Util.Modules.Evaluator
---@param func function
InjectGlobals = function(self, func) end,
---@param self Tinkr.Util.Modules.Evaluator
---@param file string
---@param args ...
LoadEncrypted = function(self, file, args) end,
---@param self Tinkr.Util.Modules.Evaluator
---@param input string
---@return function
Load = function(self, input, ...) end,
---@param self Tinkr.Util.Modules.Evaluator
---@param input string
---@param args any[]
---@param path string
---@return ...
LoadString = function(self, input, args, path) end,
---@param self Tinkr.Util.Modules.Evaluator
---@param func function
---@param ... any
CallProtectedFunction = function(self, func, ...) end,
---@param self Tinkr.Util.Modules.Evaluator
---@param buffer string
---@param args ...
---@param path string
LoadEncBuffer = function(self, buffer, args, path) end,
---@param self Tinkr.Util.Modules.Evaluator
---@param global string
EmplaceGlobals = function(self, global) end,
}
--#endregion Tinkr.Util.Modules.Evaluator
--#region Tinkr.Util.Modules.Event
---@class Tinkr.Util.Modules.Event
local TinkrUtilModulesEvent = {
---@param self Tinkr.Util.Modules.Event
---@param event string
---@param callback fun(...)
Register = function(self, event, callback) end,
---@param self Tinkr.Util.Modules.Event
---@param event string
---@param ... any
Emit = function(self, event, ...) end,
---@param self Tinkr.Util.Modules.Event
---@param id string
---@param callback fun(...)
RemoveListener = function(self, id, callback) end,
---@param self Tinkr.Util.Modules.Event
---@param event string
---@return number[] ids
GetListeners = function(self, event) end,
}
--#endregion Tinkr.Util.Modules.Event
--#region Tinkr.Util.Modules.File
---@class Tinkr.Util.Modules.File
local TinkrUtilModulesFile = {
---List all files in a given directory.
---@param self Tinkr.Util.Modules.File
---@param dir string
---@return string[]
List = function(self, dir) end,
---List all files in a given directory.
---@param self Tinkr.Util.Modules.File
---@param dir string
---@param recurse boolean
---@return string[]
ListDirectory = function(self, dir, recurse) end,
---Writes the data to a given file.
---@param self Tinkr.Util.Modules.File
---@param file string
---@param data string
---@param append boolean
---@return boolean
Write = function(self, file, data, append) end,
---Read the data in a given file.
---@param self Tinkr.Util.Modules.File
---@param file string
---@return string
Read = function(self, file) end,
---Delete the given file.
---@param self Tinkr.Util.Modules.File
---@param file string
---@return string
Delete = function(self, file) end,
---Run the given file.
---@param self Tinkr.Util.Modules.File
---@param file string
---@param args ...
---@return string
Run = function(self, file, args) end,
---Load the given package.
---@param self Tinkr.Util.Modules.File
---@param file string
---@param args ...
---@return string
LoadPackage = function(self, file, args) end,
}
--#endregion Tinkr.Util.Modules.File
--#region Tinkr.Util.Modules.Fly
---@class Tinkr.Util.Modules.Fly
local TinkrUtilModulesFly = {}
--#endregion Tinkr.Util.Modules.Fly
--#region Tinkr.Util.Modules.FrameEvent
---@class Tinkr.Util.Modules.FrameEvent
local TinkrUtilModulesFrameEvent = {}
--#endregion Tinkr.Util.Modules.FrameEvent
--#region Tinkr.Util.Modules.HTTP
---@class Tinkr.Util.Modules.HTTP
local TinkrUtilModulesHTTP = {}
--#endregion Tinkr.Util.Modules.HTTP
--#region Tinkr.Util.Modules.JSON
---@class Tinkr.Util.Modules.JSON
local TinkrUtilModulesJSON = {
---@param json string
Decode = function(self, json) end,
---@param luatable table
Encode = function(self, luatable) end,
}
--#endregion Tinkr.Util.Modules.JSON
--#region Tinkr.Util.Modules.LibStub
---@class Tinkr.Util.Modules.LibStub
local TinkrUtilModulesLibStub = {}
--#endregion Tinkr.Util.Modules.LibStub
--#region Tinkr.Util.Modules.Movement
---@class Tinkr.Util.Modules.Movement
local TinkrUtilModulesMovement = {}
--#endregion Tinkr.Util.Modules.Movement
--#region Tinkr.Util.Modules.ObjectManager
---@class Tinkr.Util.Modules.ObjectManager
local TinkrUtilModulesObjectManager = {}
--#endregion Tinkr.Util.Modules.ObjectManager
--#region Tinkr.Util.Modules.Script
---@class Tinkr.Util.Modules.Script
local TinkrUtilModulesScript = {}
--#endregion Tinkr.Util.Modules.Script
--#region Tinkr.Util.Modules.Vector3
---@class Tinkr.Util.Modules.Vector3
local TinkrUtilModulesVector3 = {}
--#endregion Tinkr.Util.Modules.Vector3
---@class Tinkr.Util.Modules
local TinkrUtilModules = {
---@type Tinkr.Util.Modules.Detour
Detour = {},
---@type Tinkr.Util.Modules.Draw
Draw = {},
---@type Tinkr.Util.Modules.Evaluator
Evaluator = {},
---@type Tinkr.Util.Modules.Event
Event = {},
---@type Tinkr.Util.Modules.File
File = {},
---@type Tinkr.Util.Modules.Fly
Fly = {},
---@type Tinkr.Util.Modules.FrameEvent
FrameEvent = {},
---@type Tinkr.Util.Modules.HTTP
HTTP = {},
---@type Tinkr.Util.Modules.JSON
JSON = {},
---@type Tinkr.Util.Modules.LibStub
LibStub = {},
---@type Tinkr.Util.Modules.Movement
Movement = {},
---@type Tinkr.Util.Modules.ObjectManager
ObjectManager = {},
---@type Tinkr.Util.Modules.Script
Script = {},
---@type Tinkr.Util.Modules.Vector3
Vector3 = {},
}
--#endregion Tinkr.Util.Modules
---@class Tinkr.Util.Class.Static
---@field allocate fun(self: Tinkr.Util.Class.Instance): Tinkr.Util.Class.Instance
---@field new fun(self: Tinkr.Util.Class.Instance, ...: any ): Tinkr.Util.Class.Instance | any
---@field subclass fun(self: Tinkr.Util.Class.Instance, name: string): Tinkr.Util.Class.Instance
---@field isSubclassOf fun(self: Tinkr.Util.Class.Instance, other: Tinkr.Util.Class.Instance): boolean
---@field subclassed fun(self: Tinkr.Util.Class.Instance, other: Tinkr.Util.Class.Instance): boolean
---@field include fun(self: Tinkr.Util.Class.Instance, ...): Tinkr.Util.Class.Instance
---@class Tinkr.Util.Class.DefaultMixin
---@field __tostring fun(self: Tinkr.Util.Class.Instance): string
---@field initialize fun(self: Tinkr.Util.Class.Instance, ...)
---@field isInstanceOf fun(self: Tinkr.Util.Class.Instance, aClass: Tinkr.Util.Class.Instance): boolean
---@field static? Tinkr.Util.Class.Static
---@class Tinkr.Util.Class.Instance : Tinkr.Util.Class.DefaultMixin, Tinkr.Util.Class.Static
---@field name string
---@field super? Tinkr.Util.Class
---@field __declaredMethods table<string, function>
---@field __instanceDict table
---@field __newindex fun(self: Tinkr.Util.Class.Instance, name: string, f: function)
---@overload fun()
---@class Tinkr.Util.Class
---@field class fun(self: Tinkr.Util.Class, name: string, super?: Tinkr.Util.Class.Instance): Tinkr.Util.Class.Instance
---@overload fun(self: Tinkr.Util.Class, name: string, super?: Tinkr.Util.Class.Instance): Tinkr.Util.Class.Instance
---@class Tinkr.Util.File
---@field List fun(self: Tinkr.Util.File, dir: string): string[]
---@field Read fun(self: Tinkr.Util.File, file: string): string
---@class Tinkr.Util.Serialize
---@field Load fun(self: Tinkr.Util.Serialize, string: string): any
---@field Serialize fun(self: Tinkr.Util.Serialize, value: any): string
---@class Tinkr.Util
---@field File Tinkr.Util.File
local TinkrUtil = {
---@class Tinkr.Util.Class
Class = {},
---@type Tinkr.Util.Http
HTTP = {},
---@type Tinkr.Util.Modules.Evaluator
Evaluator = {},
---@type Tinkr.Util.Commands
Commands = {},
---@type Tinkr.Util.Common
Common = {},
---@type Tinkr.Util.Config
Config = {},
---@type Tinkr.Util.Crypto
Crypto = {},
---@type Tinkr.Util.Modules
Modules = {},
---@type Tinkr.Util.GUIBuilder
GUIBuilder = {},
---@type Tinkr.Util.Modules.Draw
Draw = {},
LibStub = LibStub,
JSON = Tinkr.Util.JSON,
Serialize = {},
}
--#endregion Tinkr.Util
--#region Tinkr.FileSystem
---@class Tinkr.FileSystem
local TinkrFileSystem = {
---Attempts to create a given directory.
---@param path string
---@return boolean
CreateDirectory = function(path) end,
---Attempts to create a given directory.
---@param path string
---@return boolean
CreateFolder = function(path) end,
---Deletes a file from the system.
---@param path string
---@return boolean
DeleteFile = function(path) end,
---Checks if the given directory exists.
---@param path string
---@return boolean
DirectoryExists = function(path) end,
---Checks if the given directory exists.
---@param path string
---@return boolean
FolderExists = function(path) end,
---Checks if the given file exists.
---@param path string
---@return boolean
FileExists = function(path) end,
---List all directories in a given directory.
---@param path string
---@return string[]
ListDirectories = function(path) end,
---List all directories in a given directory.
---@param path string
---@return string[]
ListFolders = function(path) end,
---List all files in a given directory.
---@param path string
---@return string[]
ListFiles = function(path) end,
---List all files in a given zip.
---@param path string
---@return string[]
ListZipEntries = function(path) end,
---Reads the contents of a given file.
---@param path string
---@return string
ReadFile = function(path) end,
---a given file inside a zip archive.
---@param zip string
---@param entry string
---@return boolean
ReadZipEntry = function(zip, entry) end,
---Writes the data to a given file.
---@param path string
---@param data string
---@param append boolean
---@return boolean
WriteFile = function(path, data, append) end,
---Loads file and returns the result.
---@param path string
---@param ... any
---@return any ...
require = function(path, ...) end,
}
CreateDirectory = TinkrFileSystem.CreateDirectory
CreateFolder = TinkrFileSystem.CreateFolder
DeleteFile = TinkrFileSystem.DeleteFile
DirectoryExists = TinkrFileSystem.DirectoryExists
FolderExists = TinkrFileSystem.FolderExists
FileExists = TinkrFileSystem.FileExists
ListDirectories = TinkrFileSystem.ListDirectories
ListFolders = TinkrFileSystem.ListFolders
ListFiles = TinkrFileSystem.ListFiles
ListZipEntries = TinkrFileSystem.ListZipEntries
ReadFile = TinkrFileSystem.ReadFile
ReadZipEntry = TinkrFileSystem.ReadZipEntry
WriteFile = TinkrFileSystem.WriteFile
require = TinkrFileSystem.require
--#endregion Tinkr.FileSystem
--#region Tinkr.Interaction
---@class Tinkr.Interaction
local TinkrInteraction = {
---Sends an afk clear packet to the server. This is like typing /afk
---@return boolean
ClearAFK = function() end,
---Clears the target object.
---@param objectRef TinkrObjectReference
---@return boolean
ClearNPCObject = function(objectRef) end,
---Clears the target object.
---@param objectRef TinkrObjectReference
---@return boolean
ClearTargetObject = function(objectRef) end,
---Clicks the ground at the given position. This is useful for casting spells on the ground.
---@param x number
---@param y number
---@param z number
Click = function(x, y, z) end,
---Interact with a unit.
---@param objectRef TinkrObjectReference
---@return boolean
InteractUnit = function(objectRef) end,
---Checks if a cursor spell cast is pending.
---@return number
IsSpellPending = function() end,
---Right click an object.
---@param objectRef TinkrObjectReference
---@return boolean
LeftClickObject = function(objectRef) end,
---Releases an empowered spell.
---@param spellID spellId
ReleaseEmpoweredSpell = function(spellID) end,
---Right click an object.
---@param objectRef TinkrObjectReference
---@return boolean
RightClickObject = function(objectRef) end,
---Sends a heartbeat packet to the server. This is useful for doing things like disengaging backwards.
---@return boolean
SendMovementHeartbeat = function() end,
---Sets the mouseover to a WowGameObject.
---@param objectRef TinkrObjectReference
---@return boolean
SetMouseover = function(objectRef) end,
---Sets the target object to a WowGameObject.
---@param objectRef TinkrObjectReference
---@return boolean
SetNPCObject = function(objectRef) end,
---Sets the target object to a WowGameObject.
---@param objectRef TinkrObjectReference
---@return boolean
SetTargetObject = function(objectRef) end,
}
ClearAFK = TinkrInteraction.ClearAFK
ClearNPCObject = TinkrInteraction.ClearNPCObject
ClearTargetObject = TinkrInteraction.ClearTargetObject
Click = TinkrInteraction.Click
InteractUnit = TinkrInteraction.InteractUnit
IsSpellPending = TinkrInteraction.IsSpellPending
LeftClickObject = TinkrInteraction.LeftClickObject
ReleaseEmpoweredSpell = TinkrInteraction.ReleaseEmpoweredSpell
RightClickObject = TinkrInteraction.RightClickObject
SendMovementHeartbeat = TinkrInteraction.SendMovementHeartbeat
SetMouseover = TinkrInteraction.SetMouseover
SetNPCObject = TinkrInteraction.SetNPCObject
SetTargetObject = TinkrInteraction.SetTargetObject
--#endregion Tinkr.Interaction
--#region Tinkr.Movement
---@class Tinkr.Movement
local TinkrMovement = {
---Returns the position of the camera.
---@return number x, number y, number z
CameraPosition = function() end,
---Face the player in the direction given (in radians).
---@param dir number
---@param update boolean
FaceDirection = function(dir, update) end,
---Face the player at a WowGameObject.
---@param objectRef TinkrObjectReference
FaceObject = function(objectRef) end,
---GeneratePath a path between two positions for the given map ID.
---@param x1 number
---@param y1 number
---@param z1 number
---@param x2 number
---@param y2 number
---@param z2 number
---@param mapId integer
---@return PositionArray path, PathTypes pathType
GeneratePath = function(x1, y1, z1, x2, y2, z2, mapId) end,
---GeneratePath a path between two positions for the given map ID, attaching an extra weight to each poly edge examined.
---@param x1 number
---@param y1 number
---@param z1 number
---@param x2 number
---@param y2 number
---@param z2 number
---@param mapId integer
---@param weightCalc fun(ax: number, ay: number, az: number, bx: number, by: number, bz: number): number
---@return PositionArray path
GeneratePathWeighted = function(x1, y1, z1, x2, y2, z2, mapId, weightCalc) end,
---Returns the current area info.
---@return { continentID: integer, areaID: integer, parentAreaID: integer }
GetAreaInfo = function() end,
---Returns the position of the players corpse.
---@return number x, number y, number z
GetCorpsePosition = function() end,
---Returns the position of the players corpse.
---@return number x, number y, number z
GetCorpseLocation = function() end,
---Returns the current mapID for use with GeneratePath.
---@return integer
GetMapID = function() end,
---Get the players current pitch
---@return number
GetPitch = function() end,
---Click to Move to a given position.
---@param x number
---@param y number
---@param z number
MoveTo = function(x, y, z) end,
---Click to Move to a raw position ignoring transport world relativity
---@param x number
---@param y number
---@param z number
MoveToRaw = function(x, y, z) end,
---Set your players rotation instantly to face a direction using the games input controller
---@param theta number
SetHeading = function(theta) end,
---Set your players rotation instantly to face a direction using the games input controller
---@param theta number
SetPitch = function(theta) end,
}
CameraPosition = TinkrMovement.CameraPosition
FaceDirection = TinkrMovement.FaceDirection
FaceObject = TinkrMovement.FaceObject
GeneratePath = TinkrMovement.GeneratePath
GeneratePathWeighted = TinkrMovement.GeneratePathWeighted
GetAreaInfo = TinkrMovement.GetAreaInfo
GetCorpseLocation = TinkrMovement.GetCorpseLocation
GetCorpsePosition = TinkrMovement.GetCorpsePosition
GetMapID = TinkrMovement.GetMapID
GetPitch = TinkrMovement.GetPitch
MoveTo = TinkrMovement.MoveTo
MoveToRaw = TinkrMovement.MoveToRaw
SetHeading = TinkrMovement.SetHeading
SetPitch = TinkrMovement.SetPitch
--#endregion Tinkr.Movement
--#region Tinkr.Objects
---@class Tinkr.Objects
local TinkrObjects = {
---Returns the spellID of a WowGameObject representation of an Area Trigger
---@param objectRef TinkrObjectReference
---@return { spellID1: number, spellID2: number } | false
AreaTriggerSpell = function(objectRef) end,
---Returns the gameobject type of a WowGameObject.
---@param objectRef TinkrObjectReference
---@return ObjectType | false
GameObjectType = function(objectRef) end,
---Gets a list of all Missiles.
---@return Missle[]
Missiles = function() end,
---Gets a single object.
---@param unitId TinkrObjectReference
---@return WowGameObject | false
Object = function(unitId) end,
---Get an objects hidden aura
---@param objectRef TinkrObjectReference
---@param index integer
---@return string name, number icon, number count, (DispelType | nil) displType, number duration, number expirationTime, UnitId source, boolean isStealable, boolean nameplateShowPersonal, spellId spellId, boolean canApplyAura, boolean isBossDebuff, boolean castByPlayer, boolean nameplateShowAll, number timeMod
---@overload fun(objectRef: TinkrObjectReference, index: integer): nil
ObjectAura = function(objectRef, index) end,
---Returns the bounding radius of a WowGameObject in radians.
---@param objectRef TinkrObjectReference
---@return number | false
ObjectBoundingRadius = function(objectRef) end,
---Returns the casting and channeling spell of a WowGameObject.
---@param objectRef TinkrObjectReference
---@return number[] | false
ObjectCastingInfo = function(objectRef) end,
---Returns a WowGameObject representing the destination for a units current spell cast.
---@param objectRef TinkrObjectReference
---@return WowGameObject | false
ObjectCastingTarget = function(objectRef) end,
---Returns the combat reach of a WowGameObject.
---@param objectRef TinkrObjectReference
---@return number | false
ObjectCombatReach = function(objectRef) end,
---Returns the creator of the WowGameObject.
---@param objectRef TinkrObjectReference
---@return TinkrObjectReference | false
ObjectCreator = function(objectRef) end,
---Returns the creature type of a WowGameObject.
---@param objectRef TinkrObjectReference
---@return UnitCreatureType | false
ObjectCreatureType = function(objectRef) end,
---Returns the distance between two WowGameObject's.
---@param fromObjectRef TinkrObjectReference
---@param toObjectRef TinkrObjectReference
---@return number | false
ObjectDistance = function(fromObjectRef, toObjectRef) end,
---Returns the flags of a WowGameObject.
---@param objectRef TinkrObjectReference
---@return number flags1, number flags2, number flags3, number flags4, number unitFlags1, number unitFlags2, number dynamicFlags
---@overload fun(objectRef: TinkrObjectReference): false
ObjectFlags = function(objectRef) end,
---Returns the GUID of a WowGameObject. This is equal to UnitGUID but supports any object
---@param objectRef TinkrObjectReference
---@return string | false
ObjectGUID = function(objectRef) end,
---Returns the hight of a WowGameObject.
---@param objectRef TinkrObjectReference
---@return number | false
ObjectHeight = function(objectRef) end,
---Returns the NPC ID of a WowGameObject.
---@param objectRef TinkrObjectReference
---@return (number | boolean), (number?) ...
ObjectID = function(objectRef) end,
---Check if a WowGameObject is outside (AKA not in a cave).
---@param objectRef TinkrObjectReference
---@return boolean
ObjectIsOutdoors = function(objectRef) end,
---Check if a WowGameObject is submerged (AKA in the water).
---@param objectRef TinkrObjectReference
---@return boolean
ObjectIsSubmerged = function(objectRef) end,
---Returns if a WowGameObject is lootable or not.
---@param objectRef TinkrObjectReference
---@return boolean
ObjectLootable = function(objectRef) end,
---Returns the current movement state of a Unit
---@param objectRef TinkrObjectReference
---@return MovementFlags
ObjectMovementFlag = function(objectRef) end,
---Returns the objectReference that the WowGameObject is moving on.
---@param objectRef TinkrObjectReference
---@return TinkrObjectReference | false
ObjectMover = function(objectRef) end,
---Returns the name of a WowGameObject.
---@param objectRef TinkrObjectReference
---@return string | false
ObjectName = function(objectRef) end,
---Returns the position of a WowGameObject.
---@param objectRef TinkrObjectReference
---@return number x, number y, number z
ObjectPosition = function(objectRef) end,
---Returns the raw position of a WowGameObject.
---@param objectRef TinkrObjectReference
---@return number x, number y, number z
ObjectRawPosition = function(objectRef) end,
---Returns the raw rotation of a WowGameObject in radians.
---@param objectRef TinkrObjectReference
---@return number | false
ObjectRawRotation = function(objectRef) end,
---Returns the rotation of a WowGameObject in radians.
---@param objectRef TinkrObjectReference
---@return number | false
ObjectRotation = function(objectRef) end,
---Returns if a WowGameObject is skinned or not.
---@param objectRef TinkrObjectReference
---@return boolean
ObjectSkinnable = function(objectRef) end,
---Returns the skinning type of a WowGameObject.
---@param objectRef TinkrObjectReference
---@return SkinType | false
ObjectSkinningType = function(objectRef) end,
---Returns the spec ID of a WowGameObject.
---@param objectRef TinkrObjectReference
---@return number | false
ObjectSpecializationID = function(objectRef) end,
---Returns the type of a WowGameObject.
---@param objectRef TinkrObjectReference
---@return ObjectType | false
ObjectType = function(objectRef) end,
---@param objectRef TinkrObjectReference
---@return string
ObjectUnit = function(objectRef) end,
---Returns a WowGameObject representing the current target of an object.
---@param objectRef TinkrObjectReference
---@return WowGameObject | false
ObjectTarget = function(objectRef) end,
---Returns the world position of a WowGameObject.
---@param objectRef TinkrObjectReference
---@return number x, number y, number z
ObjectWorldPosition = function(objectRef) end,
---Gets a list of all objects.
---@param filterTypeId? ObjectType
---@return WowGameObject[]
Objects = function(filterTypeId) end,
---Returns the duel team of a WowGameObject.
---@param objectRef TinkrObjectReference
---@return number
UnitDuelTeam = function(objectRef) end,
---Check if a WowGameObject is mounted.
---@param objectRef TinkrObjectReference
---@return boolean
UnitIsMounted = function(objectRef) end,
---Check if a WowGameObject is sitting.
---@param objectRef TinkrObjectReference
---@return boolean
UnitIsSitting = function(objectRef) end,
---Return item levels for a WowGameObject.
---@param objectRef TinkrObjectReference
---@return number equipped, number current, number avg, number max
UnitItemLevels = function(objectRef) end,
---Returns a WowGameObject representing the current loot target of an object.
---@param objectRef TinkrObjectReference
---@return WowGameObject | false
ObjectLootTarget = function(objectRef) end,
---Returns a WowGameObject shapeshift ID.
---@param objectRef TinkrObjectReference
---@return number | false
UnitShapeShiftID = function(objectRef) end,
--A more "advanced" way to find the "top" of the mob where you could possibly cast a spell towards.
---@param objectRef TinkrObjectReference
---@param typeID number
---@return number, number, number
GetUnitAttachmentPosition = function(objectRef, typeID) end,
---Returns the model id of the object.
---@param objectRef TinkrObjectReference
---@return number
ObjectModelId = function(objectRef) end,
}
AreaTriggerSpell = TinkrObjects.AreaTriggerSpell
GameObjectType = TinkrObjects.GameObjectType
Missiles = TinkrObjects.Missiles
Object = TinkrObjects.Object
ObjectAura = TinkrObjects.ObjectAura
ObjectBoundingRadius = TinkrObjects.ObjectBoundingRadius
ObjectCastingInfo = TinkrObjects.ObjectCastingInfo
ObjectCastingTarget = TinkrObjects.ObjectCastingTarget
ObjectCombatReach = TinkrObjects.ObjectCombatReach
ObjectCreator = TinkrObjects.ObjectCreator
ObjectCreatureType = TinkrObjects.ObjectCreatureType
ObjectDistance = TinkrObjects.ObjectDistance
ObjectFlags = TinkrObjects.ObjectFlags
ObjectGUID = TinkrObjects.ObjectGUID
ObjectHeight = TinkrObjects.ObjectHeight
ObjectID = TinkrObjects.ObjectID
ObjectIsOutdoors = TinkrObjects.ObjectIsOutdoors
ObjectIsSubmerged = TinkrObjects.ObjectIsSubmerged
ObjectLootTarget = TinkrObjects.ObjectLootTarget
ObjectLootable = TinkrObjects.ObjectLootable
ObjectModelId = TinkrObjects.ObjectModelId
ObjectMovementFlag = TinkrObjects.ObjectMovementFlag
ObjectMover = TinkrObjects.ObjectMover
ObjectName = TinkrObjects.ObjectName
ObjectPosition = TinkrObjects.ObjectPosition
ObjectRawPosition = TinkrObjects.ObjectRawPosition
ObjectRawRotation = TinkrObjects.ObjectRawRotation
ObjectRotation = TinkrObjects.ObjectRotation
ObjectSkinnable = TinkrObjects.ObjectSkinnable
ObjectSkinningType = TinkrObjects.ObjectSkinningType
ObjectSpecializationID = TinkrObjects.ObjectSpecializationID
ObjectTarget = TinkrObjects.ObjectTarget
ObjectType = TinkrObjects.ObjectType
ObjectUnit = TinkrObjects.ObjectUnit
ObjectWorldPosition = TinkrObjects.ObjectWorldPosition
Objects = TinkrObjects.Objects
UnitDuelTeam = TinkrObjects.UnitDuelTeam
UnitIsMounted = TinkrObjects.UnitIsMounted
UnitIsSitting = TinkrObjects.UnitIsSitting
UnitItemLevels = TinkrObjects.UnitItemLevels
UnitShapeShiftID = TinkrObjects.UnitShapeShiftID
GetUnitAttachmentPosition = TinkrObjects.GetUnitAttachmentPosition
---@enum Tinkr.KeyCodes
local KeyCodes = {
ANSI_A = 0x00,
ANSI_S = 0x01,
ANSI_D = 0x02,
ANSI_F = 0x03,
ANSI_H = 0x04,
ANSI_G = 0x05,
ANSI_Z = 0x06,
ANSI_X = 0x07,
ANSI_C = 0x08,
ANSI_V = 0x09,
ANSI_B = 0x0B,
ANSI_Q = 0x0C,
ANSI_W = 0x0D,
ANSI_E = 0x0E,
ANSI_R = 0x0F,
ANSI_Y = 0x10,
ANSI_T = 0x11,
ANSI_1 = 0x12,
ANSI_2 = 0x13,
ANSI_3 = 0x14,
ANSI_4 = 0x15,
ANSI_6 = 0x16,
ANSI_5 = 0x17,
ANSI_Equal = 0x18,
ANSI_9 = 0x19,
ANSI_7 = 0x1A,
ANSI_Minus = 0x1B,
ANSI_8 = 0x1C,
ANSI_0 = 0x1D,
ANSI_RightBracket = 0x1E,
ANSI_O = 0x1F,
ANSI_U = 0x20,
ANSI_LeftBracket = 0x21,
ANSI_I = 0x22,
ANSI_P = 0x23,
ANSI_L = 0x25,
ANSI_J = 0x26,
ANSI_Quote = 0x27,
ANSI_K = 0x28,
ANSI_Semicolon = 0x29,
ANSI_Backslash = 0x2A,
ANSI_Comma = 0x2B,
ANSI_Slash = 0x2C,
ANSI_N = 0x2D,
ANSI_M = 0x2E,
ANSI_Period = 0x2F,
ANSI_Grave = 0x32,
ANSI_KeypadDecimal = 0x41,
ANSI_KeypadMultiply = 0x43,
ANSI_KeypadPlus = 0x45,
ANSI_KeypadClear = 0x47,
ANSI_KeypadDivide = 0x4B,
ANSI_KeypadEnter = 0x4C,
ANSI_KeypadMinus = 0x4E,
ANSI_KeypadEquals = 0x51,
ANSI_Keypad0 = 0x52,
ANSI_Keypad1 = 0x53,
ANSI_Keypad2 = 0x54,
ANSI_Keypad3 = 0x55,
ANSI_Keypad4 = 0x56,
ANSI_Keypad5 = 0x57,
ANSI_Keypad6 = 0x58,
ANSI_Keypad7 = 0x59,
ANSI_Keypad8 = 0x5B,
ANSI_Keypad9 = 0x5C,
Return = 0x24,
Tab = 0x30,
Space = 0x31,
Delete = 0x33,
Escape = 0x35,
Command = 0x37,
Shift = 0x38,
CapsLock = 0x39,
Option = 0x3A,
Control = 0x3B,
RightShift = 0x3C,
RightOption = 0x3D,
RightControl = 0x3E,
Function = 0x3F,
F17 = 0x40,
VolumeUp = 0x48,
VolumeDown = 0x49,
Mute = 0x4A,
F18 = 0x4F,
F19 = 0x50,
F20 = 0x5A,
F5 = 0x60,
F6 = 0x61,
F7 = 0x62,
F3 = 0x63,
F8 = 0x64,
F9 = 0x65,
F11 = 0x67,
F13 = 0x69,
F16 = 0x6A,
F14 = 0x6B,
F10 = 0x6D,
F12 = 0x6F,
F15 = 0x71,
Help = 0x72,
Home = 0x73,
PageUp = 0x74,
ForwardDelete = 0x75,
F4 = 0x76,
End = 0x77,
F2 = 0x78,
PageDown = 0x79,
F1 = 0x7A,
LeftArrow = 0x7B,
RightArrow = 0x7C,
DownArrow = 0x7D,
UpArrow = 0x7E,
}
--#endregion Tinkr.Objects
--#region Tinkr.Utility
---@class Tinkr.Utility
local TinkrUtility = {
---Bring a window to the foreground
---@return boolean
BringWindowToForeground = function() end,
---Crash a client
---@return nil
Crash = function() end,
---Runs lua code in a unprotected environment.
---@param code string
---@param debugName? string
Eval = function(code, debugName) end,
---Calculates the distance in C land quicker than it can be done in Lua.
---@param x1 number
---@param y1 number
---@param z1 number
---@param x2 number
---@param y2 number
---@param z2 number
---@return number
FastDistance = function(x1, y1, z1, x2, y2, z2) end,
---Calculates the 2D distance in C land quicker than it can be done in Lua.
---@param x1 number
---@param y1 number
---@param x2 number
---@param y2 number
---@return number
FastDistance2D = function(x1, y1, x2, y2) end,
---Returns the architecture of a tinkr build
---@return 'arm64' | 'x86_64'
GetArchitecture = function() end,
---Gets information about an auction (this is classic only).
---@param type 'list' | 'bidder' | 'owner'
---@param index number
---@return number itemID, number expiresAt, string expiresAtString, number currentBid, string currentBidString, number buyout, string buyoutString, string creator
GetAuctionInfo = function(type, index) end,
---Gets the last time a game tick happened.
---@return number
GetGameTick = function() end,
---Get the state of a key
---@param key Tinkr.KeyCodes
---@return boolean
GetKeyState = function(key) end,
---GetLastHardwareActionTime returns the last time your game client received a hardware interaction
---@return number
GetLastHardwareActionTime = function() end,
---Check if a window is in the foreground
---@return boolean
GetWindowStatus = function() end,
---Check if a the player is in the game world
---@return boolean
IsInGame = function() end,
---Do JSON decoding in C land.
---@param string string
---@return table
JsonDecode = function(string) end,
---Do JSON encoding in C land.
---@param table table
---@return string
JsonEncode = function(table) end,
---Do BSON decoding in C land.
---@param data string
---@return table
BsonDecode = function(data) end,
---Do BSON encoding in C land.
---@param table table
---@return string
BsonEncode = function(table) end,
---Kill a client
Kill = function() end,
---Log output to the console
---@param str string
Log = function(str) end,
---Rotate a vector (x: number, y: number, z: number) and apply a distance calculation to it.
---@param x number
---@param y number
---@param z number
---@param theta number
---@param distance number
---@return number x, number y, number z
RotateVector = function(x, y, z, theta, distance) end,
---Returns the world position of a screen coordinate.
---@param x number
---@param y number
---@param hitFlags CollisionFlags
---@return number x, number y, number z
ScreenToWorld = function(x, y, hitFlags) end,
---Force a frame to not be forbidden, allowing lua interactions on it
---@param frame Frame
---@return boolean
SetForbiddenFrame = function(frame) end,
---SetLastHardwareActionTime updates the last input interaction time in the game client, mainly used to prevent AFK behaviors
---@param time number
SetLastHardwareActionTime = function(time) end,
---Returns the position of the camera.
---@param x1 number
---@param y1 number
---@param z1 number
---@param x2 number
---@param y2 number
---@param z2 number
---@param hitFlags integer
---@return number x, number y, number z
TraceLine = function(x1, y1, z1, x2, y2, z2, hitFlags) end,
---Returns the screen position of a world coordinate.
---@param x number
---@param y number
---@param z number
---@return number x, number y
WorldToScreen = function(x, y, z) end,
---Check if tinkr would have injected lua into the client (Sanity check mainly, if it would return false it wouldn't exist (probably))
---@return boolean
WouldInject = function() end,
---Zlip compression in C land.
---@param string string
---@param level number
---@return string
Deflate = function(string, level) end,
---Zlib compression in C land.
---@param data string
---@return string
Inflate = function(data) end,
---loadstring but without lua taint.
---@param code string
---@return function
loadstringsecure = function(code) end,
}
BringWindowToForeground = TinkrUtility.BringWindowToForeground
BsonDecode = TinkrUtility.BsonDecode
BsonEncode = TinkrUtility.BsonEncode
Crash = TinkrUtility.Crash
Deflate = TinkrUtility.Deflate
Eval = TinkrUtility.Eval
FastDistance = TinkrUtility.FastDistance
FastDistance2D = TinkrUtility.FastDistance2D
GetArchitecture = TinkrUtility.GetArchitecture
GetAuctionInfo = TinkrUtility.GetAuctionInfo
GetGameTick = TinkrUtility.GetGameTick
GetKeyState = TinkrUtility.GetKeyState
GetLastHardwareActionTime = TinkrUtility.GetLastHardwareActionTime
GetWindowStatus = TinkrUtility.GetWindowStatus
Inflate = TinkrUtility.Inflate
IsInGame = TinkrUtility.IsInGame
JsonDecode = TinkrUtility.JsonDecode
JsonEncode = TinkrUtility.JsonEncode
Kill = TinkrUtility.Kill
Log = TinkrUtility.Log
RotateVector = TinkrUtility.RotateVector
ScreenToWorld = TinkrUtility.ScreenToWorld
SetForbiddenFrame = TinkrUtility.SetForbiddenFrame
SetLastHardwareActionTime = TinkrUtility.SetLastHardwareActionTime
TraceLine = TinkrUtility.TraceLine
WorldToScreen = TinkrUtility.WorldToScreen
WouldInject = TinkrUtility.WouldInject
loadstringsecure = TinkrUtility.loadstringsecure
--#endregion Tinkr.Utility
---@class Tinkr.Routine
---@field active_routine boolean
---@field enabled boolean
---@field timer boolean
---@field update_rate number
---@field Disable fun()
---@field Enable fun()
---@field Inject fun(metatable: metatable, libName?: string, Class?: Tinkr.Routine.Classes )
---@field InjectLib fun(...:any)
---@field InjectLibrary fun(...:any)
---@field LoadLib fun(...: any)
---@field LoadLibrary fun(...: any)
---@field RegisterLib fun(...: any)
---@field RegisterLibrary fun(...: any)
---@field RegisterRoutine fun(callback: fun(...:any), class: Tinkr.Routine.Classes, spec: number)
---@field RegisterSpellBook fun(spellbook: table, class: Tinkr.Routine.Classes)
---@field LoadForSpec fun()
---@field LoadRoutine fun(id: number)
---@field RegisterLocalRoutines fun()
---@field RegisterLocalSpellbooks fun()
---@field RegisterLocal fun()
---@field Toggle fun(state: boolean)
local TinkrRoutine = {
---@enum Tinkr.Routine.Classes
Classes = {
Warrior = 1,
Paladin = 2,
Hunter = 3,
Rogue = 4,
Priest = 5,
DeathKnight = 6,
Shaman = 7,
Mage = 8,
Warlock = 9,
Monk = 10,
Druid = 11,
DemonHunter = 12,
Evoker = 13,
Shared = 999
},
Exports = {},
RoutineCache = {},
Specs = {
Warrior = {
Arms = 71,
Fury = 72,
Protection = 73
},
Paladin = {
Holy = 65,
Protection = 66,
Retribution = 70
},
Hunter = {
BeastMastery = 253,
Marksmanship = 254,
Survival = 255
},
Rogue = {
Assassination = 259,
Outlaw = 260,
Subtlety = 261
},
Priest = {
Discipline = 256,
Holy = 257,
Shadow = 258
},
DeathKnight = {
Blood = 250,
Frost = 251,
Unholy = 252
},
Shaman = {
Elemental = 262,
Enhancement = 263,
Restoration = 264
},
Mage = {
Arcane = 62,
Fire = 63,
Frost = 64
},
Warlock = {
Affliction = 265,
Demonology = 266,
Destruction = 267
},
Monk = {
Brewmaster = 268,
Mistweaver = 270,
Windwalker = 269
},
Druid = {
Balance = 102,
Feral = 103,
Guardian = 104,
Restoration = 105
},
DemonHunter = {
Havoc = 577,
Vengeance = 581
},
Evoker = {
Devastation = 1467,
Preservation = 1468,
},
},
export_cache = {},
injected_libs = {},
routine_data = {},
routine_hooks = {},
routines = {},
spellbooks = {},
}
---@class Tinkr : Tinkr.Utility
---@field classic boolean
---@field dragonflight boolean
---@field era boolean
---@field retail boolean
---@field shadowlands boolean
---@field init_at 0
---@field build string
---@field color string
---@field name "Tinkr"
---@field name_locale string
---@field release "release"
---@field Routine Tinkr.Routine
---@field Util Tinkr.Util
local Tinkr = {
Common = {},
---@param path string
---@return string, string
resolvePath = function(path) end,
Automator = {},
Commands = {},
globals = {},
modules = {},
}
AuraUtil_ForEachAura = AuraUtil.ForEachAura
C_UnitAuras_GetAuraDataByAuraInstanceID = C_UnitAuras.GetAuraDataByAuraInstanceID