`techCore.lua`
> This Source Code Form is subject to the terms of the bCDDL, v. 1.1.
This Source Code Form is subject to the terms of the bCDDL, v. 1.1. If a copy of the bCDDL was not distributed with this file, You can obtain one at http://beamng.com/bCDDL-1.1.txt
Module variable: M
Dependencies
tcom←tech/techCommunicationscenariosLoader←scenario/scenariosLoaderprocPrimitives←util/trackBuilder/proceduralPrimitivesjbeamIO←jbeam/iotechUtils←tech/techUtilsjbeamLoader←jbeam/loader
Hooks
onAnyMissionChangedonDrawDebugonFilesChangedonSerializeonDeserializedonInitonLoadingScreenFadeoutonRequestMissionScreenDataonPreRenderonScenarioLoadedonScenarioRestartedonVehicleConnectionReadyonVehicleInfoReadyonVehicleSpawnedonSensorCreatedonSensorRemoved
Exported Functions
M.notifyUI()
Line 346
Exported functions
Returns: server ~= nil
M.onAnyMissionChanged(state)
Line 359
Hooks
Returns: server ~= nil
M.onDrawDebug(dtReal, lastFocus)
Line 368
Returns: server ~= nil
M.onFilesChanged(files)
Line 402
Returns: server ~= nil
M.onSerialize()
Line 413
Returns: server ~= nil
M.onDeserialized(data)
Line 428
Returns: server ~= nil
M.isServerRunning()
Line 440
Returns: server ~= nil
M.openServer(port)
Line 444
M.closeServer()
Line 482
M.onInit()
Line 502
M.onLoadingScreenFadeout()
Line 539
M.onRequestMissionScreenData(mode)
Line 550
M.onPreRender(dt)
Line 554
M.onScenarioLoaded()
Line 626
M.onScenarioRestarted(scenario)
Line 633
Returns: false
M.onVehicleConnectionReady(vehicleID, port)
Line 649
Returns: false
M.onVehicleInfoReady(vehicleID, info)
Line 666
Returns: false end
M.onVehicleSpawned(vID)
Line 676
Returns: false -- keep false here -> do not process any more commands in this frame after loadscenario to avoid bugs
M.handleHello(request)
Line 693
Handlers
Returns: false
M.handleEcho(request)
Line 702
Returns: true
M.handleQuit(request)
Line 716
Returns: false end
M.handleLoadScenario(request)
Line 722
Returns: false end
M.handleStartScenario(request)
Line 773
Returns: false end
M.handleRestartScenario(request)
Line 799
Returns: true
M.handleStopScenario(request)
Line 813
Returns: true
M.handleGetScenarioName(request)
Line 818
Returns: true
M.handleHideHUD(request)
Line 830
Returns: true
M.handleShowHUD(request)
Line 834
Returns: true
M.handleSetPhysicsDeterministic(request)
Line 838
Returns: true
M.handleSetPhysicsNonDeterministic(request)
Line 847
Returns: true
M.handleFPSLimit(request)
Line 852
Returns: false end
M.handleRemoveFPSLimit(request)
Line 859
Returns: true
M.handlePause(request)
Line 864
Returns: block('spawnVehicle', request, name)
M.handleResume(request)
Line 869
Returns: block('spawnVehicle', request, name)
M.handleStep(request)
Line 874
Returns: false
M.handleTeleport(request)
Line 883
Returns: false
M.handleTeleportScenarioObject(request)
Line 914
Returns: false end
M.handleStartVehicleConnection(request)
Line 926
Returns: false
M.handleWaitForSpawn(request)
Line 959
Returns: false
M.handleSpawnVehicle(request)
Line 964
Returns: true
M.handleDespawnVehicle(request)
Line 1035
Returns: true
M.handleSensorRequest(request)
Line 1044
Returns: true
M.handleGetDecalRoadVertices(request)
Line 1062
M.handleGetDecalRoadData(request)
Line 1069
TODO: DEPRECATED, USE handleGetRoadNetwork
M.handleGetRoadNetwork(request)
Line 1086
M.handleGetDecalRoadEdges(request)
Line 1121
M.handleGetTimeOfDay(request)
Line 1150
Returns: false
M.handleTimeOfDayChange(request)
Line 1156
Returns: false
M.handleGetAdvancedImuId(request)
Line 1187
Returns: false
M.handleGetGPSId(request)
Line 1193
Returns: false
M.handleGetPowertrainId(request)
Line 1199
Returns: false
M.handleGetMeshId(request)
Line 1205
Returns: false
M.handleGetIdealRADARId(request)
Line 1211
Returns: false
M.handleGetRoadsSensorId(request)
Line 1217
Returns: false
M.handleOpenCamera(request)
Line 1223
Returns: false
M.handleCloseCamera(request)
Line 1283
Returns: true
M.handlePollCamera(request)
Line 1295
Returns: true
M.handleSendAdHocRequestCamera(request)
Line 1323
Returns: true
M.handleIsAdHocPollRequestReadyCamera(request)
Line 1329
Returns: true
M.handleCollectAdHocPollRequestCamera(request)
Line 1335
Returns: false
M.handleGetFullCameraRequest(request)
Line 1342
TODO Should be replaced when GE-2170 is complete.
Returns: false
M.handleCameraWorldPointToPixel(request)
Line 1362
Returns: false
M.handleGetCameraSensorPosition(request)
Line 1369
Returns: false
M.handleGetCameraSensorDirection(request)
Line 1375
Returns: false
M.handleGetCameraSensorUp(request)
Line 1381
Returns: false
M.handleGetCameraMaxPendingGpuRequests(request)
Line 1387
Returns: false
M.handleGetCameraRequestedUpdateTime(request)
Line 1393
Returns: false
M.handleGetCameraUpdatePriority(request)
Line 1399
Returns: false
M.handleSetCameraSensorPosition(request)
Line 1405
Returns: false
M.handleSetCameraSensorDirection(request)
Line 1410
Returns: false
M.handleSetCameraMaxPendingGpuRequests(request)
Line 1415
Returns: false
M.handleSetCameraRequestedUpdateTime(request)
Line 1420
Returns: false
M.handleSetCameraUpdatePriority(request)
Line 1425
Returns: false
M.handleOpenLidar(request)
Line 1430
Returns: false
M.handleCloseLidar(request)
Line 1482
M.handlePollLidar(request)
Line 1493
M.handleSendAdHocRequestLidar(request)
Line 1519
M.handleIsAdHocPollRequestReadyLidar(request)
Line 1525
M.handleCollectAdHocPollRequestLidar(request)
Line 1531
M.handleGetLidarSensorPosition(request)
Line 1537
M.handleGetLidarSensorDirection(request)
Line 1543
Returns: false
M.handleGetLidarMaxPendingGpuRequests(request)
Line 1549
Returns: false
M.handleGetLidarRequestedUpdateTime(request)
Line 1555
Returns: false
M.handleGetLidarUpdatePriority(request)
Line 1561
Returns: false
M.handleGetLidarVerticalResolution(request)
Line 1567
Returns: false
M.handleGetLidarFrequency(request)
Line 1573
Returns: false
M.handleGetLidarMaxDistance(request)
Line 1579
Returns: false
M.handleGetLidarIsVisualised(request)
Line 1585
Returns: false
M.handleGetLidarIsAnnotated(request)
Line 1591
Returns: false
M.handleSetLidarVerticalResolution(request)
Line 1597
Returns: false
M.handleSetLidarFrequency(request)
Line 1602
Returns: false
M.handleSetLidarMaxDistance(request)
Line 1607
Returns: false
M.handleSetLidarIsVisualised(request)
Line 1612
Returns: false
M.handleSetLidarIsAnnotated(request)
Line 1617
Returns: false
M.handleSetLidarMaxPendingGpuRequests(request)
Line 1622
Returns: false
M.handleSetLidarRequestedUpdateTime(request)
Line 1627
Returns: false
M.handleSetLidarUpdatePriority(request)
Line 1632
Returns: false
M.handleOpenUltrasonic(request)
Line 1637
Returns: false
M.handleCloseUltrasonic(request)
Line 1684
M.handlePollUltrasonic(request)
Line 1696
Returns: false
M.handleSendAdHocRequestUltrasonic(request)
Line 1711
Returns: false
M.handleIsAdHocPollRequestReadyUltrasonic(request)
Line 1717
Returns: false
M.handleCollectAdHocPollRequestUltrasonic(request)
Line 1723
Returns: false
M.handleGetUltrasonicSensorPosition(request)
Line 1729
Returns: false
M.handleGetUltrasonicSensorDirection(request)
Line 1735
Returns: false
M.handleGetUltrasonicMaxPendingGpuRequests(request)
Line 1741
Returns: false
M.handleGetUltrasonicRequestedUpdateTime(request)
Line 1747
Returns: false
M.handleGetUltrasonicUpdatePriority(request)
Line 1753
Returns: false
M.handleGetUltrasonicIsVisualised(request)
Line 1759
Returns: false
M.handleSetUltrasonicMaxPendingGpuRequests(request)
Line 1765
Returns: false
M.handleSetUltrasonicRequestedUpdateTime(request)
Line 1770
Returns: false
M.handleSetUltrasonicUpdatePriority(request)
Line 1775
Returns: false
M.handleSetUltrasonicIsVisualised(request)
Line 1780
Returns: false
M.handleOpenRadar(request)
Line 1785
Returns: false
M.handleCloseRadar(request)
Line 1839
M.handlePollRadar(request)
Line 1851
M.handleGetPPIRadar(request)
Line 1866
Returns: false
M.handleGetRangeDopplerRadar(request)
Line 1881
Returns: false
M.handleSendAdHocRequestRadar(request)
Line 1896
Returns: false
M.handleIsAdHocPollRequestReadyRadar(request)
Line 1902
Returns: false
M.handleCollectAdHocPollRequestRadar(request)
Line 1908
Returns: false
M.handleGetRadarSensorPosition(request)
Line 1914
Returns: true
M.handleGetRadarSensorDirection(request)
Line 1920
Returns: true
M.handleGetRadarMaxPendingGpuRequests(request)
Line 1926
Returns: true
M.handleGetRadarRequestedUpdateTime(request)
Line 1932
Returns: true
M.handleGetRadarUpdatePriority(request)
Line 1938
Returns: true
M.handleSetRadarMaxPendingGpuRequests(request)
Line 1944
Returns: true
M.handleSetRadarRequestedUpdateTime(request)
Line 1949
Returns: true
M.handleSetRadarUpdatePriority(request)
Line 1954
Returns: true
M.handleOpenAdvancedIMU(request)
Line 1959
Returns: false
M.handleCloseAdvancedIMU(request)
Line 1989
Returns: false
M.handlePollAdvancedImuGE(request)
Line 2002
Returns: false
M.handleSendAdHocRequestAdvancedIMU(request)
Line 2020
Returns: true
M.handleIsAdHocPollRequestReadyAdvancedIMU(request)
Line 2026
Returns: true
M.handleCollectAdHocPollRequestAdvancedIMU(request)
Line 2032
Returns: true
M.handleSetAdvancedIMURequestedUpdateTime(request)
Line 2038
Returns: true
M.handleSetAdvancedIMUIsUsingGravity(request)
Line 2043
Returns: true
M.handleSetAdvancedIMUIsVisualised(request)
Line 2048
Returns: false
M.handleOpenGPS(request)
Line 2053
Returns: false
M.handleCloseGPS(request)
Line 2081
Returns: false
M.handlePollGPSGE(request)
Line 2094
Returns: true
M.handleSendAdHocRequestGPS(request)
Line 2112
Returns: true
M.handleIsAdHocPollRequestReadyGPS(request)
Line 2118
Returns: true
M.handleCollectAdHocPollRequestGPS(request)
Line 2124
Returns: false
M.handleSetGPSRequestedUpdateTime(request)
Line 2130
Returns: false
M.handleSetGPSIsVisualised(request)
Line 2135
Returns: false
M.handleOpenPowertrain(request)
Line 2140
Returns: false
M.handleClosePowertrain(request)
Line 2161
Returns: false
M.handlePollPowertrainGE(request)
Line 2174
Returns: false
M.handleSendAdHocRequestPowertrain(request)
Line 2192
Returns: false
M.handleIsAdHocPollRequestReadyPowertrain(request)
Line 2198
Returns: false
M.handleCollectAdHocPollRequestPowertrain(request)
Line 2204
Returns: false
M.handleSetPowertrainRequestedUpdateTime(request)
Line 2210
Returns: false
M.handleOpenMesh(request)
Line 2215
Returns: true
M.handleCloseMesh(request)
Line 2235
Returns: true
M.handleSendAdHocRequestMesh(request)
Line 2248
Returns: true
M.handleIsAdHocPollRequestReadyMesh(request)
Line 2254
Returns: false
M.handleCollectAdHocPollRequestMesh(request)
Line 2260
Returns: false
M.handleSetMeshRequestedUpdateTime(request)
Line 2266
Returns: false
M.handleOpenIdealRADAR(request)
Line 2271
Returns: false
M.handleCloseIdealRADAR(request)
Line 2291
Returns: true
M.handlePollIdealRADARGE(request)
Line 2304
Returns: true
M.handleSendAdHocRequestIdealRADAR(request)
Line 2322
Returns: true
M.handleIsAdHocPollRequestReadyIdealRADAR(request)
Line 2328
Returns: false
M.handleCollectAdHocPollRequestIdealRADAR(request)
Line 2334
Returns: false
M.handleSetIdealRADARRequestedUpdateTime(request)
Line 2340
Returns: false
M.handleOpenRoadsSensor(request)
Line 2345
Returns: false
M.handleCloseRoadsSensor(request)
Line 2366
Returns: false
M.handlePollRoadsSensorGE(request)
Line 2379
Returns: false
M.handleSendAdHocRequestRoadsSensor(request)
Line 2397
Returns: false
M.handleIsAdHocPollRequestReadyRoadsSensor(request)
Line 2403
Returns: false
M.handleCollectAdHocPollRequestRoadsSensor(request)
Line 2409
Returns: false
M.handleSetRoadsSensorRequestedUpdateTime(request)
Line 2415
Returns: false
M.handleOpenVehicleFeeder(request)
Line 2420
Returns: false
M.handleCloseVehicleFeeder(request)
Line 2435
M.handleIsTimeEvolutionComplete(request)
Line 2448
M.handleGetRoadGraph(request)
Line 2455
M.handleExportOpenDrive(request)
Line 2461
M.handleExportOpenStreetMap(request)
Line 2468
M.handleExportSumo(request)
Line 2474
M.handleResetNavgraph(request)
Line 2482
M.handleGetBeamData(request)
Line 2488
M.handleGetFullTriangleData(request)
Line 2494
M.handleGetWheelTriangleData(request)
Line 2500
Returns: false
M.handleGetNodePositions(request)
Line 2506
Returns: false
M.handleGetClosestMeshPointToGivenPoint(request)
Line 2512
Returns: false
M.handleGetClosestTriangle(request)
Line 2518
Returns: false
M.handleSetWeatherPreset(request)
Line 2524
Returns: false
M.handleDisplayGuiMessage(request)
Line 2531
Returns: false
M.handleSwitchVehicle(request)
Line 2537
Returns: false
M.handleSetFreeCamera(request)
Line 2544
Returns: false
M.handleParticlesEnabled(request)
Line 2554
Returns: false
M.handleAnnotateParts(request)
Line 2560
Returns: false
M.handleRevertAnnotations(request)
Line 2566
Returns: false
M.handleGetPartAnnotations(request)
Line 2572
Returns: false
M.handleGetPartAnnotation(request)
Line 2582
Returns: false
M.handleGetAnnotations(request)
Line 2591
Returns: false
M.handleFindObjectsClass(request)
Line 2605
M.handleCreateCylinder(request)
Line 2646
Returns: false
M.handleCreateBump(request)
Line 2661
Returns: false
M.handleCreateCone(request)
Line 2679
Returns: false
M.handleCreateCube(request)
Line 2694
Returns: false
M.handleCreateRing(request)
Line 2708
Returns: false
M.handleRemoveObject(request)
Line 2723
Returns: false
M.handleGetBBoxCorners(request)
Line 2735
M.handleGetGravity(request)
Line 2749
M.handleSetGravity(request)
Line 2753
M.handleGetAvailableVehicles(request)
Line 2759
M.handleSpawnTraffic(request)
Line 2791
Returns: false
M.handleStartTraffic(request)
Line 2802
Returns: false
M.handleResetTraffic(request)
Line 2820
Returns: false
M.handleStopTraffic(request)
Line 2825
Returns: false
M.handleChangeSetting(request)
Line 2831
Returns: false
M.handleApplyGraphicsSetting(request)
Line 2838
Returns: false
M.handleSetRelativeCam(request)
Line 2843
Returns: false
M.handleAddDebugSpheres(request)
Line 2865
M.handleRemoveDebugObjects(request)
Line 2880
M.handleAddDebugPolyline(request)
Line 2887
M.handleAddDebugCylinder(request)
Line 2903
Returns: false
M.handleAddDebugTriangle(request)
Line 2914
Returns: false
M.handleAddDebugRectangle(request)
Line 2926
Returns: false
M.handleAddDebugText(request)
Line 2939
Returns: false
M.handleAddDebugSquarePrism(request)
Line 2950
Returns: false
M.handleQueueLuaCommandGE(request)
Line 2964
Returns: false
M.handleGetLevels(request)
Line 2986
Returns: false
M.handleGetScenarios(request)
Line 2992
Returns: false
M.handleGetCurrentScenario(request)
Line 3018
Returns: false
M.handleCreateScenario(request)
Line 3062
Returns: false
M.handleDeleteScenario(request)
Line 3153
Returns: block('vehicleInfo', request, {
M.handleGameStateRequest(request)
Line 3166
Returns: node
M.handleGetPlayerVehicleID(request)
Line 3183
Returns: string.split(t)
M.handleGetCurrentVehicles(request)
Line 3197
Returns: string.split(t)
M.handleGetSceneTree(request)
Line 3263
TODO: DEPRECATED, USE handleSyncScene
Returns: string.split(t)
M.handleSyncScene(request)
Line 3453
M.handleGetObject(request)
Line 3460
M.handleGetPartConfig(request)
Line 3472
M.handleGetPartConfigForConfig(request)
Line 3492
M.handleGetPartOptions(request)
Line 3509
TODO: DEPRECATED, USE GetPartConfig
Returns: false
M.handleSetPartConfig(request)
Line 3524
Returns: false
M.handleSetPlayerCameraMode(request)
Line 3544
Returns: false
M.handleGetPlayerCameraMode(request)
Line 3577
Returns: false
M.handleLoadTrackBuilderTrack(request)
Line 3588
Returns: false
M.handleSetLicensePlate(request)
Line 3611
Returns: false
M.handleGetSystemInfo(request)
Line 3626
Returns: false
M.handleImportHeightmap(request)
Line 3648
Imports a heightmap from beamngpy (the old way). THIS IS DEPRECATED AS OF 08/08/2024.
Returns: false
M.handleTerrainAndRoadImport(request)
Line 3656
Imports a terrain and lays a collection of roads on it along with some terraforming. The path of the terrain .png is provided. Roads are provided as a table/dictionary.
Returns: false
M.handlePeaksAndRoadImport(request)
Line 3664
Creates a a terrain from a collection of peaks and troughs on a grid, and lays a collection of roads on them, along with some terraforming. The peaks and roads are provided as table/dictionaries.
Returns: false
M.handleResetTerrain(request)
Line 3671
Resets the terrain and roads created by a call to the terrain+roads or peaks+roads importer functions (see above).
Returns: false
M.handleOpenCloseWorldEditor(request)
Line 3678
Opens/closes the world editor, by call.
Returns: false
M.handleUnpackVehicleSensorConfiguration(request)
Line 3704
Returns: false
M.handleUnpackMapSensorConfiguration(request)
Line 3730
Returns: false
M.handleGetEnvironmentPaths(request)
Line 3742
M.handleLoadPlatoon(request)
Line 3751
platoon handler
M.handlePlatoonSpeed(request)
Line 3795
M.handleJoinPlatoon(request)
Line 3818
M.handleJoinMiddlePlatoon(request)
Line 3841
Returns: tcomParams
M.handleLeavePlatoon(request)
Line 3866
Returns: M
M.handleLoadUltrasonicADAS(request)
Line 3889
ultrasonic adas handler
Returns: M
M.handleUnloadUltrasonicADAS(request)
Line 3905
Returns: M
M.onSensorCreated(sensorType, sensorId)
Line 3910
Returns: M
M.onSensorRemoved(sensorType, sensorId)
Line 3918
Returns: M
M.setTcomParams(ip, port)
Line 3929
Returns: M
M.getTcomParams()
Line 3938
Returns: M
M.isScenarioUnrestricted()
Line 3942
Returns: M
Internal Functions
Show internal functions
addFrameDelayFunc(func, delay)(line 87)Helper functions
block(reason, request, data)(line 91)isBlocking(reason)(line 103)stopBlocking()(line 110)checkVehicleInfoPending()(line 118)getRunningFlowgraphManager()(line 135)getCurrentMissionMainButton()(line 144)translateNested(name)(line 169)missionPathFromId(missionId)(line 180)refreshScenarioList()(line 187)reportMissingLicenseFeature(request)(line 208)reportRendererNotAvailableFeature(request)(line 214)reportMissingLinuxFeature(request)(line 220)setup()(line 226)getSensorData(request, callback)(line 242)getNextSensorData(requests, response, callback)(line 253)placeObject(name, mesh, pos, rot, annotation)(line 277)tableToVec3(point, cling, offset)(line 306)setScenarioRestrictions(enabled)(line 315)getSceneTreeNode(obj)(line 3246)TODO: DEPRECATED, USE getSceneTreeNodeFull
serializeGenericObject(obj)(line 3282)getSerializedObject(obj)(line 3419)getSceneTreeNodeFull(root)(line 3431)coeffs2PosVS(c, veh)(line 3686)Compute the vehicle space position of a sensor, given the local reference frame coefficients. [This is used with the ADAS Sensor Configuration tool].
sensor2VS(dirLoc, upLoc, veh)(line 3696)Compute the vehicle space/world space frame of a sensor, given the local reference frame. [This is used with the ADAS Sensor Configuration tool].