Beispiel #1
0
        /// <summary>
        /// Get the apertures
        /// </summary>
        /// <param name="lensOptions"></param>
        /// <returns></returns>
        protected override IChunkResolutionAperture[] initializeApertures(ILensOptions lensOptions)
        {
            PlayerLensOptions playerLensOptions = (PlayerLensOptions)lensOptions;

            return(new IChunkResolutionAperture[] {
                new VoxelDataLoadedAperture(
                    this,
                    playerLensOptions.baseChunkRadius + MeshedChunkBuffer + LoadedChunkBuffer,
                    playerLensOptions.baseChunkRadiusHeightOverride == 0
            ? playerLensOptions.baseChunkRadius + MeshedChunkBuffer + LoadedChunkBuffer
            : playerLensOptions.baseChunkRadiusHeightOverride + ChunkBufferHeightOverride + ChunkBufferHeightOverride
                    ),
                new MeshGenerationAperture(
                    this,
                    playerLensOptions.baseChunkRadius + MeshedChunkBuffer,
                    playerLensOptions.baseChunkRadiusHeightOverride == 0
            ? playerLensOptions.baseChunkRadius + MeshedChunkBuffer
            : playerLensOptions.baseChunkRadiusHeightOverride + ChunkBufferHeightOverride
                    ),
                new ChunkVisibilityAperture(
                    this,
                    playerLensOptions.baseChunkRadius,
                    playerLensOptions.baseChunkRadiusHeightOverride == 0
            ? playerLensOptions.baseChunkRadius
            : playerLensOptions.baseChunkRadiusHeightOverride
                    )
            });
        }
Beispiel #2
0
 /// <summary>
 /// Create a new level of the given size that uses the given apetures.
 /// </summary>
 /// <param name="chunkBounds"></param>
 /// <param name="apeturesByPriority"></param>
 protected FocusLens(Level level, ILevelFocus focus, ILensOptions lensOptions)
 {
     this.level         = level;
     this.focus         = focus;
     apeturesByPriority = initializeApertures(lensOptions);
     foreach (IChunkResolutionAperture aperture in apeturesByPriority)
     {
         apeturesByResolution[aperture.resolution] = aperture;
     }
 }
Beispiel #3
0
 /// <summary>
 /// Get the initialized apertures this lens will be constructed of in order of priority
 /// </summary>
 /// <returns></returns>
 protected abstract IChunkResolutionAperture[] initializeApertures(ILensOptions lensOptions = null);