Skip to content

Latest commit

 

History

History
561 lines (520 loc) · 13.4 KB

STATUS.md

File metadata and controls

561 lines (520 loc) · 13.4 KB

DCS Functional Parity

The DCS gRPC Server API implementation is still a work in progress, and therefore the following API functions have been implemented.

The unimplemented functions is not committed to a roadmap. We do envision full DCS API equivalence at some point in the future; pull requests are welcomed for expanding the API equivalency.


Singletons

Atmosphere Singleton

  • getWind
  • getWindWithTurbulence
  • getTemperatureAndPressure

Coalitions Singleton

  • addGroup
    • Sea
      • Group
      • Units
      • Waypoints
      • Tasks
    • Ground
      • Group
      • Units
      • Waypoints
      • Tasks
    • Plane
      • Group
      • Units
      • Waypoints
      • Tasks
      • Loadout
    • Helicopters
      • Group
      • Units
      • Waypoints
      • Tasks
      • Loadout
  • addStaticObject
  • getGroups
  • getStaticObjects
  • getAirbases
  • getPlayers
  • getServiceProviders
  • addRefPoint
  • getRefPoints
  • getMainRefPoint ("Bullseye")
  • getCountryCoalition

Coord Singleton

  • LLtoLO (internally, used; but LAT/LNG is used in API definitions)
  • LOtoLL (internally, used; but LAT/LNG is used in API definitions)
  • LLtoMGRS Rather implement using conversion: https://en.wikipedia.org/wiki/Military_Grid_Reference_System
  • MGRStoLL (internally, used; but LAT/LNG is used in API definitions)

Env Singleton

The following API's are not planned to be exposed via gRPC; client applications should use their independent logging and tracing functions.

  • info
  • warning
  • error
  • setErrorMessageBoxEnabled
  • getValueDictByKey

Land Singleton

  • getHeight
  • getSurfaceHeightWithSeabed
  • getSurfaceType
  • isVisible
  • getIP
  • profile
  • getClosestPointOnRoads
  • findPathOnRoads

Mission Commands Singleton

  • addCommand
  • addSubMenu
  • removeItem
  • addCommandForCoalition
  • addSubMenuForCoalition
  • removeItemForCoalition
  • addCommandForGroup
  • addSubMenuForGroup
  • removeItemForGroup

Net Service

  • net.send_chat
  • net.send_chat_to
    • (not implemented fromId -- open to use cases)
  • recv_chat
  • get_player_list
    • Implementation compounded with get_player_info
  • get_my_player_id
  • get_server_id
  • get_player_info
    • Returned as a detailed response with compounded get_player_list
  • kick
  • get_stat
  • get_name (will not be implemented -- returned part of get_player_info)
  • get_slot (will not be implemented -- returned part of get_player_info)
  • set_slot
  • force_player_slot
  • lua2json (DCS-gRPC bridge preferred)
  • json2lua (DCS-gRPC bridge preferred)
  • dostring_in (DCS-gRPC bridge preferred)
  • log (client applications should use their own logging)
  • trace (client applications should use their own logging)

GameGUI API

  • reload_current_mission Custom API
  • load_mission
  • load_next_mission

Timer Service

  • getTime
  • getAbsTime
  • getTime0
  • scheduleFunction (TODO -- should this be implemented?)
  • removeFunction
  • setFunctionTime

Trigger Service

  • getUserFlag

  • setUserFlag

  • getZone

  • explosion

  • smoke

  • effectSmokeBig

  • illuminationBomb

  • signalFlare

  • radioTransmission

  • stopRadioTransmission

  • setUnitInternalCargo

  • outSound

  • outSoundForCoalition

  • outSoundForCountry

  • outSoundForGroup

  • outText

  • outTextForCoalition

  • outTextForCountry

  • outTextForGroup

  • outTextForUnit

  • addOtherCommand

  • removeOtherCommand

  • addOtherCommandForCoalition

  • removeOtherCommandForCoalition

  • addOtherCommandForGroup

  • removeOtherCommandForGroup

  • markToAll

  • markToCoalition

  • markToGroup

  • removeMark

  • markupToAll

  • markupToCoalition

  • lineToAll

  • circleToAll

  • rectToAll

  • quadToAll

  • textToAll

  • arrowToAll

  • setMarkupRadius

  • setMarkupText

  • setMarkupFontSize

  • setMarkupColor

  • setMarkupColorFill

  • setMarkupTypeLine

  • setMarkupPositionEnd

  • setAITask

  • pushAITask

  • activateGroup

  • deactivateGroup

  • setGroupAIOn

  • setGroupAIOff

  • groupStopMoving

  • groupContinueMoving

