private void OnInteractiblesPointsReceived(object interactiblesPoints,
                                                   TerrainInteractibles interactiblesType)
        {
            var rawPoints = (Vector3[])interactiblesPoints;

            for (var i = 0; i < rawPoints.Length; i++)
            {
                rawPoints[i] += _meshCenter;
            }

            switch (interactiblesType)
            {
            case TerrainInteractibles.Collectibles:
                if (_clearingSettings.createClearing)
                {
                    ClearCollectiblePointsAndSpawn(rawPoints);
                }
                else
                {
                    CollectiblesSpawner.instance.SpawnCollectibles(rawPoints, _parent);
                }
                break;

            case TerrainInteractibles.Droids:
                DroidSpawner.instance.SpawnDroids(rawPoints, _parent);
                break;
            }
        }
        public void RequestInteractiblesPoints(Vector3[] meshVertices,
                                               TerrainInteractibles interactiblesType)
        {
            ThreadedDataRequester.RequestData(
                () =>
            {
                switch (interactiblesType)
                {
                case TerrainInteractibles.Collectibles:
                    return(FixedRandomPointsSpawner.GeneratePoints(meshVertices,
                                                                   _levelSettings.maxCollectibles));

                case TerrainInteractibles.Droids:
                    return(FixedRandomPointsSpawner.GeneratePoints(meshVertices,
                                                                   _levelSettings.maxDroids));

                default:
                    return(FixedRandomPointsSpawner.GeneratePoints(meshVertices,
                                                                   _levelSettings.maxCollectibles));
                }
            },
                points =>
                OnInteractiblesPointsReceived(points, interactiblesType)
                );
        }