@@ -142,7 +142,8 @@ void CLuaWorldDefs::LoadFunctions()
142142 {" isGarageOpen" , IsGarageOpen},
143143 {" isTimeFrozen" , ArgumentParser<IsTimeFrozen>},
144144 {" isVolumetricShadowsEnabled" , ArgumentParser<IsVolumetricShadowsEnabled>},
145- {" isDynamicPedShadowsEnabled" , ArgumentParser<IsDynamicPedShadowsEnabled>}};
145+ {" isDynamicPedShadowsEnabled" , ArgumentParser<IsDynamicPedShadowsEnabled>},
146+ {" testSphereAgainstWorld" , ArgumentParser<TestSphereAgainstWorld>}};
146147
147148 // Add functions
148149 for (const auto & [name, func] : functions)
@@ -2297,3 +2298,15 @@ bool CLuaWorldDefs::ResetDynamicPedShadows() noexcept
22972298{
22982299 return g_pGame->GetSettings ()->ResetDynamicPedShadows ();
22992300}
2301+
2302+ CLuaMultiReturn<bool , CClientEntity*, int , float , float , float , float , float , float , int , eEntityType> CLuaWorldDefs::TestSphereAgainstWorld (CVector sphereCenter, float radius, std::optional<CClientEntity*> ignoredEntity, std::optional<bool > checkBuildings, std::optional<bool > checkVehicles, std::optional<bool > checkPeds, std::optional<bool > checkObjects, std::optional<bool > checkDummies, std::optional<bool > cameraIgnore)
2303+ {
2304+ STestSphereAgainstWorldResult result;
2305+ CClientEntity* collidedEntity = nullptr ;
2306+
2307+ CEntity* entity = g_pGame->GetWorld ()->TestSphereAgainstWorld (sphereCenter, radius, ignoredEntity.has_value () ? ignoredEntity.value ()->GetGameEntity () : nullptr , checkBuildings.value_or (true ), checkVehicles.value_or (true ), checkPeds.value_or (true ), checkObjects.value_or (true ), checkDummies.value_or (true ), cameraIgnore.value_or (false ), result);
2308+ if (entity)
2309+ collidedEntity = reinterpret_cast <CClientEntity*>(entity->GetStoredPointer ());
2310+
2311+ return {result.collisionDetected , collidedEntity, result.modelID , result.entityPosition .fX , result.entityPosition .fY , result.entityPosition .fZ , ConvertRadiansToDegrees (result.entityRotation .fX ), ConvertRadiansToDegrees (result.entityRotation .fY ), ConvertRadiansToDegrees (result.entityRotation .fZ ), result.lodID , result.type };
2312+ }
0 commit comments