Voice Chat

  • createRoom

DCS Singleton (DCS-gRPC WorldService)

  • addEventHandler (TODO: Should implement? Probably not)
  • removeEventHandler
  • getPlayer
  • getAirbases
  • searchObjects
  • getMarkPanels
  • getTheatre (DCS-gRPC method. Calls env.mission.theatre internally)

DCS Events

  • S_EVENT_INVALID
  • S_EVENT_SHOT
  • S_EVENT_HIT
  • S_EVENT_TAKEOFF
  • S_EVENT_LAND
  • S_EVENT_CRASH
  • S_EVENT_EJECTION
  • S_EVENT_REFUELING
  • S_EVENT_DEAD
  • S_EVENT_PILOT_DEAD
  • S_EVENT_BASE_CAPTURED
  • S_EVENT_MISSION_START
  • S_EVENT_MISSION_END
  • S_EVENT_TOOK_CONTROL
  • S_EVENT_REFUELING_STOP
  • S_EVENT_BIRTH
  • S_EVENT_HUMAN_FAILURE
  • S_EVENT_DETAILED_FAILURE
  • S_EVENT_ENGINE_STARTUP
  • S_EVENT_ENGINE_SHUTDOWN
  • S_EVENT_PLAYER_ENTER_UNIT
  • S_EVENT_PLAYER_LEAVE_UNIT
  • S_EVENT_PLAYER_COMMENT
  • S_EVENT_SHOOTING_START
  • S_EVENT_SHOOTING_END
  • S_EVENT_MARK_ADDED
  • S_EVENT_MARK_CHANGE
  • S_EVENT_MARK_REMOVED
  • S_EVENT_KILL
  • S_EVENT_SCORE
  • S_EVENT_UNIT_LOST
  • S_EVENT_LANDING_AFTER_EJECTION
  • S_EVENT_PARATROOPER_LENDING
  • S_EVENT_DISCARD_CHAIR_AFTER_EJECTION
  • S_EVENT_WEAPON_ADD
  • S_EVENT_TRIGGER_ZONE
  • S_EVENT_LANDING_QUALITY_MARK
  • S_EVENT_BDA
  • S_EVENT_MAX Not a real event

DCS Control Functions

  • setUserCallbacks
    • onMissionLoadBegin
    • onMissionLoadProgress
    • onMissionLoadEnd (Used; not exposed to Clients)
    • onSimulationStart
    • onSimulationStop (Used; not exposed to Clients)
    • onSimulationFrame (Used; not exposed to Clients)
    • onSimulationPause
    • onSimulationResume
    • onGameEvent
    • onNetConnect
    • onNetMissionChanged
    • onNetDisconnect
    • onPlayerConnect
    • onPlayerDisconnect (Emitted as a special GRPC event)
    • onPlayerStart
    • onPlayerStop
    • onPlayerChangeSlot
    • onPlayerTryConnect (Emitted as a special GRPC event)
    • onPlayerTrySendChat (Emitted as a special GRPC event)
    • onPlayerTryChangeSlot
  • setPause - API name changed to setPaused as this is more accurate
  • getPause - API name changed to getPaused as this is more accurate
  • stopMission
  • exitProcess
  • isMultiplayer
  • isServer
  • getModelTime
  • getRealTime
  • getMissionOptions
  • getAvailableCoalitions
  • getAvailableSlots
  • getCurrentMission
  • getMissionName
  • getMissionDescription
  • getMissionFilename
  • getMissionResult
  • getUnitProperty
  • getUnitType
  • getUnitTypeAttribute
  • writeDebriefing
  • makeScreenShot

Classes

SceneryObject

  • Object class members
    • Category
    • destroy
    • isExists
    • getCategory
    • getTypeName
    • getDesc
    • hasAttribute
    • getName
    • getPoint
    • getPosition
    • getVelocity
    • inAir
  • SceneryObject class members
    • getLife
    • getDescByName (static)

Weapon

  • Object class members
    • Category
    • destroy
    • isExists
    • getCategory
    • getTypeName
    • getDesc
    • hasAttribute
    • getName
    • getPoint
    • getPosition
    • getVelocity
    • inAir
  • CoalitionObject class members
    • getCoalition
    • getCountry
  • Weapon class members
    • getLauncher
    • getTarget
    • Desc.category
    • Desc.warhead.type
    • Desc.warhead.mass
    • Desc.warhead.caliber
    • Desc.warhead.explosiveMass
    • Desc.warhead.shapedExplosiveMass
    • Desc.warhead.shapedExplosiveArmorThickness
    • DescMissile.guidance
    • DescMissile.rangeMin
    • DescMissile.rangeMaxAltMin
    • DescMissile.rangeMaxAltMax
    • DescMissile.altMin
    • DescMissile.altMax
    • DescMissile.Nmax (max range?)
    • DescMissile.fuseDist
    • DescRocket.distMin
    • DescRocket.distMax
    • DescBomb.guidance
    • DescBomb.altMin
    • DescBomb.altMax

