diff --git a/library/export/always.lua b/library/export/always.lua index dba59c3..9370724 100644 --- a/library/export/always.lua +++ b/library/export/always.lua @@ -1,11 +1,161 @@ ---@meta + +--- ## PREREQUISITE +--- - Always available in Export environment. +--- ___ +---Returns the value of server.advanced.allow_object_export. +---___ +---@return boolean isAllowed Is object export allowed. +function LoIsObjectExportAllowed() end + + +--- ## PREREQUISITE +--- - Always available in Export environment. +--- ___ +---Returns the value of server.advanced.allow_sensor_export. +---___ +---@return boolean isAllowed Is sensor export allowed. +function LoIsSensorExportAllowed() end + + +--- ## PREREQUISITE +--- - Always available in Export environment. +--- ___ +---Returns the value of server.advanced.allow_ownship_export +---___ +---@return boolean isAllowed Is ownership export allowed. +function LoIsOwnshipExportAllowed() end + + +--- ## PREREQUISITE +--- - Always available in Export environment. +--- ___ +---Returns pilot name. +---___ +---@return string pilotName Pilot name. function LoGetPilotName() end -function LoGetAltitude() end -function LoGetNameByType() end -function LoGeoCoordinatesToLoCoordinates() end -function LoCoordinatesToGeoCoordinates() end + + +--- ## PREREQUISITE +--- - Always available in Export environment. +--- ___ +---Returns altitude above terrain surface in meters. +---___ +---@param x number x coord in meters. +---@param z number z coord in meters. +---@return number altitude Altitude above terrain in meters. +function LoGetAltitude(x, z) end + + +--- ## PREREQUISITE +--- - Always available in Export environment. +--- ___ +---Returns weapon name by given type. +---___ +---@param level1 integer Level 1 type. +---@param level2 integer Level 2 type. +---@param level3 integer Level 3 type. +---@param level4 integer Level 4 type. +---@return string name Name of weapon. +function LoGetNameByType(level1, level2, level3, level4) end + + +---Lo coordinates. +---@class (exact) LoCoordinates +---@field x number x coordinate. +---@field y number y coordinate. +---@field z number z coordinate. +LoCoordinates = {} + +--- ## PREREQUISITE +--- - Always available in Export environment. +--- ___ +---Converts GEO coordinates to Lo coordinates. +---___ +---@param longitude number GEO longitude. +---@param latitude number GEO latitude. +---@return LoCoordinates loCoordinates [LoCoordinates](lua://LoCoordinates) +function LoGeoCoordinatesToLoCoordinates(longitude, latitude) end + + +---Geo coordinates. +---@class (exact) GeoCoordinates +---@field longitude number Longitude. +---@field latitude number Latitude. +GeoCoordinates = {} + +--- ## PREREQUISITE +--- - Always available in Export environment. +--- ___ +---Converts Lo coordinates into GEO coordinates. +---___ +---@param x number DCS x coordinate in meters. +---@param z number DCS z coordinate in meters. +---@return GeoCoordinates geoCoordinates [GeoCoordinates](lua://GeoCoordinates) Converted GEO coordinates. +function LoLoCoordinatesToGeoCoordinates(x, z) end + + +---DCS version information. +---@class (exact) VersionInfo +---@field ProductName string Name of product. i.e. DCS +VersionInfo = { + --- Product version details. + --- - `[1]`: Major + --- - `[2]`: Minor + --- - `[3]`: Revision + --- - `[4]`: Build + ---@class (exact) ProductVersion + ---@field [1] integer Major version. + ---@field [2] integer Minor version. + ---@field [3] integer Revision number. + ---@field [4] integer Build number. + ProductVersion = {}, ---@diagnostic disable-line: inject-field + + --- File version details. + --- - `[1]`: Major + --- - `[2]`: Minor + --- - `[3]`: Revision + --- - `[4]`: Build + ---@class (exact) FileVersion + ---@field [1] integer Major version. + ---@field [2] integer Minor version. + ---@field [3] integer Revision number. + ---@field [4] integer Build number. + FileVersion = {} ---@diagnostic disable-line: inject-field +} + +--- ## PREREQUISITE +--- - Always available in Export environment. +--- ___ +---Returns DCS version information. +---___ +---@return VersionInfo versionInfo [VersionInfo](lua://VersionInfo) DCS version information. function LoGetVersionInfo() end + + +--- ## PREREQUISITE +--- - Always available in Export environment. +--- ___ +---TODO: What are the parameters? +---___ +---@return number windVelocity Wind at given point in m/s. function LoGetWindAtPoint() end + + +--- ## PREREQUISITE +--- - Always available in Export environment. +--- ___ +---Returns current model time in seconds. +---___ +---@return integer modelTime Model time in seconds. function LoGetModelTime() end + + +--- ## PREREQUISITE +--- - Always available in Export environment. +--- ___ +---Returns mission start time in seconds. +---___ +---@return integer missionStartTime Mission stert time in seconds. function LoGetMissionStartTime() end diff --git a/library/export/object.lua b/library/export/object.lua index 3a94db5..09bbf95 100644 --- a/library/export/object.lua +++ b/library/export/object.lua @@ -1,4 +1,67 @@ ---@meta -function LoGetObjectById() end -function LoGetWorldObjects() end +---Table of object data. +---@class (exact) ObjectInfo +---@field Name string Name of object. +---@field Country country.id [country.id](lua://country.id) See Scripts/database/db_countries.lua. +---@field Coalition string Coalition name. +---@field CoalitionID coalition.side [coalition.side](lua://coalition.side) +---@field Heading number Heading in radians. +---@field Pitch number Pitch in radians. +---@field Bank number Bank angle in radians. +---@field Position vec3 Position of object in internal DCS coordinates. +---@field PositionAsMatrix pos3 Matrix postion of object in DCS coordinates. +---@field UnitName string Unit name from mission (UTF8). Only for units (Planes, Helicopters, Tanks, etc). +---@field GroupName string Unit name from mission (UTF8) Only for units (Planes, Helicopters, Tanks, etc). +---@field Type wsType Object type. +ObjectInfo = { + ---Position of object in GEO coordinates. + ---@class (exact) LatLongAlt + ---@field Lat number Latitude. + ---@field Long number Longitude. + ---@field Alt number Altitude. + LatLongAlt = {}, ---@diagnostic disable-line: inject-field + + ---Object flags. + --- + ---Only for units (Planes, Helicopters, Tanks, etc). + ---@class (exact) Flags + ---@field RadarActive boolean True if the unit has it's radar turned on. + ---@field Human boolean True if the unti is human controlled. + ---@field Jamming boolean True if the unit uses EMI jamming. + ---@field IRJamming boolean True if the unit uses IR jamming. + ---@field Born boolean True if the unit is activated. + ---@field AI_ON boolean True if the unit's AI is active. + ---@field Invisible boolean True if the unit is invisible. + ---@field Static boolean True if the unit is a static object. + Flags = {}, ---@diagnostic disable-line: inject-field + } + +--- ## PREREQUISITE +--- - Only available on clients (multiplayer) when [Export.LoIsObjectExportAllowed](lua://Export.LoIsObjectExportAllowed) is true.
+--- - Server must have 'Allow object export' enabled. +--- ___ +---Returns an [ObjectInfo](lua://ObjectInfo) table of information of given object Id. +---___ +---@param id integer Id of object to get information for. +---@return ObjectInfo objectInfo [ObjectInfo](lua://ObjectInfo) +function LoGetObjectById(id) end + + +---@alias WorldObjectTypes +---| `"units"` +---| `"ballistic"` +---| `"airdromes"` + +--- ## PREREQUISITE +--- - Only available on clients (multiplayer) when [Export.LoIsObjectExportAllowed](lua://Export.LoIsObjectExportAllowed) is true.
+--- - Server must have 'Allow object export' enabled. +--- ___ +---Returns an array of [ObjectInfo](lua://ObjectInfo) tables based on the given object type.
+---Object type and be one of the following: "units", ballistic" or "airdromes". +--- +---Returned table index is the Id of the object. +---___ +---@param objectType WorldObjectTypes [WorldObjectTypes](lua://WorldObjectTypes) Type of world objects to get. +---@return ObjectInfo[] objects Array of [ObjectInfo](lua://ObjectInfo). +function LoGetWorldObjects(objectType) end diff --git a/library/export/ownship.lua b/library/export/ownship.lua index 40e564d..5b0a28b 100644 --- a/library/export/ownship.lua +++ b/library/export/ownship.lua @@ -1,38 +1,713 @@ ---@meta +--- ## PREREQUISITE +--- - Only available on clients (multiplayer) when [Export.LoIsOwnshipExportAllowed](lua://Export.LoIsOwnshipExportAllowed) is true.
+--- - Server must have 'Allow player export' enabled. +--- ___ +---Returns the players plane Id. +---___ +---@return integer playerPlayId Player's plane Id. function LoGetPlayerPlaneId() end + + +--- ## PREREQUISITE +--- - Only available on clients (multiplayer) when [Export.LoIsOwnshipExportAllowed](lua://Export.LoIsOwnshipExportAllowed) is true.
+--- - Server must have 'Allow player export' enabled. +--- ___ +---Returns the player's indicated airspeed in m/s. +---___ +---@return number playerAirSpeed Player's indicated airspeed in m/s. function LoGetIndicatedAirSpeed() end + + +--- ## PREREQUISITE +--- - Only available on clients (multiplayer) when [Export.LoIsOwnshipExportAllowed](lua://Export.LoIsOwnshipExportAllowed) is true.
+--- - Server must have 'Allow player export' enabled. +--- ___ +---Returns the player's angle of attack in radians. +---___ +---@return number playerAOA Player's angle of atack in radians. function LoGetAngleOfAttack() end + + +--- ## PREREQUISITE +--- - Only available on clients (multiplayer) when [Export.LoIsOwnshipExportAllowed](lua://Export.LoIsOwnshipExportAllowed) is true.
+--- - Server must have 'Allow player export' enabled. +--- ___ +---Returns the player's angle of side slip in radians. +---___ +---@return number playerAOSS Player's angle of side slip. function LoGetAngleOfSideSlip() end + + +---@class (exact) AccelerationUnits +---@field x number X acceleration in G. +---@field y number Y acceleration in G. +---@field z number z acceleration in G. +AccelerationUnits = {} + +--- ## PREREQUISITE +--- - Only available on clients (multiplayer) when [Export.LoIsOwnshipExportAllowed](lua://Export.LoIsOwnshipExportAllowed) is true.
+--- - Server must have 'Allow player export' enabled. +--- ___ +---Returns the player's table of [AccelerationUnits](lua://AccelerationUnits). +---___ +---@return AccelerationUnits accelerationUnits Table of [AccelerationUnits](lua://AccelerationUnits). function LoGetAccelerationUnits() end + + +--- ## PREREQUISITE +--- - Only available on clients (multiplayer) when [Export.LoIsOwnshipExportAllowed](lua://Export.LoIsOwnshipExportAllowed) is true.
+--- - Server must have 'Allow player export' enabled. +--- ___ +---Returns the player's verticle velocity in m/s. +---___ +---@return number playerVerticleVelocity Player's verticle velocity in m/s. function LoGetVerticalVelocity() end + + +--- ## PREREQUISITE +--- - Only available on clients (multiplayer) when [Export.LoIsOwnshipExportAllowed](lua://Export.LoIsOwnshipExportAllowed) is true.
+--- - Server must have 'Allow player export' enabled. +--- ___ +---Returns the player ADI in radians. +---___ +---@return number playerADI Player's ADI in radians. function LoGetADIPitchBankYaw() end + + +--- ## PREREQUISITE +--- - Only available on clients (multiplayer) when [Export.LoIsOwnshipExportAllowed](lua://Export.LoIsOwnshipExportAllowed) is true.
+--- - Server must have 'Allow player export' enabled. +--- ___ +---Returns the players true airspeed in m/s. +---___ +---@return number playerTrueAirspeed Player's true airspeed in m/s. function LoGetTrueAirSpeed() end + + +--- ## PREREQUISITE +--- - Only available on clients (multiplayer) when [Export.LoIsOwnshipExportAllowed](lua://Export.LoIsOwnshipExportAllowed) is true.
+--- - Server must have 'Allow player export' enabled. +--- ___ +---Returns the players altitude above sea level in meters. +---___ +---@return number playerASL Player's altitude above seal level in meters. function LoGetAltitudeAboveSeaLevel() end + + +--- ## PREREQUISITE +--- - Only available on clients (multiplayer) when [Export.LoIsOwnshipExportAllowed](lua://Export.LoIsOwnshipExportAllowed) is true.
+--- - Server must have 'Allow player export' enabled. +--- ___ +---Returns the players altitude above ground level in meters. +---___ +---@return number playerAGL Player's altitude above ground level in meters. function LoGetAltitudeAboveGroundLevel() end + + +--- ## PREREQUISITE +--- - Only available on clients (multiplayer) when [Export.LoIsOwnshipExportAllowed](lua://Export.LoIsOwnshipExportAllowed) is true.
+--- - Server must have 'Allow player export' enabled. +--- ___ +---Returns the player's mach number. +---___ +---@return number playerMachNumber Player's mach number. function LoGetMachNumber() end + + +--- ## PREREQUISITE +--- - Only available on clients (multiplayer) when [Export.LoIsOwnshipExportAllowed](lua://Export.LoIsOwnshipExportAllowed) is true.
+--- - Server must have 'Allow player export' enabled. +--- ___ +---Returns the player's radar altimeter in meters. +---___ +---@return number radarAltimeter Player's radar altimeter in meters. function LoGetRadarAltimeter() end + + +--- ## PREREQUISITE +--- - Only available on clients (multiplayer) when [Export.LoIsOwnshipExportAllowed](lua://Export.LoIsOwnshipExportAllowed) is true.
+--- - Server must have 'Allow player export' enabled. +--- ___ +---Returns the player's magnetic yaw in radians. +---___ +---@return number playerMagneticYaw Player's magnetic yaw in radians. function LoGetMagneticYaw() end + + +--- ## PREREQUISITE +--- - Only available on clients (multiplayer) when [Export.LoIsOwnshipExportAllowed](lua://Export.LoIsOwnshipExportAllowed) is true.
+--- - Server must have 'Allow player export' enabled. +--- ___ +---Returns the player's glide deviation. +---___ +---@deprecated Returns nil. +---@return number playerGlideDeviation Player's glide deviation. function LoGetGlideDeviation() end + + +--- ## PREREQUISITE +--- - Only available on clients (multiplayer) when [Export.LoIsOwnshipExportAllowed](lua://Export.LoIsOwnshipExportAllowed) is true.
+--- - Server must have 'Allow player export' enabled. +--- ___ +---Returns the player's side deviation. +---___ +---@deprecated Returns nil. +---@return number playerSideDeviation Player's side deviation. function LoGetSideDeviation() end + + +--- ## PREREQUISITE +--- - Only available on clients (multiplayer) when [Export.LoIsOwnshipExportAllowed](lua://Export.LoIsOwnshipExportAllowed) is true.
+--- - Server must have 'Allow player export' enabled. +--- ___ +---Retuens the player's slip ball position. +---___ +---@deprecated Returns nil. +---@return number playerSlipBallPosition Player's slip ball position. function LoGetSlipBallPosition() end + + +--- ## PREREQUISITE +--- - Only available on clients (multiplayer) when [Export.LoIsOwnshipExportAllowed](lua://Export.LoIsOwnshipExportAllowed) is true.
+--- - Server must have 'Allow player export' enabled. +--- ___ +---Returns the basic atmosphere pressure in mm hg. +---___ +---@deprecated Returns nil. +---@return number basicAtmospherePressure Basic atmosphere pressure in mm hg. function LoGetBasicAtmospherePressure() end + + +---@class (exact) ControlPanelHSI +---@field ADF_raw number ADF in radians. +---@field RMI_raw number RMI in radians. +---@field Heading_raw number Heading in radians. +---@field HeadingPointer number Heading pointer in radians. +---@field Course number Course in radians. +---@field BearingPointer number Bearing pointer in radians. +---@field CourseDeviation number Course deviation in radians. +ControlPanelHSI = {} + +--- ## PREREQUISITE +--- - Only available on clients (multiplayer) when [Export.LoIsOwnshipExportAllowed](lua://Export.LoIsOwnshipExportAllowed) is true.
+--- - Server must have 'Allow player export' enabled. +--- ___ +---Returns a table of the player's HSI data. +---___ +---@deprecated Returns nil. +---@return ControlPanelHSI controlPanelHSI Player's [ControlPanelHSI](lua://ControlPanelHSI) data. function LoGetControlPanel_HSI() end + + +--Engine related information. +---@class (exact) EngineInfo +---@field fuel_internal number Internal fuel quantity in kg. +---@field fuel_external number External fuel quantity in kg. +EngineInfo = { + ---Left and right engine RPM percentage. + ---@class (exact) EngineRPM + ---@field Left number Percentage of left engine RPM. + ---@field Right number Percentage of right enging RPM. + EngineRPM = {}, ---@diagnostic disable-line: inject-field + + ---Left and right engine temp in degrees celcius. + ---@class (exact) EngineTemperature + ---@field Left number Temp of left engine in degrees celcius. + ---@field Right number Temp of right engine in degrees celcius. + EngineTemperature = {}, ---@diagnostic disable-line: inject-field + + ---Left and right engine hydraulic pressure in kg per square centimeter. + ---@class (exact) EngineHydraulicPressure + ---@field Left number Hydraulic pressure of left engin in kg per square centimeter. + ---@field Right number Hydraulic pressure of right engine in kg per square centimeter. + EngineHydraulicPressure = {}, ---@diagnostic disable-line: inject-field + + ---Left and Right engine fuel consumption in kg/sec. + ---@class (exact) EngineFuelConsumption + ---@field Left number Fuel consumption of left engine in kg/sec. + ---@field Right number Fuel consumption of right engine in kg/sec. + EngineFuelConsumption = {} ---@diagnostic disable-line: inject-field +} + +--- ## PREREQUISITE +--- - Only available on clients (multiplayer) when [Export.LoIsOwnshipExportAllowed](lua://Export.LoIsOwnshipExportAllowed) is true.
+--- - Server must have 'Allow player export' enabled. +--- ___ +---Returns the player's engine information. +---___ +---@return EngineInfo engineInfo Player's [EngineInfo](lua://EngineInfo) table. function LoGetEngineInfo() end + + +--- ## PREREQUISITE +--- - Only available on clients (multiplayer) when [Export.LoIsOwnshipExportAllowed](lua://Export.LoIsOwnshipExportAllowed) is true.
+--- - Server must have 'Allow player export' enabled. +--- ___ +---Returns an [ObjectInfo](lua://ObjectInfo) table for your own aircraft. +--- +---Not depended on anti-cheat setting in Export/Config.lua +---___ +---@return ObjectInfo objectInfo [ObjectInfo](lua://ObjectInfo) for your aircraft. function LoGetSelfData() end + + +--- ## PREREQUISITE +--- - Only available on clients (multiplayer) when [Export.LoIsOwnshipExportAllowed](lua://Export.LoIsOwnshipExportAllowed) is true.
+--- - Server must have 'Allow player export' enabled. +--- ___ +---Returns the current camera position +---___ +---@return pos3 cameraPosition Current camera position in . function LoGetCameraPosition() end -function LoSetCameraPosition() end -function LoSetCommand() end + + +--- ## PREREQUISITE +--- - Only available on clients (multiplayer) when [Export.LoIsOwnshipExportAllowed](lua://Export.LoIsOwnshipExportAllowed) is true.
+--- - Server must have 'Allow player export' enabled. +--- ___ +---Sets the current camera position +---___ +---@param position pos3 [pos3](lua://pos3) Position to set view camera. +function LoSetCameraPosition(position) end + + +--- ## PREREQUISITE +--- - Only available on clients (multiplayer) when [Export.LoIsOwnshipExportAllowed](lua://Export.LoIsOwnshipExportAllowed) is true.
+--- - Server must have 'Allow player export' enabled. +--- ___ +---Sets a command value. +---___ +---@param command number Number of the command to set. +---@param value number Command value from -1.0 to 1.0. +function LoSetCommand(command, value) end + + +---Aircrafts MCP state. +---@class (exact) MCPState +---@field LeftEngineFailure boolean +---@field RightEngineFailure boolean +---@field HydraulicsFailure boolean +---@field ACSFailure boolean +---@field AutopilotFailure boolean +---@field AutopilotOn boolean +---@field MasterWarning boolean +---@field LeftTailPlaneFailure boolean +---@field RightTailPlaneFailur boolean +---@field LeftAileronFailure boolean +---@field RightAileronFailure boolean +---@field CanopyOpen boolean +---@field CannonFailure boolean +---@field StallSignalization boolean +---@field LeftMainPumpFailure boolean +---@field RightMainPumpFailure boolean +---@field LeftWingPumpFailure boolean +---@field RightWingPumpFailure boolean +---@field RadarFailure boolean +---@field EOSFailure boolean +---@field MLWSFailure boolean +---@field RWSFailure boolean +---@field ECMFailure boolean +---@field GearFailure boolean +---@field MFDFailure boolean +---@field HUDFailure boolean +---@field HelmetFailure boolean +---@field FuelTankDamage boolean +MCPState = {} + +--- ## PREREQUISITE +--- - Only available on clients (multiplayer) when [Export.LoIsOwnshipExportAllowed](lua://Export.LoIsOwnshipExportAllowed) is true.
+--- - Server must have 'Allow player export' enabled. +--- ___ +---Returns a player's [MCPState](lua://MCPState) information. +---___ +---@return MCPState playerMCPState Player's [MCPState](lua://MCPState) information. function LoGetMCPState() end + + +---@class (exact) WaypointTable +---@field this_point_num integer This waypoint's number. +---@field world_point vec3 Position of waypoint in meters. +---@field speed_req number Spoeed required at this waypoint in m/s. +---@field estimated_time number # ??? in seconds. +---@field next_point_num number Next waypoint number. If -1 then this is the end of the route. +---@field point_action string Name of action. (ATTACKPOINT, TURNPOINT, LANDING, TAKEOFF) +WaypointTable = {} + +---@class (exact) RouteResult +---@field goto_point integer Next waypoint. +---@field route WaypointTable[] Array of waypoints. +RouteResult = {} + +--- ## PREREQUISITE +--- - Only available on clients (multiplayer) when [Export.LoIsOwnshipExportAllowed](lua://Export.LoIsOwnshipExportAllowed) is true.
+--- - Server must have 'Allow player export' enabled. +--- ___ +---Returns the player's [RouteResult](lua://RouteResult) waypoints. +---___ +---@return RouteResult routeResult Player's [RouteResult](lua://RouteResult) information. function LoGetRoute() end + + +---@alias NavSystemMasterMode string +---| `"NAV"` Navigation. +---| `"BVR"` Beyond visual range AA mode. +---| `"CAC"` Close air combat. +---| `"LNG"` Longitudinal mode. +---| `"A2G"` Air to ground mode. +---| `"OFF"` Mode is absent. + +---@alias NavSystemSubMode string +---| `"ROUTE"` NAV Submode - +---| `"ARRIVAL"` NAV Submode - +---| `"LANDING"` NAV Submode - +---| `"OFF"` NAV Submode - +---| `"GUN"` BRV Submode - Gunmode +---| `"RWS"` BRV Submode - RangeWhileSearch +---| `"TWS"` BRV Submode - TrackWhileSearch +---| `"STT"` BRV Submode - SingleTrackTarget (Attack submode) +---| `"OFF"` BRV Submode - +---| `"GUN"` CAC Submode - +---| `"VERTICAL_SCAN"` CAC Submode - +---| `"BORE"` CAC Submode - +---| `"HELMET" ` CAC Submode - +---| `"STT"` CAC Submode - +---| `"OFF"` CAC Submode - +---| `"GUN"` LNG Submode - +---| `"OFF"` LNG Submode - +---| `"FLOOD"` LNG Submode - F-15 only +---| `"GUN"` A2G Submode - +---| `"ETS" ` A2G Submode - Emitter Targeting System On +---| `"PINPOINT"` A2G Submode - +---| `"UNGUIDED"` A2G Submode - unguided weapon (free fall bombs, dispensers , rockets) +---| `"OFF"` A2G Submode - + +---@alias NavACSMode string +---| `"FOLLOW_ROUTE"` +---| `"BARO_HOLD"` +---| `"RADIO_HOLD"` +---| `"BARO_ROLL_HOLD"` +---| `"HORIZON_HOLD"` +---| `"PITCH_BANK_HOLD"` +---| `"OFF"` + +---@class (exact) SystemMode +---@field master NavSystemMasterMode [NavSystemMasterMode](lua://NavSystemMasterMode). +---@field submode NavSystemSubMode [NavSystemSubMode](lua://NavSystemSubMode). +SystemMode = { + --- Required parameters of flight. + ---@class (exact) NavSystemPREREQUISITE + ---@field roll number Required roll. + ---@field pitch number Required pitch. + ---@field speed number Require speed. + ---@field vertical_speed number Required vertical speed. + ---@field altitude number Required altitude. + NavSystemPREREQUISITE = {}, ---@diagnostic disable-line: inject-field + + ---Current state of the Automatic Control System. + ---@class (exact) NavACS + ---@field mode NavACSMode [NavACSMode](lua://NavACSMode). + ---@field autothrust boolean If autothrust is on or not. + NavACS = {}, ---@diagnostic disable-line: inject-field +} + +--- ## PREREQUISITE +--- - Only available on clients (multiplayer) when [Export.LoIsOwnshipExportAllowed](lua://Export.LoIsOwnshipExportAllowed) is true.
+--- - Server must have 'Allow player export' enabled. +--- ___ +---Returns the player's ACS [SystemMode](lua://SystemMode) information. +---___ +---@deprecated Returns nil. +---@return SystemMode systemMode Player's ACS [SystemMode](lua://SystemMode) information. function LoGetNavigationInfo() end + + +---Station information. +---___ +---Stations may contain a container (i.e. a rack) or a weapon. +---___ +---@class (exact) StationInfo +---@field CLSID string CLSID of container or item. +---@field container boolean Is item a container or not. +---@field count integer Number of weapons. +---@field weapon wsType [wsType](lua://wsType) of weapon. +---@field adapter wsType [wsType](lua://wsType) of adapter (only if station is a container). +---@field wstype wsType [wsType](lua://wsType) of container (only if station is a container). +StationInfo = {} + +---Player's payload information +---@class (exact) PayloadInfo +---@field CurrentStation integer Current station. +---@field Stations StationInfo[] Array of [StationInfo](lua://StationInfo).
The index of the station is the station number on the aircraft. +PayloadInfo = { + ---Cannon information. + ---@class (exact) Cannon + ---@field shells integer Number of shells. + Cannon = {} ---@diagnostic disable-line: inject-field +} + +--- ## PREREQUISITE +--- - Only available on clients (multiplayer) when [Export.LoIsOwnshipExportAllowed](lua://Export.LoIsOwnshipExportAllowed) is true.
+--- - Server must have 'Allow player export' enabled. +--- ___ +---Returns the player's [PayloadInfo](lua://PayloadInfo). +---___ +---@return PayloadInfo payLoadInfo Player's [PayloadInfo](lua://PayloadInfo). function LoGetPayloadInfo() end + + +---Player's wingman information. +---@class (exact) WingmenInfo +---@field ordered_task string Name of ordered task. +---@field current_task string Name of current task. +---@field ordered_target integer World Id of ordered target. +---@field current_target integer World Id of current target. +---@field wingmen_id number World Id of wingman. +---@field wingmen_position pos3 Position of wingmen. +WingInfo = {} + +--- ## PREREQUISITE +--- - Only available on clients (multiplayer) when [Export.LoIsOwnshipExportAllowed](lua://Export.LoIsOwnshipExportAllowed) is true.
+--- - Server must have 'Allow player export' enabled. +--- ___ +---Returns an array of [WingmenInfo](lua://WingmenInfo). +---___ +---@return WingmenInfo[] wingmenInfo Array of [WingmenInfo](lua://WingmenInfo). function LoGetWingInfo() end + + +---Mechanical information. +---@class (exact) MechInfo +MechInfo = { + ---Canopy status. + ---@class (exact) canopy + ---@field status integer Canopy status. + ---@field value number Canopy value. + canopy = {}, ---@diagnostic disable-line: inject-field + + ---Control surface status. + ---@class (exact) controlsurfaces + controlsurfaces = { ---@diagnostic disable-line: inject-field + ---Eleron status. + ---@class (exact) eleron + ---@field left number Left elron state. + ---@field right number Right eleron state. + eleron = {}, ---@diagnostic disable-line: inject-field + + ---Elevator status. + ---@class (exact) evelator + ---@field left number Left elevator status. + ---@field right number Right elevator status. + elevator = {}, ---@diagnostic disable-line: inject-field + + ---Rudder status. + ---@class (exact) rudder + ---@field left number Left rudder status. + ---@field right number Right rudder status. + rudder = {}, ---@diagnostic disable-line: inject-field + }, + + ---Flaps status. + ---@class (exact) flaps + ---@field status integer Flap status. + ---@field value number Flap value. + flaps = {}, ---@diagnostic disable-line: inject-field + + ---Gear status. + ---@class (exact) gear + ---@field status number Gear status. + ---@field value number Gear value. + gear = { ---@diagnostic disable-line: inject-field + ---Nose rod status. + ---@class (exact) nose + ---@field rod number Nose gear rod status. + nose = {}, ---@diagnostic disable-line: inject-field + + ---Left gear status. + ---@class (exact) left + ---@field rod number Left gear rod status. + left = {}, ---@diagnostic disable-line: inject-field + + ---Right gear status. + ---@class (exact) right + ---@field rod number Right gear rod status. + right = {}, ---@diagnostic disable-line: inject-field + }, + + ---Parachute status. + ---@class (exact) parachute + ---@field status integer Parachute status. + ---@field value number Parachute value. + parachute = {}, ---@diagnostic disable-line: inject-field + + ---Refueling boom status. + ---@class (exact) refuelingboom + ---@field status integer Refueling boom status. + ---@field value number Refueling boom value. + refuelingboom = {}, ---@diagnostic disable-line: inject-field + + ---Speed brakes status. + ---@class (exact) speedbrakes + ---@field status integer Speed brakes status. + ---@field value number Speed brakes value. + speedbrakes = {}, ---@diagnostic disable-line: inject-field + + ---Wheel brakes status. + ---@class (exact) wheelbrakes + ---@field status integer Wheel brakes status. + ---@field value number Wheel brakes value. + wheelbrakes = {}, ---@diagnostic disable-line: inject-field +} + +--- ## PREREQUISITE +--- - Only available on clients (multiplayer) when [Export.LoIsOwnshipExportAllowed](lua://Export.LoIsOwnshipExportAllowed) is true.
+--- - Server must have 'Allow player export' enabled. +--- ___ +---Returns the player's [MechInfo](lua:///MechInfo) information. +---___ +---@return MechInfo mechInfo Player's [MechInfo](lua://MechInfo) information. function LoGetMechInfo() end + + +---Radio beacon status data. +---@class (exact) RadioBeaconStatus +---@field airfield_near any +---@field airfield_far any +---@field course_deviation_beacon_lock any +---@field glideslope_deviation_beacon_lock any + +--- ## PREREQUISITE +--- - Only available on clients (multiplayer) when [Export.LoIsOwnshipExportAllowed](lua://Export.LoIsOwnshipExportAllowed) is true.
+--- - Server must have 'Allow player export' enabled. +--- ___ +---Returns the player's [RadioBeaconStatus](lua://RadioBeaconStatus) information. +---___ +---@return RadioBeaconStatus radioBeaconStatus Player's [RadioBeaconStatus](lua://RadioBeaconStatus) information. +---@deprecated Returns nil. function LoGetRadioBeaconsStatus() end + + +---Vector velocity in world axis. +---@class (exact) VectorVelocity +---@field x number x vector velocity (world axis). +---@field y number y vector velocity (world axis). +---@field z number z vector velocity (world axis). + +--- ## PREREQUISITE +--- - Only available on clients (multiplayer) when [Export.LoIsOwnshipExportAllowed](lua://Export.LoIsOwnshipExportAllowed) is true.
+--- - Server must have 'Allow player export' enabled. +--- ___ +---Returns [VectorVelocity](lua://VectorVelocity) of self velocity (world axis). +---___ +---@return VectorVelocity vectorVelocity [VectorVelocity](lua://VectorVelocity) of self volcity (world axis). function LoGetVectorVelocity() end + + +---Vector wind velocity in world axis. +---@class (exact) VectorWindVelocity +---@field x number x vector wind velocity (world axis). +---@field y number y vector wind velocity (world axis). +---@field z number z vector wind velocity (world axis). + +--- ## PREREQUISITE +--- - Only available on clients (multiplayer) when [Export.LoIsOwnshipExportAllowed](lua://Export.LoIsOwnshipExportAllowed) is true.
+--- - Server must have 'Allow player export' enabled. +--- ___ +---Returns [VectorWindVelocity](lua://VectorWindVelocity) of self velocity (world axis). +---___ +---@return VectorWindVelocity vectorWindVelocity [VectorWindVelocity](lua://VectorWindVelocity) of self volcity (world axis). function LoGetVectorWindVelocity() end + + +---Returns the player chaff and flare inventory. +---@class (exact) Snares +---@field chaff integer Current number of chaff. +---@field flare integer Current number of flare. + +--- ## PREREQUISITE +--- - Only available on clients (multiplayer) when [Export.LoIsOwnshipExportAllowed](lua://Export.LoIsOwnshipExportAllowed) is true.
+--- - Server must have 'Allow player export' enabled. +--- ___ +---Returns the player's [Snares](lua://Snares) (chaff and flare) inventory. +---___ +---@return SystemMode systemMode Player's [Snares](lua://Snares) (chaff and flare) inventory. function LoGetSnares() end + + +---Angular velocity euler angles , rad per sec. +---@class (exact) AngularVelocity +---@field x number x angular velocity (euler angles , rad per sec). +---@field y number y angular velocity (euler angles , rad per sec). +---@field z number z angular velocity (euler angles , rad per sec). + +--- ## PREREQUISITE +--- - Only available on clients (multiplayer) when [Export.LoIsOwnshipExportAllowed](lua://Export.LoIsOwnshipExportAllowed) is true.
+--- - Server must have 'Allow player export' enabled. +--- ___ +---Returns [AngularVelocity](lua://AngularVelocity) of self angular velocity euler angles , rad per sec. +---___ +---@return AngularVelocity angularVelocity [AngularVelocity](lua://AngularVelocity) of self volcity (world axis). function LoGetAngularVelocity() end + + +--- ## PREREQUISITE +--- - Only available on clients (multiplayer) when [Export.LoIsOwnshipExportAllowed](lua://Export.LoIsOwnshipExportAllowed) is true.
+--- - Server must have 'Allow player export' enabled. +--- ___ +---Return value unkonwn number. +---___ +---@return number heightWithObjects Unknown function LoGetHeightWithObjects() end + + +---Player flight model data. +---@class (exact) FMData +---@field pitch number Pitch. +---@field yaw number Yaw. +---@field roll number Roll. +FMData = { + ---Speed + ---@class (exact) speed + ---@field x number x vector. + ---@field y number y vector. + ---@field z number z vector. + speed = {}, ---@diagnostic disable-line: inject-field + + ---Angular speed + ---@class (exact) angular_speed + ---@field x number x vector. + ---@field y number y vector. + ---@field z number z vector. + angualr_speed = {}, ---@diagnostic disable-line: inject-field + + ---Acceleration + ---@class (exact) acceleration + ---@field x number x vector. + ---@field y number y vector. + ---@field z number z vector. + acceleration = {}, ---@diagnostic disable-line: inject-field + + ---Angular acceleration + ---@class (exact) angular_acceleration + ---@field x number x vector. + ---@field y number y vector. + ---@field z number z vector. + angular_acceleration = {}, ---@diagnostic disable-line: inject-field + + ---G factor + ---@class (exact) G_factor + ---@field x number x vector. + ---@field y number y vector. + ---@field z number z vector. + G_factor = {}, ---@diagnostic disable-line: inject-field +} + +--- ## PREREQUISITE +--- - Only available on clients (multiplayer) when [Export.LoIsOwnshipExportAllowed](lua://Export.LoIsOwnshipExportAllowed) is true.
+--- - Server must have 'Allow player export' enabled. +--- ___ +---Returns the player's flight model [FMData](lua://FMData) information. +---___ +---@return FMData fmData Player's flight model data [FMData](lua://FMData) information. function LoGetFMData() end diff --git a/library/export/sensor.lua b/library/export/sensor.lua index 29d1021..db14991 100644 --- a/library/export/sensor.lua +++ b/library/export/sensor.lua @@ -1,8 +1,78 @@ ---@meta +---@deprecated Returns nil. function LoGetTWSInfo() end + +--[[ + flags = , -- field with constants detemining method of the tracking + -- whTargetRadarView = 0x0002; -- Radar review (BVR) + -- whTargetEOSView = 0x0004; -- EOS review (BVR) + -- whTargetRadarLock = 0x0008; -- Radar lock (STT) == whStaticObjectLock (pinpoint) (static objects,buildings lock) + -- whTargetEOSLock = 0x0010; -- EOS lock (STT) == whWorldObjectLock (pinpoint) (ground units lock) + -- whTargetRadarTrack = 0x0020; -- Radar lock (TWS) + -- whTargetEOSTrack = 0x0040; -- Radar lock (TWS) == whImpactPointTrack (pinpoint) (ground point track) + -- whTargetNetHumanPlane = 0x0200; -- net HumanPlane + -- whTargetAutoLockOn = 0x0400; -- EasyRadar autolockon + -- whTargetLockOnJammer = 0x0800; -- HOJ mode +]] + +---Table of target information. +---@class (exact) TargetInfo +---@field ID integer World ID (may be 0 ,when ground point track). +---@field type wsType [wsTypeswsType](lua://) World database classification +---@field country country [country](lua://country) +---@field position pos3 Target position. +---@field velocity {x: number, y: number, z: number} Velocity of target in m/s. +---@field distance number Distance in meters. +---@field convergence_velocity number Closing speed in m/s. +---@field mach number Mach number. +---@field delta_psi number Aspect angle in radians. +---@field fim number Horizontal viewing angle from your body in radians. +---@field fin number Vertical viewing angle from your body in radians. +---@field flags table --TODO: Need to flush this out. +---@field reflection number Target cross section in square meters. +---@field course number Target course in radians. +---@field isjamming boolean Does target have ECM on or not. +---@field start_of_lock number Time of the beginning of lock. +---@field forces {x: number, y: number, z: number} Vector of targets acceleration units +---@field updates integer Number of radar updates. +---@field jammer_burned boolean Whether or not targets jammer is burned. + +--- ## PREREQUISITE +--- - Only available on clients (multiplayer) when [Export.LoIsSensorExportAllowed](lua://Export.LoIsSensorExportAllowed) is true.
+--- - Server must have 'Allow sensor export' enabled. +---___ +--- Returns an array of current targets. +---___ +---@deprecated Returns nil. +---@return TargetInfo[] targetInfo Array of current targets. [TargetInfo](lua://TargetInfo). function LoGetTargetInformation() end + + +--- ## PREREQUISITE +--- - Only available on clients (multiplayer) when [Export.LoIsSensorExportAllowed](lua://Export.LoIsSensorExportAllowed) is true.
+--- - Server must have 'Allow sensor export' enabled. +---___ +---Returns an array of current locked targets. +---___ +---@deprecated Returns nil. +---@return TargetInfo[] targetInfo Array of current locked targets. [TargetInfo](lua://TargetInfo). function LoGetLockedTargetInformation() end + + +---@deprecated Returns nil. function LoGetF15_TWS_Contacts() end + + +---@deprecated Returns nil. function LoGetSightingSystemInfo() end + + +--- ## PREREQUISITE +--- - Only available on clients (multiplayer) when [Export.LoIsSensorExportAllowed](lua://Export.LoIsSensorExportAllowed) is true.
+--- - Server must have 'Allow sensor export' enabled. +---___ +---Returns an array of wingman target locations. +---___ +---@return vec3[] wingTargets Array of wingman target locations. function LoGetWingTargets() end diff --git a/library/mission/net.lua b/library/mission/net.lua index 6dd03cb..e216aab 100644 --- a/library/mission/net.lua +++ b/library/mission/net.lua @@ -27,7 +27,7 @@ function net.force_player_slot(playerID, sideId, slotId) end ---Returns the name of a given player.
Is the same as `net.get_player_info(playerID, 'name')`. ---@param playerID integer -- from `net.get_player_list()` ----@return string +---@return string playerName Name of player from given ID function net.get_name(playerID) end ---Returns a table of players currently connected to the server. @@ -75,7 +75,7 @@ function net.get_player_info(playerID, attribute) end function net.get_stat(playerID, statID) end ---Converts a lua value to a JSON string. ----@param lua any +---@param lua any ---@return string function net.lua2json(lua) end @@ -90,6 +90,9 @@ function net.json2lua(json) end ---@return boolean function net.kick(playerId, message) end +--- # SERVER ONLY +--- - Not available in the Mission scripting environment. +---___ ---Loads the specified mission.
---Example: Loads a mission from your saved games/missions folder. ---``` @@ -99,6 +102,9 @@ function net.kick(playerId, message) end ---@return boolean -- True if the mission was successfully loaded, false otherwise. function net.load_mission(fileName) end +--- # SERVER ONLY +--- - Not available in the Mission scripting environment. +---___ ---Loads the next mission from the server mission list. ---@return boolean -- True if the next mission was successfully loaded, false if at the end of the list. function net.load_next_mission() end @@ -113,4 +119,179 @@ function net.send_chat(message, all) end ---@param message string ---@param playerId number ---@param fromId number? -function net.send_chat_to(message, playerId, fromId) end \ No newline at end of file +function net.send_chat_to(message, playerId, fromId) end + +---Returns the playerID of the local player. Always returns 1 for server. +---___ +---@return number playerID Id of local player. +function net.get_my_player_id() end + +---Returns the playerID of the server. Currently always 1. +---___ +---@return number playerID Id of server player. +function net.get_server_id() end + +---Returns the sideId and slotId of a given player. Is the same as net.get_player_info(playerID, 'side') and net.get_player_info(playerID, 'slot') +---___ +---@param playerID number ID of player. +---@return coalition.side sideID Players coalition side ID. +---@return number slotID Players slot ID +function net.get_slot(playerID) end + +---net.log("string") will write an "INFO" entry to the DCS log file, with the message "LuaNET (Main): string"
+---The full set of arguments supported for net.log() are currently undocumented. +---@param msg string The string to write to log file. +function net.log(msg) end + +---Receive chat message locally[, pretending it was sent by another player]. +--- - from = 0 means from the system +---___ +---@param message string Message to receive. +---@param from number If message should come from system. +function net.recv_chat(message, from) end + +---@class chatHistory +---@field abstime number Chat time. +---@field side coalition.side Coalition chat is from. +---@field playerName string Name of player that sent chat. +---@field message string Chat message. + +---Returns last chat messages starting from a given index. +---___ +---Example: +---```lua +--- local chatIndex = 0; +--- local chatHistory = {} +--- chatHistory, chatIndex = net.get_chat_history(chatIndex) +---``` +---@param from number Index to start getting chat history from. +---@return chatHistory[] chatHistory Chat history table. +---@return number chatIndex Index of chat. +function net.get_chat_history(from) end + +---@class netBanPlayerInfo +---@field ucid string Unique Client Identifier. +---@field ipaddr string IP address string. +---@field name string Player name at the time of the ban. +---@field banned_from number Unix time of ban start. +---@field banned_until number Unix time of ban end. + +--- # SERVER ONLY +--- - Not available in the Mission scripting environment. +---___ +---Returns an array of active ban records. +---___ +---Each record contains: +--- - 'ucid': Unique Client IDentifier +--- - 'ipaddr': IP address string +--- - 'name': player name at the time of the ban +--- - 'reason': ban reason string +--- - 'banned_from': unix-time of ban start +--- - 'banned_until': unix-time of ban end +---___ +---@return netBanPlayerInfo[] netPlayerBans Array of netBanPlayerInfo tables. +function net.banlist_get() end + + +--- # SERVER ONLY +--- - Not available in the Mission scripting environment. +---___ +---Adds a ban and kicks the player of 'id'.
+---'period' is the duration of ban in seconds. +---___ +---@param id string UCID of player to ban. +---@param period integer Number of seconds to ban the player. +---@param reason string Why the player is getting banned. +---@return boolean success Was the player successfully banned. +function net.banlist_add(id, period, reason) end + + +--- # SERVER ONLY +--- - Not available in the Mission scripting environment. +---___ +---Lifts the ban from a player with the given 'ucid'. +---___ +---@param ucid string UCID of player to lift ban. +---@return boolean success Was the player successfully removed from the ban list. +function net.banlist_remove(ucid) end + +---@class netMissionList +---@field listLoop boolean Is the missiion list looping. +---@field listShuffle boolean Does the mission list shuffle missions. +---@field missionList string[] Array of mission list names. +---@field current string Name of the current mission. + +--- # SERVER ONLY +--- - Not available in the Mission scripting environment. +---___ +---Returns a table with current mission list. +---___ +---Fields: +--- - 'listLoop': bool +--- - 'listShuffle': bool +--- - 'missionList': array of mission filenames +--- - 'current' : index of the current mission +---___ +---@return netMissionList missionList Table with the current mission list. +function net.missionlist_get() end + +--- # SERVER ONLY +--- - Not available in the Mission scripting environment. +---___ +---Adds a mission to the list. +---___ +---@param miz_filename string Name of the file to add to the mission list. +---@return boolean success Was the mission successfully added to the list. +function net.missionlist_append(miz_filename) end + +--- # SERVER ONLY +--- - Not available in the Mission scripting environment. +---___ +---Deletes a mission from the list at the given index. +---___ +---@param miz_index integer Index of mission to remove. +---@return boolean success Was the mission successfully removed from the list. +function net.missionlist_delete(miz_index) end + +--- # SERVER ONLY +--- - Not available in the Mission scripting environment. +---___ +---Moves a mission to a new location in the list. +---___ +---@param old_index integer Index of mission to move. +---@param new_index integer Index to move the mission to. +---@return boolean success Was the mission successfully moved. +function net.missionlist_move(old_index, new_index) end + +--- # SERVER ONLY +--- - Not available in the Mission scripting environment. +---___ +---Set the server to shuffle, or not to shuffle, the mission list. +---___ +---@param bool boolean Shuffle the list or not. +function net.missionlist_set_shuffle(bool) end + +--- # SERVER ONLY +--- - Not available in the Mission scripting environment. +---___ +---Set the server to loop, or not to loop, the mission list. +---___ +---@param bool boolean Loop the list or not. +function net.missionlist_set_loop(bool) end + +--- # SERVER ONLY +--- - Not available in the Mission scripting environment. +---___ +---Runs a mission at the given index. +---___ +---@param miz_index integer Index of mission to run. +---@return boolean success Was the mission successfully started or not. +function net.missionlist_run(miz_index) end + +--- # SERVER ONLY +--- - Not available in the Mission scripting environment. +---___ +---Clear the entire mission list. +---___ +---@return boolean success Was the mission list successfully cleared. +function net.missionlist_clear() end \ No newline at end of file diff --git a/library/mission/types.lua b/library/mission/types.lua index 6becd73..c5295fb 100644 --- a/library/mission/types.lua +++ b/library/mission/types.lua @@ -20,25 +20,31 @@ ---@field weapon_name string? ---`vec2.x = vec3.x = north`
`vec2.y = vec3.z = east` ----@class vec2 +---@class (exact) vec2 ---@field x number positive x is north ---@field y number positive y is east ---`vec3.x = north`
`vec3.y = up`
`vec3.z = east`
---![](https://www.digitalcombatsimulator.com/upload/medialibrary/c96/Pos3_illustration2.jpg) ----@class vec3 +---@class (exact) vec3 ---@field x number positive x is north ---@field y number positive y is up ---@field z number positive z is east ---A table describing how a unit's local nose, up, right axes translate to world axes using three unit vectors. Also contains its location.
`pos.x = vec3` unit vector of nose direction
`pos.y = vec3` unit vector of up direction
`pos.z = vec3` unit vector of right direction
`pos.p = vec3` location of the object
---![](https://www.digitalcombatsimulator.com/upload/medialibrary/c96/Pos3_illustration2.jpg) ----@class pos3 +---@class (exact) pos3 ---@field x vec3 nose unit vector ---@field y vec3 up unit vector ---@field z vec3 right unit vector ---@field p vec3 location vector ----@class zone +---@class (exact) zone ---@field point vec3 ----@field radius number \ No newline at end of file +---@field radius number + +---@class (exact) wsType +---@field level1 integer Level 1 type. +---@field level2 integer Level 2 type. +---@field level3 integer Level 3 type. +---@field level4 integer Level 4 type. \ No newline at end of file