Mod service: FindService

## Available commands:

```
Exor::Entities                   	FindPlayerSpawnPoints();
std::pair<bool, Exor::Vector3 >  	FindEmptySpotInRadius( Exor::Entity::Id ent, float radius, const Exor::String & typeCheck, const Exor::String & excludedTerrainType );
std::pair<bool, Exor::Vector3 >  	FindEmptySpotInRadius( Exor::Entity::Id ent, float minRadius, float maxRadius , const Exor::String & typeCheck, const Exor::String & excludedTerrainType );
std::pair<bool, Exor::Vector3 >  	FindEmptySpotInRadius( Exor::Entity::Id ent, float minRadius, float maxRadius, const Exor::String & typeCheck, const Exor::String & excludedTerrainType, float minBorderDistance, float maxBorderDistance );
Exor::Vector<Exor::Vector3 >     	FindEmptySpotsInRadius( Exor::Entity::Id ent, float minRadius, float maxRadius, const Exor::String & typeCheck, const Exor::String & excludedTerrainType );
Exor::Vector<Exor::Vector3 >     	FindEmptySpotsInRadius( Exor::Entity::Id ent, float minRadius, float maxRadius, const Exor::String & typeCheck, const Exor::String & excludedTerrainType, float minBorderDistance, float maxBorderDistance );
Exor::Vector<Exor::Vector3 >     	FindEmptySpotsInRadius( Exor::Entity::Id ent, float minRadius, float maxRadius, const Exor::String & typeCheck, const Exor::String & excludedTerrainType, float minBorderDistance, float maxBorderDistance, size_t count );
Exor::Vector<Exor::Vector3 >     	FindSpotsInBounds( Exor::Entity::Id ent, const Exor::String & typeCheck, const Exor::String & excludedTerrainType );
std::pair<bool, Exor::Vector3>   	FindEmptyCultivatorSpotInRadius( Exor::Entity ent, float radius, const Exor::String & typeCheck, const Exor::String & excludedTerrainType );
bool                             	IsSpotEmpty( Exor::Vector3 position );
bool                             	IsGridMarkedWithLayer( Exor::Vector3 position, Exor::String layerName );
void                             	CreateFindEmptySpotRequest( Exor::Entity entity, Exor::String tag, float radius );
std::pair<Exor::Entity, Exor::Vector3> 	FindNearestBuilding( Exor::Entity::Id ent );
Exor::Vector<Exor::Vector3 >     	GetSpotsInRadius( Exor::Entity::Id ent, float minRadius, float maxRadius );
EntityIds               		FindEntitiesByPredicateInRadius( Entity::Id entity, float radius, const Lua::Object & predicate );
EntityIds               		FindEntitiesByPredicateInBox( Vector3 min, Vector3 max, const Lua::Object & predicate );
EntityIds               		FindEntitiesByName( const char * name );
EntityIds               		FindEntitiesByGroup( const char * group );
EntityIds               		FindEntitiesByType( const char * type );
EntityIds               		FindEntitiesByBlueprint( const char * blueprint );
EntityIds               		FindEntitiesByNameInRadius( Entity::Id entity, const char * name, float radius );
EntityIds               		FindEntitiesByGroupInRadius( Entity::Id entity, const char * group, float radius );
EntityIds               		FindEntitiesByTypeInRadius( Entity::Id entity, const char * type, float radius );
EntityIds               		FindEntitiesByBlueprintInRadius( Entity::Id entity, const char * blueprint, float radius );
EntityIds               		FindEntitiesByGroupInBox( const char * group, Vector3 min, Vector3 max );
EntityIds               		FindEntitiesByTypeInBox( const char * type, Vector3 min, Vector3 max );
EntityIds               		FindEntitiesByBlueprintInBox( const char * blueprint, Vector3 min, Vector3 max );
EntityIds               		FindEntitiesByTeamInBox(const char* team, Aabb box );
Entity::Id              		FindEntityByName( const char * name );
Entity::Id              		FindEntityByGroup( const char * group );
Entity::Id              		FindEntityByType( const char * type );
Entity::Id              		FindEntityByBlueprint( const char * blueprint );
Entity::Id              		FindEntityByNameInDistance( Entity::Id entity, const char * name, float radius );
Entity::Id              		FindEntityByGroupInDistance( Entity::Id entity, const char * group, float radius );
Entity::Id              		FindEntityByTypeInDistance( Entity::Id entity, const char * type, float radius );
Entity::Id              		FindEntityByBlueprintInDistance( Entity::Id entity, const char * blueprint, float radius );
Entity::Id              		FindEntityByBlueprintInDistanceFromPos( Vector3 pos, const char * blueprint, float radius );
Entity::Id              		FindEntityByGroupInDistanceFromPos( Vector3 pos, const char * group, float radius );
Entity::Id              		FindEntityByNameInDistanceRange( Entity::Id entity, const char * name, float maxRadius, float minRadius );
Entity::Id              		FindEntityByGroupInDistanceRange( Entity::Id entity, const char * group, float maxRadius, float minRadius );
Entity::Id              		FindEntityByTypeInDistanceRange( Entity::Id entity, const char * type, float maxRadius, float minRadius );
Entity::Id              		FindEntityByBlueprintInDistanceRange( Entity::Id entity, const char * blueprint, float maxRadius, float minRadius );

```