Unit

Primarily enhanced with GRPC.exporters.unit

  • Object class members
    • Category
    • destroy
    • isExists
    • getCategory
    • getTypeName
    • getDesc
    • hasAttribute
    • getName
    • getPoint
    • getPosition
    • getVelocity
    • inAir
  • CoalitionObject class members
    • getCoalition
    • getCountry
  • Unit Class members
    • isActive
    • getPlayerName
    • getID
    • getNumber
    • getController
    • getGroup
    • getCallsign
    • getLife
    • getLife0
    • getFuel
    • getAmmo
    • getSensors
    • hasSensors
    • getRadar
    • getDrawArgumentValue
    • getNearestCargos
    • enableEmission
    • getDescentCateogry
    • (static) getByName
    • (static) getDescByName

Airbase

  • Object class members
    • Category
    • destroy
    • isExists
    • getCategory
    • getTypeName
    • getDesc
    • hasAttribute
    • getName
    • getPoint
    • getPosition
    • getVelocity
    • inAir
  • CoalitionObject class members
    • getCoalition
    • getCountry
  • Airbase class members
    • getDesc
    • getCallsign
    • getUnit
    • getID
    • getParking
    • getRunways
    • getTechObjectPos
    • getRadioSilentMode
    • setRadioSilentMode

StaticObject

  • Object class members
    • Category
    • destroy
    • isExists
    • getCategory
    • getTypeName
    • getDesc
    • hasAttribute
    • getName
    • getPoint
    • getPosition
    • getVelocity
    • inAir
  • CoalitionObject class members
    • getCoalition
    • getCountry
  • StaticObject Class members
    • getID
    • getLife
    • getCargoDisplayName
    • getCargoWeight
    • getDrawArgumentValue
    • (static) getByName
    • (static) getDescByName

Group

  • (static) getByName
  • isExist
  • activate
  • destroy
  • getCategory
  • getCoalition
  • getName
  • getID
  • getUnit
  • getUnits
  • getSize
  • getController
  • enableEmission

Controller

  • setTask
  • resetTask
  • pushTask
  • popTask
  • hasTask
  • setCommand
  • setOption
  • setOnOff
  • knowTarget
  • isTargetDetected
  • getDetectedTargets
  • Main Tasks
    • mission
    • AttackGroup
    • AttackUnit
    • Bombing
    • CarpetBombing
    • AttackMapObject
    • BombingRunway
    • orbit
    • refueling
    • land
    • follow
    • followBigFormation
    • escort
    • Embarking
    • fireAtPoint
    • hold
    • FAC_AttackGroup
    • EmbarkToTransport
    • DisembarkFromTransport
    • CargoTransportation
    • goToWaypoint
    • groundEscort
  • Enroute Tasks
    • engageTargets
    • engageTargetsInZone
    • engageGroup
    • engageUnit
    • awacs
    • tanker
    • ewr
    • FAC_engageGroup
    • FAC
  • Commands
    • script
    • setCallsign
    • setFrequency
    • switchWaypoint
    • stopRoute
    • switchAction
    • setInvisible
    • setImmortal
    • activateBeacon
    • deactivateBeacon
    • eplrs
    • start
    • transmitMessage
    • stopTransmission
    • smoke_on_off
  • Options
    • ROE
    • Reaction To Threat
    • Radar Using
    • Flare Using
    • Formation
    • RTB On Bingo
    • silence
    • Disperse on Attack
    • Alarm State
    • ECM Using
    • Prohibit AA
    • Prohibit Jettison
    • Prohibit Afterburner
    • Prohibit AG
    • Missile Attack Range
    • Prohibit WP Pass Report
    • Engage Air Weapons
    • Option Radio Usage Contact
    • Option Radio Usage Kill
    • AC Engagement Range
    • jett tanks if empty
    • forced attack
    • Altitude Restriction for AAA Min
    • restrict targets
    • Altitude Restriction for AAA Max

Detection

TODO

Spot

  • (static) createInfraRed
  • createLaser
  • createInfraRed
  • destroy
  • getCategory
  • getPoint
  • setPoint
  • getCode
  • setCode