---@meta ---@diagnostic disable: lowercase-global --[[ enums.lua ]] ---@alias ac.DebugCollectMode ---| `ac.DebugCollectMode.Average` @Value: 0. ---| `ac.DebugCollectMode.Minimum` @Value: 1. ---| `ac.DebugCollectMode.Maximum` @Value: 2. ac.DebugCollectMode = { Average = 0, ---@type ac.DebugCollectMode #Value: 0. Minimum = 1, ---@type ac.DebugCollectMode #Value: 1. Maximum = 2, ---@type ac.DebugCollectMode #Value: 2. } ---@alias ac.INIFormat ---| `ac.INIFormat.Default` @AC format: no quotes, “[” in value begins a new section, etc. ---| `ac.INIFormat.DefaultAcd` @AC format, but also with support for reading files from `data.acd` (makes difference only for `ac.INIConfig.load()`). ---| `ac.INIFormat.Extended` @Quotes are allowed, comma-separated value turns into multiple values (for vectors and lists), repeated keys replace previous values. ---| `ac.INIFormat.ExtendedIncludes` @Same as CSP, but also with support for INIpp expressions and includes. ac.INIFormat = { Default = 0, ---@type ac.INIFormat #AC format: no quotes, “[” in value begins a new section, etc. DefaultAcd = 1, ---@type ac.INIFormat #AC format, but also with support for reading files from `data.acd` (makes difference only for `ac.INIConfig.load()`). Extended = 10, ---@type ac.INIFormat #Quotes are allowed, comma-separated value turns into multiple values (for vectors and lists), repeated keys replace previous values. ExtendedIncludes = 11, ---@type ac.INIFormat #Same as CSP, but also with support for INIpp expressions and includes. } ---@alias ac.LightType ---| `ac.LightType.Regular` @Value: 1. ---| `ac.LightType.Line` @Value: 2. ac.LightType = { Regular = 1, ---@type ac.LightType #Value: 1. Line = 2, ---@type ac.LightType #Value: 2. } ---@alias ac.IncludeType ---| `ac.IncludeType.None` @Value: 0. ---| `ac.IncludeType.Car` @Value: 1. ---| `ac.IncludeType.Track` @Value: 2. ac.IncludeType = { None = 0, ---@type ac.IncludeType #Value: 0. Car = 1, ---@type ac.IncludeType #Value: 1. Track = 2, ---@type ac.IncludeType #Value: 2. } ---@alias ac.FogAlgorithm ---| `ac.FogAlgorithm.Original` @Value: 0. ---| `ac.FogAlgorithm.New` @Value: 1. ac.FogAlgorithm = { Original = 0, ---@type ac.FogAlgorithm #Value: 0. New = 1, ---@type ac.FogAlgorithm #Value: 1. } ---@alias ac.SurfaceType ---| `ac.SurfaceType.Grass` @Value: 0. ---| `ac.SurfaceType.Dirt` @Value: 1. ---| `ac.SurfaceType.Snow` @-Could also be ice. ---| `ac.SurfaceType.Default` @Value: 255. ac.SurfaceType = { Grass = 0, ---@type ac.SurfaceType #Value: 0. Dirt = 1, ---@type ac.SurfaceType #Value: 1. Snow = 2, ---@type ac.SurfaceType #-Could also be ice. Default = 255, ---@type ac.SurfaceType #Value: 255. } ---@alias ac.ShadowsState ---| `ac.ShadowsState.Off` @Value: 0. ---| `ac.ShadowsState.On` @Value: 1. ---| `ac.ShadowsState.EverythingShadowed` @Value: 2. ac.ShadowsState = { Off = 0, ---@type ac.ShadowsState #Value: 0. On = 1, ---@type ac.ShadowsState #Value: 1. EverythingShadowed = 2, ---@type ac.ShadowsState #Value: 2. } ---@alias ac.TextureState ---| `ac.TextureState.Empty` @Value: 0. ---| `ac.TextureState.Loading` @Value: 1. ---| `ac.TextureState.Failed` @Value: 2. ---| `ac.TextureState.Ready` @Value: 3. ac.TextureState = { Empty = 0, ---@type ac.TextureState #Value: 0. Loading = 1, ---@type ac.TextureState #Value: 1. Failed = 2, ---@type ac.TextureState #Value: 2. Ready = 3, ---@type ac.TextureState #Value: 3. } ---@alias ac.CameraMode ---| `ac.CameraMode.Cockpit` @First person view. ---| `ac.CameraMode.Car` @F6 camera. ---| `ac.CameraMode.Drivable` @Chase/bonnet/bumper/dash cameras. ---| `ac.CameraMode.Track` @Replay camera. ---| `ac.CameraMode.Helicopter` @Moving replay camera. ---| `ac.CameraMode.OnBoardFree` @F5 camera. ---| `ac.CameraMode.Free` @F7 camera. ---| `ac.CameraMode.Deprecated` @Value: 7. ---| `ac.CameraMode.ImageGeneratorCamera` @Value: 8. ---| `ac.CameraMode.Start` @Starting camera. ac.CameraMode = { Cockpit = 0, ---@type ac.CameraMode #First person view. Car = 1, ---@type ac.CameraMode #F6 camera. Drivable = 2, ---@type ac.CameraMode #Chase/bonnet/bumper/dash cameras. Track = 3, ---@type ac.CameraMode #Replay camera. Helicopter = 4, ---@type ac.CameraMode #Moving replay camera. OnBoardFree = 5, ---@type ac.CameraMode #F5 camera. Free = 6, ---@type ac.CameraMode #F7 camera. Deprecated = 7, ---@type ac.CameraMode #Value: 7. ImageGeneratorCamera = 8, ---@type ac.CameraMode #Value: 8. Start = 9, ---@type ac.CameraMode #Starting camera. } ---@alias ac.DrivableCamera ---| `ac.DrivableCamera.Chase` @Value: 0. ---| `ac.DrivableCamera.Chase2` @Value: 1. ---| `ac.DrivableCamera.Bonnet` @Value: 2. ---| `ac.DrivableCamera.Bumper` @Value: 3. ---| `ac.DrivableCamera.Dash` @Value: 4. ac.DrivableCamera = { Chase = 0, ---@type ac.DrivableCamera #Value: 0. Chase2 = 1, ---@type ac.DrivableCamera #Value: 1. Bonnet = 2, ---@type ac.DrivableCamera #Value: 2. Bumper = 3, ---@type ac.DrivableCamera #Value: 3. Dash = 4, ---@type ac.DrivableCamera #Value: 4. } ---Wheel index (from 0 to 3) or a special value for wheel mask. ---@alias ac.Wheel ---| `ac.Wheel.FrontLeft` @Value: 0. ---| `ac.Wheel.FrontRight` @Value: 1. ---| `ac.Wheel.RearLeft` @Value: 2. ---| `ac.Wheel.RearRight` @Value: 3. ---| `ac.Wheel.Front` @Value: 12. ---| `ac.Wheel.Rear` @Value: 48. ---| `ac.Wheel.Left` @Value: 20. ---| `ac.Wheel.Right` @Value: 40. ---| `ac.Wheel.All` @Value: 60. ac.Wheel = { FrontLeft = 0, ---@type ac.Wheel #Value: 0. FrontRight = 1, ---@type ac.Wheel #Value: 1. RearLeft = 2, ---@type ac.Wheel #Value: 2. RearRight = 3, ---@type ac.Wheel #Value: 3. Front = 12, ---@type ac.Wheel #Value: 12. Rear = 48, ---@type ac.Wheel #Value: 48. Left = 20, ---@type ac.Wheel #Value: 20. Right = 40, ---@type ac.Wheel #Value: 40. All = 60, ---@type ac.Wheel #Value: 60. } ---@alias ac.MirrorPieceRole ---| `ac.MirrorPieceRole.None` @Value: 0. ---| `ac.MirrorPieceRole.Top` @Value: 1. ---| `ac.MirrorPieceRole.Left` @Value: 2. ---| `ac.MirrorPieceRole.Right` @Value: 4. ac.MirrorPieceRole = { None = 0, ---@type ac.MirrorPieceRole #Value: 0. Top = 1, ---@type ac.MirrorPieceRole #Value: 1. Left = 2, ---@type ac.MirrorPieceRole #Value: 2. Right = 4, ---@type ac.MirrorPieceRole #Value: 4. } ---@alias ac.MirrorPieceFlip ---| `ac.MirrorPieceFlip.None` @Value: 0. ---| `ac.MirrorPieceFlip.Horizontal` @Value: 1. ---| `ac.MirrorPieceFlip.Vertical` @Value: 2. ---| `ac.MirrorPieceFlip.Both` @Value: 3. ac.MirrorPieceFlip = { None = 0, ---@type ac.MirrorPieceFlip #Value: 0. Horizontal = 1, ---@type ac.MirrorPieceFlip #Value: 1. Vertical = 2, ---@type ac.MirrorPieceFlip #Value: 2. Both = 3, ---@type ac.MirrorPieceFlip #Value: 3. } ---@alias ac.MirrorMonitorType ---| `ac.MirrorMonitorType.TN` @Oldschool displays with a lot of color distortion. ---| `ac.MirrorMonitorType.VA` @Medium tier, less color distortion. ---| `ac.MirrorMonitorType.IPS` @Almost no color distortion. ac.MirrorMonitorType = { TN = 0, ---@type ac.MirrorMonitorType #Oldschool displays with a lot of color distortion. VA = 2, ---@type ac.MirrorMonitorType #Medium tier, less color distortion. IPS = 1, ---@type ac.MirrorMonitorType #Almost no color distortion. } ---@alias ac.WeatherType ---| `ac.WeatherType.LightThunderstorm` @Value: 0. ---| `ac.WeatherType.Thunderstorm` @Value: 1. ---| `ac.WeatherType.HeavyThunderstorm` @Value: 2. ---| `ac.WeatherType.LightDrizzle` @Value: 3. ---| `ac.WeatherType.Drizzle` @Value: 4. ---| `ac.WeatherType.HeavyDrizzle` @Value: 5. ---| `ac.WeatherType.LightRain` @Value: 6. ---| `ac.WeatherType.Rain` @Value: 7. ---| `ac.WeatherType.HeavyRain` @Value: 8. ---| `ac.WeatherType.LightSnow` @Value: 9. ---| `ac.WeatherType.Snow` @Value: 10. ---| `ac.WeatherType.HeavySnow` @Value: 11. ---| `ac.WeatherType.LightSleet` @Value: 12. ---| `ac.WeatherType.Sleet` @Value: 13. ---| `ac.WeatherType.HeavySleet` @Value: 14. ---| `ac.WeatherType.Clear` @Value: 15. ---| `ac.WeatherType.FewClouds` @Value: 16. ---| `ac.WeatherType.ScatteredClouds` @Value: 17. ---| `ac.WeatherType.BrokenClouds` @Value: 18. ---| `ac.WeatherType.OvercastClouds` @Value: 19. ---| `ac.WeatherType.Fog` @Value: 20. ---| `ac.WeatherType.Mist` @Value: 21. ---| `ac.WeatherType.Smoke` @Value: 22. ---| `ac.WeatherType.Haze` @Value: 23. ---| `ac.WeatherType.Sand` @Value: 24. ---| `ac.WeatherType.Dust` @Value: 25. ---| `ac.WeatherType.Squalls` @Value: 26. ---| `ac.WeatherType.Tornado` @Value: 27. ---| `ac.WeatherType.Hurricane` @Value: 28. ---| `ac.WeatherType.Cold` @Value: 29. ---| `ac.WeatherType.Hot` @Value: 30. ---| `ac.WeatherType.Windy` @Value: 31. ---| `ac.WeatherType.Hail` @Value: 32. ac.WeatherType = { LightThunderstorm = 0, ---@type ac.WeatherType #Value: 0. Thunderstorm = 1, ---@type ac.WeatherType #Value: 1. HeavyThunderstorm = 2, ---@type ac.WeatherType #Value: 2. LightDrizzle = 3, ---@type ac.WeatherType #Value: 3. Drizzle = 4, ---@type ac.WeatherType #Value: 4. HeavyDrizzle = 5, ---@type ac.WeatherType #Value: 5. LightRain = 6, ---@type ac.WeatherType #Value: 6. Rain = 7, ---@type ac.WeatherType #Value: 7. HeavyRain = 8, ---@type ac.WeatherType #Value: 8. LightSnow = 9, ---@type ac.WeatherType #Value: 9. Snow = 10, ---@type ac.WeatherType #Value: 10. HeavySnow = 11, ---@type ac.WeatherType #Value: 11. LightSleet = 12, ---@type ac.WeatherType #Value: 12. Sleet = 13, ---@type ac.WeatherType #Value: 13. HeavySleet = 14, ---@type ac.WeatherType #Value: 14. Clear = 15, ---@type ac.WeatherType #Value: 15. FewClouds = 16, ---@type ac.WeatherType #Value: 16. ScatteredClouds = 17, ---@type ac.WeatherType #Value: 17. BrokenClouds = 18, ---@type ac.WeatherType #Value: 18. OvercastClouds = 19, ---@type ac.WeatherType #Value: 19. Fog = 20, ---@type ac.WeatherType #Value: 20. Mist = 21, ---@type ac.WeatherType #Value: 21. Smoke = 22, ---@type ac.WeatherType #Value: 22. Haze = 23, ---@type ac.WeatherType #Value: 23. Sand = 24, ---@type ac.WeatherType #Value: 24. Dust = 25, ---@type ac.WeatherType #Value: 25. Squalls = 26, ---@type ac.WeatherType #Value: 26. Tornado = 27, ---@type ac.WeatherType #Value: 27. Hurricane = 28, ---@type ac.WeatherType #Value: 28. Cold = 29, ---@type ac.WeatherType #Value: 29. Hot = 30, ---@type ac.WeatherType #Value: 30. Windy = 31, ---@type ac.WeatherType #Value: 31. Hail = 32, ---@type ac.WeatherType #Value: 32. } ---@alias ac.TonemapFunction ---| `ac.TonemapFunction.Linear` @Simple linear mapping. ---| `ac.TonemapFunction.LinearClamped` @Linear mapping (LDR clamp). ---| `ac.TonemapFunction.Sensitometric` @Simple simulation of response of film, CCD, etc., recommended. ---| `ac.TonemapFunction.Reinhard` @Reinhard. ---| `ac.TonemapFunction.ReinhardLum` @Saturation retention type Reinhard tone map function. ---| `ac.TonemapFunction.Log` @Tone map function for the logarithmic space. ---| `ac.TonemapFunction.LogLum` @Saturation retention type logarithmic space tone map function. ---| `ac.TonemapFunction.ACES` @ACES. ---| `ac.TonemapFunction.Uchimura` @GT-like by Uchimura. ---| `ac.TonemapFunction.RomBinDaHouse` @Tonemapping by RomBinDaHouse. ---| `ac.TonemapFunction.Lottes` @Tonemapping by Lottes. ---| `ac.TonemapFunction.Uncharted` @Tonemapping used in Uncharted. ---| `ac.TonemapFunction.Unreal` @Tonemapping commonly used in UE. ---| `ac.TonemapFunction.Filmic` @Filmic tonemapping. ---| `ac.TonemapFunction.ReinhardWp` @White-preserving Reinhard. ---| `ac.TonemapFunction.Juicy` @Experimental, better preserving saturation. ---| `ac.TonemapFunction.AgX` @Might be the best one, based on https://iolite-engine.com/blog_posts/minimal_agx_implementation. ac.TonemapFunction = { Linear = 0, ---@type ac.TonemapFunction #Simple linear mapping. LinearClamped = 1, ---@type ac.TonemapFunction #Linear mapping (LDR clamp). Sensitometric = 2, ---@type ac.TonemapFunction #Simple simulation of response of film, CCD, etc., recommended. Reinhard = 3, ---@type ac.TonemapFunction #Reinhard. ReinhardLum = 4, ---@type ac.TonemapFunction #Saturation retention type Reinhard tone map function. Log = 5, ---@type ac.TonemapFunction #Tone map function for the logarithmic space. LogLum = 6, ---@type ac.TonemapFunction #Saturation retention type logarithmic space tone map function. ACES = 7, ---@type ac.TonemapFunction #ACES. Uchimura = 8, ---@type ac.TonemapFunction #GT-like by Uchimura. RomBinDaHouse = 9, ---@type ac.TonemapFunction #Tonemapping by RomBinDaHouse. Lottes = 10, ---@type ac.TonemapFunction #Tonemapping by Lottes. Uncharted = 11, ---@type ac.TonemapFunction #Tonemapping used in Uncharted. Unreal = 12, ---@type ac.TonemapFunction #Tonemapping commonly used in UE. Filmic = 13, ---@type ac.TonemapFunction #Filmic tonemapping. ReinhardWp = 14, ---@type ac.TonemapFunction #White-preserving Reinhard. Juicy = 15, ---@type ac.TonemapFunction #Experimental, better preserving saturation. AgX = 16, ---@type ac.TonemapFunction #Might be the best one, based on https://iolite-engine.com/blog_posts/minimal_agx_implementation. } ---@alias ac.FolderID ---| `ac.FolderID.AppData` @…/AppData. ---| `ac.FolderID.Documents` @…/Documents. ---| `ac.FolderID.Root` @…/SteamApps/common/assettocorsa. ---| `ac.FolderID.Cfg` @…/Documents/Assetto Corsa/cfg. ---| `ac.FolderID.Logs` @…/Documents/Assetto Corsa/logs. ---| `ac.FolderID.Screenshots` @…/Documents/Assetto Corsa/screens. ---| `ac.FolderID.Replays` @…/Documents/Assetto Corsa/replay. ---| `ac.FolderID.ReplaysTemp` @…/Documents/Assetto Corsa/replay/temp. ---| `ac.FolderID.UserSetups` @…/Documents/Assetto Corsa/setups. ---| `ac.FolderID.PPFilters` @…/SteamApps/common/assettocorsa/system/cfg/ppfilters. ---| `ac.FolderID.ContentCars` @…/SteamApps/common/assettocorsa/content/cars. ---| `ac.FolderID.ContentDrivers` @…/SteamApps/common/assettocorsa/content/drivers. ---| `ac.FolderID.ContentTracks` @…/SteamApps/common/assettocorsa/content/tracks. ---| `ac.FolderID.ExtRoot` @…/SteamApps/common/assettocorsa/extension. ---| `ac.FolderID.ExtCfgSys` @…/SteamApps/common/assettocorsa/extension/config. ---| `ac.FolderID.ExtCfgUser` @…/Documents/Assetto Corsa/cfg/extension. ---| `ac.FolderID.ExtTextures` @…/SteamApps/common/assettocorsa/extension/textures. ---| `ac.FolderID.ACApps` @…/SteamApps/common/assettocorsa/apps. ---| `ac.FolderID.ACAppsLua` @…/SteamApps/common/assettocorsa/apps/lua. ---| `ac.FolderID.ACAppsPython` @…/SteamApps/common/assettocorsa/apps/python. ---| `ac.FolderID.ExtCfgState` @…/Documents/Assetto Corsa/cfg/extension/state (changing configs there does not trigger any live reloads). ---| `ac.FolderID.ContentFonts` @…/SteamApps/common/assettocorsa/content/fonts. ---| `ac.FolderID.RaceResults` @…/Documents/Assetto Corsa/out. ---| `ac.FolderID.AppDataLocal` @…/AppData/Local. ---| `ac.FolderID.ExtFonts` @…/SteamApps/common/assettocorsa/extension/fonts. ---| `ac.FolderID.ACDocuments` @…/Documents/Assetto Corsa. ---| `ac.FolderID.ExtLua` @…/SteamApps/common/assettocorsa/extension/lua. ---| `ac.FolderID.ExtCache` @…/SteamApps/common/assettocorsa/cache. ---| `ac.FolderID.AppDataTemp` @…/AppData/Local/Temp. ---| `ac.FolderID.ExtInternal` @…/SteamApps/common/assettocorsa/extension/internal. ---| `ac.FolderID.ScriptOrigin` @Main script directory. ---| `ac.FolderID.ScriptConfig` @…/Documents/Assetto Corsa/cfg/extension/state/lua//