-- TEN 1.11.1.1 API -- This file is auto-generated and for IntelliSense purposes only! -- Any changes made here will not be reflected in the engine. ---@meta ---View module for Tomb Engine ---@class View View = {} ---Constants for sprite align modes. ---To be used with View.DisplaySprite class. ---@enum AlignMode AlignMode = { ---Top left alignment. TOP_LEFT = "TOP_LEFT", ---Center top alignment. TOP_CENTER = "TOP_CENTER", ---Top right alignment. TOP_RIGHT = "TOP_RIGHT", ---Center left alignment. CENTER_LEFT = "CENTER_LEFT", ---Center alignment. CENTER = "CENTER", ---Center right alignment. CENTER_RIGHT = "CENTER_RIGHT", ---Bottom left alignment. BOTTOM_LEFT = "BOTTOM_LEFT", ---Center bottom alignment. BOTTOM_CENTER = "BOTTOM_CENTER", ---Bottom right alignment. BOTTOM_RIGHT = "BOTTOM_RIGHT", } ---Module-prefixed alias for AlignMode View.AlignMode = AlignMode ---Constants for the type of the Camera. ---To be used with View.GetCameraType function. ---@enum CameraType CameraType = { ---Standard in-game camera when weapons are holstered. NORMAL = "NORMAL", ---In-game camera when weapons are unholstered. COMBAT = "COMBAT", ---Classic fixed camera. FIXED = "FIXED", ---Look camera. LOOK = "LOOK", ---Flyby or tracking camera. FLYBY = "FLYBY", ---Binocular camera. BINOCULARS = "BINOCULARS", ---Lasersight camera. LASERSIGHT = "LASERSIGHT", } ---Module-prefixed alias for CameraType View.CameraType = CameraType ---Constants for the post-process effects to apply. ---To be used with View.SetPostProcessMode function. ---@enum PostProcessMode PostProcessMode = { ---No postprocess effect. NONE = "NONE", ---Black & white effect. MONOCHROME = "MONOCHROME", ---Negative image effect. NEGATIVE = "NEGATIVE", ---Similar to negative effect, but with different color operation. EXCLUSION = "EXCLUSION", } ---Module-prefixed alias for PostProcessMode View.PostProcessMode = PostProcessMode ---Constants for display sprite scale modes. ---To be used with View.DisplaySprite class. ---@enum ScaleMode ScaleMode = { ---Image will proportionally fit the whole image into the sprite surface. FIT = "FIT", ---Image will scale up proportionally and crop to fill all sprite surface. FILL = "FILL", ---Image will stretch according to sprite dimensions, not taking aspect ratio into consideration. STRETCH = "STRETCH", } ---Module-prefixed alias for ScaleMode View.ScaleMode = ScaleMode ---Represents the anchor points of a display element. ---@class DisplayAnchors ---@field TOP_LEFT Vec2 # Top-left anchor point in percent. ---@field TOP_CENTER Vec2 # Center-top anchor point in percent. ---@field TOP_RIGHT Vec2 # Top-right anchor point in percent. ---@field CENTER_LEFT Vec2 # Center-left anchor point in percent. ---@field CENTER Vec2 # Center anchor point in percent. ---@field CENTER_RIGHT Vec2 # Center-right anchor point in percent. ---@field BOTTOM_LEFT Vec2 # Bottom-left anchor point in percent. ---@field BOTTOM_CENTER Vec2 # Bottom-center anchor point in percent. ---@field BOTTOM_RIGHT Vec2 # Bottom-right anchor point in percent. DisplayAnchors = {} ---Module-prefixed alias for DisplayAnchors View.DisplayAnchors = DisplayAnchors ---Metafunction. ---Use tostring(anchors). ---@param This DisplayAnchors # DisplayAnchors. ---@return string # A string showing all anchor points. function DisplayAnchors:__tostring(This) end ---Constructor for DisplayAnchors ---@return DisplayAnchors # A new DisplayAnchors object. function DisplayAnchors.new() end ---Constructor for View.DisplayAnchors ---@return DisplayAnchors # A new DisplayAnchors object. function View.DisplayAnchors.new() end ---Constructor for DisplayAnchors (alias for DisplayAnchors.new) ---@return DisplayAnchors # A new DisplayAnchors object. function DisplayAnchors() end ---Constructor for View.DisplayAnchors (alias for View.DisplayAnchors.new) ---@return DisplayAnchors # A new DisplayAnchors object. function View.DisplayAnchors() end ---Represents a display item. ---Display item is a 3D model of any object available in the level that can be drawn in 2D screen space. ---@class DisplayItem DisplayItem = {} ---Module-prefixed alias for DisplayItem View.DisplayItem = DisplayItem ---Set the ambient color for all display items. ---@param color Color # New ambient color for all display items. function DisplayItem.SetAmbientLight(color) end ---Set the camera location. ---This single camera is used for all display items. ---@param pos Vec3 # New camera position. ---@param disableInterpolation boolean? # Disable interpolation to allow snap movements. (default: `false`) function DisplayItem.SetCameraPosition(pos, disableInterpolation) end ---Set the camera target location. ---@param pos Vec3 # New target camera position. ---@param disableInterpolation boolean? # Disable interpolation to allow snap movements. (default: `false`) function DisplayItem.SetTargetPosition(pos, disableInterpolation) end ---Set the field of view for all display items. ---@param fov number? # Field of view angle in degrees (clamped to [10, 170]). (default: `80`) ---@param disableInterpolation boolean? # Disable interpolation to allow snap movements. (default: `false`) function DisplayItem.SetFOV(fov, disableInterpolation) end ---Get the ambient color of all the display items. ---@return Color # Ambient color. function DisplayItem.GetAmbientLight() end ---Get the camera position. ---This single camera is used for all display items. ---@return Vec3 # Camera position for all display items. function DisplayItem.GetCameraPosition() end ---Get the position of the camera target. ---@return Vec3 # The camera target position for all of the display items. function DisplayItem.GetTargetPosition() end ---Get field of view angle for display items. ---@return number # Current FOV angle in degrees. function DisplayItem.GetFOV() end ---Reset the camera position, camera target position, and field of view. function DisplayItem.ResetCamera() end ---Create a DisplayItem object. ---@param objectID ObjID # Slot object ID. ---@param pos Vec3? # Position in 3D display space. (default: `Vec3(0, 0, 0)`) ---@param rot Rotation? # Rotation on the XYZ axes. (default: `Rotation(0, 0, 0)`) ---@param scale Vec3? # Visual scale. (default: `Vec3(1, 1, 1)`) ---@param meshBits integer? # Packed meshbits. (optional) ---@return DisplayItem # A new DisplayItem object. function DisplayItem.new(objectID, pos, rot, scale, meshBits) end ---Create a DisplayItem object. ---@param objectID ObjID # Slot object ID. ---@param pos Vec3? # Position in 3D display space. (default: `Vec3(0, 0, 0)`) ---@param rot Rotation? # Rotation on the XYZ axes. (default: `Rotation(0, 0, 0)`) ---@param scale Vec3? # Visual scale. (default: `Vec3(1, 1, 1)`) ---@param meshBits integer? # Packed meshbits. (optional) ---@return DisplayItem # A new DisplayItem object. function View.DisplayItem.new(objectID, pos, rot, scale, meshBits) end ---Change the display item's object ID. ---@param objectID ObjID # New slot object ID. function DisplayItem:SetObjectID(objectID) end ---Set the display item's position. ---@param pos Vec3 # New position. ---@param disableInterpolation boolean? # Disable interpolation to allow snap movements. (default: `false`) function DisplayItem:SetPosition(pos, disableInterpolation) end ---Set the display item's rotation. ---@param rot Rotation # New rotation. ---@param disableInterpolation boolean? # Disable interpolation to allow snap movements. (default: `false`) function DisplayItem:SetRotation(rot, disableInterpolation) end ---Set the display item's scale. ---@param scale Vec3 # New scale. ---@param disableInterpolation boolean? # Disable interpolation to allow snap movements. (default: `false`) function DisplayItem:SetScale(scale, disableInterpolation) end ---Set the display item's color. ---@param color Color # New color. ---@param disableInterpolation boolean? # Disable interpolation to allow snap color changes. (default: `false`) function DisplayItem:SetColor(color, disableInterpolation) end ---Set the packed mesh bits for the display item. ---Mesh bits represent the visibility of every mesh in a given display item. ---Can be used in advanced workflows, such as drawing a revolver with or without a lasersight. ---@param meshBits integer # Packed MeshBits to be set. function DisplayItem:SetMeshBits(meshBits) end ---Make the specified mesh of a display item visible or invisible. ---@param meshIndex integer # Mesh index. ---@param isVisible boolean # True to set visible, false to set invisible. function DisplayItem:SetMeshVisible(meshIndex, isVisible) end ---Set the display item's joint rotation. ---@param meshIndex integer # Joint index.. ---@param rot Rotation # New rotation. ---@param disableInterpolation boolean? # Disables interpolation to allow for snap movements. (default: `false`) function DisplayItem:SetJointRotation(meshIndex, rot, disableInterpolation) end ---Set the animation number of a display item. ---@param animNumber integer # Animation number to set. function DisplayItem:SetAnim(animNumber) end ---Set the frame number of a display item's current animation. ---This will set the specified animation to the given frame. ---The number of frames in an animation can be seen under the heading "End frame" in the WadTool animation editor. ---@param frameNumber integer # Frame number to set. function DisplayItem:SetFrame(frameNumber) end ---Retrieve the object ID from a display item. ---@return ObjID # Slot object ID. ---@return nil # If the display item does not exist. function DisplayItem:GetObjectID() end ---Get the display item's position. ---@return Vec3 # Position. ---@return nil # If the display item does not exist. function DisplayItem:GetPosition() end ---Get the display item's rotation. ---@return Rotation # Rotation. ---@return nil # If the display item does not exist. function DisplayItem:GetRotation() end ---Get the display item's scale. ---@return number # Scale. ---@return nil # If the display item does not exist. function DisplayItem:GetScale() end ---Get the display item's color. ---@return Color # Color. ---@return nil # If the display item does not exist. function DisplayItem:GetColor() end ---Get the visibility state of a specified mesh in the display item. ---@param index integer # Index of a mesh. ---@return boolean # Visibility status. ---@return boolean # False if the display item does not exist. function DisplayItem:GetMeshVisible(index) end ---Get the display item's joint rotation. ---@param meshIndex integer # Index of the joint to check. ---@return Rotation # Joint rotation. ---@return nil # If the display item does not exist. function DisplayItem:GetJointRotation(meshIndex) end ---Get the current animation number of a display item. ---This corresponds to the number shown in the item's animation list in WadTool. ---@return integer # Active animation number. ---@return nil # If the display item does not exist. function DisplayItem:GetAnim() end ---Get the current frame number of the active animation of a display item. ---@return integer # Current frame number of the active animation. ---@return nil # If the display item does not exist. function DisplayItem:GetFrame() end ---Get the end frame number of the display item's active animation. ---This is the "End Frame" set in WadTool for the animation.(). ---@return integer # End frame number of the active animation. ---@return nil # If the display item does not exist. function DisplayItem:GetEndFrame() end ---Get the projected 2D bounding box of the display item. ---Projects the display item into display space and returns two Vec2 values. ---@return Vec2 # center Projected center position in display space in percent. ---@return Vec2 # size The projected width/height in display space in percent. ---@return nil # If the display item does not exist or has no bounds. function DisplayItem:GetBounds() end ---Draw the display item in display space for the current frame. function DisplayItem:Draw() end ---Constructor function for DisplayItem (alias for DisplayItem.new) ---@param objectID ObjID # Slot object ID. ---@param pos Vec3? # Position in 3D display space. (default: `Vec3(0, 0, 0)`) ---@param rot Rotation? # Rotation on the XYZ axes. (default: `Rotation(0, 0, 0)`) ---@param scale Vec3? # Visual scale. (default: `Vec3(1, 1, 1)`) ---@param meshBits integer? # Packed meshbits. (optional) ---@return DisplayItem # A new DisplayItem object. function DisplayItem(objectID, pos, rot, scale, meshBits) end ---Constructor function for View.DisplayItem (alias for View.DisplayItem.new) ---@param objectID ObjID # Slot object ID. ---@param pos Vec3? # Position in 3D display space. (default: `Vec3(0, 0, 0)`) ---@param rot Rotation? # Rotation on the XYZ axes. (default: `Rotation(0, 0, 0)`) ---@param scale Vec3? # Visual scale. (default: `Vec3(1, 1, 1)`) ---@param meshBits integer? # Packed meshbits. (optional) ---@return DisplayItem # A new DisplayItem object. function View.DisplayItem(objectID, pos, rot, scale, meshBits) end ---Represents a display sprite. ---@class DisplaySprite DisplaySprite = {} ---Module-prefixed alias for DisplaySprite View.DisplaySprite = DisplaySprite ---Create a DisplaySprite object. ---@param objectID ObjID # ID of the sprite sequence object. ---@param index integer # Index of the sprite in the sequence. ---@param pos Vec2 # Display position in percent. ---@param rot number # Rotation in degrees. ---@param scale Vec2 # Horizontal and vertical scale in percent. Scaling is interpreted by the DisplaySpriteEnum.ScaleMode passed to the Draw() function call. ---@param color Color? # Color. (default: `Color(255, 255, 255)`) ---@return DisplaySprite # A new DisplaySprite object. function DisplaySprite.new(objectID, index, pos, rot, scale, color) end ---Create a DisplaySprite object. ---@param objectID ObjID # ID of the sprite sequence object. ---@param index integer # Index of the sprite in the sequence. ---@param pos Vec2 # Display position in percent. ---@param rot number # Rotation in degrees. ---@param scale Vec2 # Horizontal and vertical scale in percent. Scaling is interpreted by the DisplaySpriteEnum.ScaleMode passed to the Draw() function call. ---@param color Color? # Color. (default: `Color(255, 255, 255)`) ---@return DisplaySprite # A new DisplaySprite object. function View.DisplaySprite.new(objectID, index, pos, rot, scale, color) end ---Create a DisplaySprite object with a video image. ---Video should be played using View.PlayVideo function in a background mode. ---If no video is played, sprite will not show. ---@param pos Vec2 # Display position in percent. ---@param rot number # Rotation in degrees. ---@param scale Vec2 # Horizontal and vertical scale in percent. Scaling is interpreted by the DisplaySpriteEnum.ScaleMode passed to the Draw() function call. ---@param color Color? # Color. __Default: Color(255, 255, 255, 255)__ (optional) ---@return DisplaySprite # A new DisplaySprite object with attached video image. function DisplaySprite.new(pos, rot, scale, color) end ---Create a DisplaySprite object with a video image. ---Video should be played using View.PlayVideo function in a background mode. ---If no video is played, sprite will not show. ---@param pos Vec2 # Display position in percent. ---@param rot number # Rotation in degrees. ---@param scale Vec2 # Horizontal and vertical scale in percent. Scaling is interpreted by the DisplaySpriteEnum.ScaleMode passed to the Draw() function call. ---@param color Color? # Color. __Default: Color(255, 255, 255, 255)__ (optional) ---@return DisplaySprite # A new DisplaySprite object with attached video image. function View.DisplaySprite.new(pos, rot, scale, color) end ---Get the object ID of the sprite sequence object used by the display sprite. ---@return ObjID # Sprite sequence object ID. function DisplaySprite:GetObjectID() end ---Get the sprite ID in the sprite sequence object used by the display sprite. ---@return integer # Sprite ID in the sprite sequence object. Value __-1__ means that it is a background video, played using View.PlayVideo. function DisplaySprite:GetSpriteID() end ---Get the display position of the display sprite in percent. ---@return Vec2 # Display position in percent. function DisplaySprite:GetPosition() end ---Get the rotation of the display sprite in degrees. ---@return number # Rotation in degrees. function DisplaySprite:GetRotation() end ---Get the horizontal and vertical scale of the display sprite in percent. ---@return Vec2 # Horizontal and vertical scale in percent. function DisplaySprite:GetScale() end ---Get the color of the display sprite. ---@return Color # Color. function DisplaySprite:GetColor() end ---Get the anchors of the display sprite. ---Anchors are the vertices of the display sprite, which can be used to position other objects relative to it. ---@param alignMode AlignMode? # Alignment mode. (default: `DisplaySpriteAlignMode.Center`) ---@param scaleMode ScaleMode? # Scaling mode. (default: `DisplaySpriteScaleMode.Fit`) ---@return DisplayAnchors # An object containing the anchor points of the display sprite.
The object contains the following fields:
- `TOP_LEFT`
- `TOP_CENTER`
- `TOP_RIGHT`
- `CENTER_LEFT`
- `CENTER`
- `CENTER_RIGHT`
- `BOTTOM_RIGHT`
- `BOTTOM_CENTER`
- `BOTTOM_LEFT`
function DisplaySprite:GetAnchors(alignMode, scaleMode) end ---Set the sprite sequence object ID used by the display sprite. ---@param objectID ObjID # New sprite sequence object ID. function DisplaySprite:SetObjectID(objectID) end ---Set the sprite ID in the sprite sequence object used by the display sprite. ---@param spriteID integer # New sprite ID in the sprite sequence object. function DisplaySprite:SetSpriteID(spriteID) end ---Set the display position of the display sprite in percent. ---@param position Vec2 # New display position in percent. function DisplaySprite:SetPosition(position) end ---Set the rotation of the display sprite in degrees. ---@param rotation number # New rotation in degrees. function DisplaySprite:SetRotation(rotation) end ---Set the horizontal and vertical scale of the display sprite in percent. ---@param scale Vec2 # New horizontal and vertical scale in percent. function DisplaySprite:SetScale(scale) end ---Set the color of the display sprite. ---@param color Color # New color. function DisplaySprite:SetColor(color) end ---Draw the display sprite in display space for the current frame. ---@param priority integer? # Draw priority. Can be thought of as a layer, with higher values having precedence. Negative values will draw sprite above strings, while positive values will draw it under. (default: `0`) ---@param alignMode AlignMode? # Align mode interpreting an offset from the sprite's position. (default: `View.AlignMode.CENTER`) ---@param scaleMode ScaleMode? # Scale mode interpreting the display sprite's horizontal and vertical scale. (default: `View.ScaleMode.FIT`) ---@param blendMode BlendID? # Blend mode. (default: `Effects.BlendID.ALPHABLEND`) function DisplaySprite:Draw(priority, alignMode, scaleMode, blendMode) end ---Constructor function for DisplaySprite (alias for DisplaySprite.new) ---@param objectID ObjID # ID of the sprite sequence object. ---@param index integer # Index of the sprite in the sequence. ---@param pos Vec2 # Display position in percent. ---@param rot number # Rotation in degrees. ---@param scale Vec2 # Horizontal and vertical scale in percent. Scaling is interpreted by the DisplaySpriteEnum.ScaleMode passed to the Draw() function call. ---@param color Color? # Color. (default: `Color(255, 255, 255)`) ---@return DisplaySprite # A new DisplaySprite object. function DisplaySprite(objectID, index, pos, rot, scale, color) end ---@param pos Vec2 # Display position in percent. ---@param rot number # Rotation in degrees. ---@param scale Vec2 # Horizontal and vertical scale in percent. Scaling is interpreted by the DisplaySpriteEnum.ScaleMode passed to the Draw() function call. ---@param color Color? # Color. __Default: Color(255, 255, 255, 255)__ (optional) ---@return DisplaySprite # A new DisplaySprite object with attached video image. function DisplaySprite(pos, rot, scale, color) end ---Constructor function for View.DisplaySprite (alias for View.DisplaySprite.new) ---@param objectID ObjID # ID of the sprite sequence object. ---@param index integer # Index of the sprite in the sequence. ---@param pos Vec2 # Display position in percent. ---@param rot number # Rotation in degrees. ---@param scale Vec2 # Horizontal and vertical scale in percent. Scaling is interpreted by the DisplaySpriteEnum.ScaleMode passed to the Draw() function call. ---@param color Color? # Color. (default: `Color(255, 255, 255)`) ---@return DisplaySprite # A new DisplaySprite object. function View.DisplaySprite(objectID, index, pos, rot, scale, color) end ---@param pos Vec2 # Display position in percent. ---@param rot number # Rotation in degrees. ---@param scale Vec2 # Horizontal and vertical scale in percent. Scaling is interpreted by the DisplaySpriteEnum.ScaleMode passed to the Draw() function call. ---@param color Color? # Color. __Default: Color(255, 255, 255, 255)__ (optional) ---@return DisplaySprite # A new DisplaySprite object with attached video image. function View.DisplaySprite(pos, rot, scale, color) end ---Do a full-screen fade-in from black. ---@param speed number? # Speed in units per second. A value of 1 will make the fade take one second. (default: `1`) function View.FadeIn(speed) end ---Do a full-screen fade-to-black. ---The screen will remain black until a call to FadeIn. ---@param speed number? # Speed in units per second. A value of 1 will make the fade take one second. (default: `1`) function View.FadeOut(speed) end ---Animate black cinematic bars in from the top and bottom of the game window. ---@param height number? # Percentage of the screen to be covered. (default: `30`) ---@param speed number? # Speed in units per second. A value of 1 will make the animation take one second. (default: `1`) function View.SetCineBars(height, speed) end ---Set field of view. ---@param angle number # Angle in degrees (clamped to [10, 170]). function View.SetFOV(angle) end ---Get field of view. ---@return number # Current FOV angle in degrees. function View.GetFOV() end ---Shows the mode of the game camera. ---@return CameraType # Value used by the game camera. function View.GetCameraType() end ---Gets current camera position. ---@return Vec3 # Current camera position. function View.GetCameraPosition() end ---Gets current camera target. ---@return Vec3 # Current camera target. function View.GetCameraTarget() end ---Gets current room where camera is positioned. ---@return Room # Current room of the camera. function View.GetCameraRoom() end ---Sets the post-process effect mode, like negative or monochrome. ---@param effect PostProcessMode # Effect type to set. function View.SetPostProcessMode(effect) end ---Sets the post-process effect strength. ---@param strength number? # How strong the effect is. (default: `1`) function View.SetPostProcessStrength(strength) end ---Sets the post-process tint. ---@param tint Color # value to use. function View.SetPostProcessTint(tint) end ---Play a video file. ---File should be placed in the `FMV` folder. ---@param fileName string # Video file name. Can be provided without extension, if type is mp4, mkv, mov or avi. ---@param background boolean? # Play video in the background mode. In such case, video won't play in fullscreen, but must be shown using special animated texture type in Tomb Editor, or using View.DisplaySprite. (default: `false`) ---@param silent boolean? # Play video without sound. (default: `false`) ---@param loop boolean? # Play video in a loop. (default: `false`) function View.PlayVideo(fileName, background, silent, loop) end ---Stop the currently playing video. ---Only possible if video is playing in the background mode. function View.StopVideo() end ---Gets the currently playing video position. ---@return Time # Current video position. function View.GetVideoPosition() end ---Sets the currently playing video position. ---@param position Time # New video position. function View.SetVideoPosition(position) end ---Gets the dominant color for the current video frame. ---If no video is playing, returns black. ---@return Color # Dominant video color. function View.GetVideoDominantColor() end ---Checks if video is currently playing. ---@param name string? # Video file name. If provided, checks if the currently playing video file name is the same as the provided one. (optional) ---@return boolean # True if video is currently playing. function View.IsVideoPlaying(name) end ---Play a flyby sequence. ---@param seqID integer # Flyby sequence ID. function View.PlayFlyby(seqID) end ---Get a flyby sequence's position at a specified progress point in percent. ---@param seqID integer # Flyby sequence ID. ---@param progress number # Progress point in percent. Clamped to [0, 100]. ---@param loop boolean? # Smooth the position near start and end points, as if the sequence is looped. (optional) ---@return Vec3 # Position at the given progress point. function View.GetFlybyPosition(seqID, progress, loop) end ---Get a flyby sequence's rotation at a specified progress point in percent. ---@param seqID integer # Flyby sequence ID. ---@param progress number # Progress point in percent. Clamped to [0, 100]. ---@param loop boolean? # Smooth the position near start and end points, as if the sequence is looped. (optional) ---@return Rotation # Rotation at the given progress point. function View.GetFlybyRotation(seqID, progress, loop) end ---Reset object camera back to Lara and deactivate object camera. ---Can be used after Objects.Moveable.AttachObjCamera. function View.ResetObjCamera() end ---Flash screen. ---@param color Color? # Color. (default: `Color(255, 255, 255)`) ---@param speed number? # Speed in units per second. Value of 1 will make flash take one second. Clamped to [0.005, 1.0]. (default: `1`) function View.FlashScreen(color, speed) end ---Get the display resolution's aspect ratio. ---@return number # Display resolution's aspect ratio. function View.GetAspectRatio() end return View