public TerrainChunk GetGeneratedChunk(Vector2i chunkPosition) { if (LoadedChunks.ContainsKey(chunkPosition)) return LoadedChunks[chunkPosition]; return null; }
public bool ChunkCanBeRemoved(int x, int z) { var key = new Vector2i(x, z); return RequestedChunks.ContainsKey(key) || ChunksBeingGenerated.ContainsKey(key) || LoadedChunks.ContainsKey(key); }
public TerrainChunk(TerrainChunkSettings settings, NoiseProvider noiseProvider, int x, int z) { HeightmapThreadLockObject = new object(); Settings = settings; NoiseProvider = noiseProvider; Neighborhood = new TerrainChunkNeighborhood(); Position = new Vector2i(x, z); }
private List<Vector2i> GetChunkPositionsInRadius(Vector2i chunkPosition, int radius) { var result = new List<Vector2i>(); for (var zCircle = -radius; zCircle <= radius; zCircle++) { for (var xCircle = -radius; xCircle <= radius; xCircle++) { if (xCircle * xCircle + zCircle * zCircle < radius * radius) result.Add(new Vector2i(chunkPosition.X + xCircle, chunkPosition.Z + zCircle)); } } return result; }
public bool IsChunkGenerated(Vector2i chunkPosition) { return(GetGeneratedChunk(chunkPosition) != null); }
public bool IsChunkGenerated(Vector2i chunkPosition) { return GetGeneratedChunk(chunkPosition) != null; }