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) ); }