private PathChunkArea GenerateAreaForLevelPathCell(LevelPathCell levelPathCell) { var area = new PathChunkArea(); area.HorizontalChunkCount = _rng.RandiRange(_minChunkWidth, _maxChunkWidth); area.VerticalChunkCount = _rng.RandiRange(_minChunkHeight, _maxChunkHeight); area.LevelPathCell = levelPathCell; return(area); }
private void FillArea(PathChunkArea area) { for (int x = (int)area.ChunkOffset.x; x < area.ChunkOffset.x + area.HorizontalChunkCount; x++) { for (int y = (int)area.ChunkOffset.y; y < area.ChunkOffset.y + area.VerticalChunkCount; y++) { var chunkPos = new Vector2(x, y); FillChunk(chunkPos); } } }
private void AlignAreasY(PathChunkArea rootChunkArea, PathChunkArea toAlignChunkArea) { toAlignChunkArea.ChunkOffset.y = rootChunkArea.ChunkOffset.y; toAlignChunkArea.ChunkOffset.y += _rng.RandiRange(-(toAlignChunkArea.VerticalChunkCount - 1), rootChunkArea.VerticalChunkCount - 1); }
private void AlignAreasX(PathChunkArea rootChunkArea, PathChunkArea toAlignChunkArea) { toAlignChunkArea.ChunkOffset.x = rootChunkArea.ChunkOffset.x; toAlignChunkArea.ChunkOffset.x += _rng.RandiRange(-(toAlignChunkArea.HorizontalChunkCount - 1), rootChunkArea.HorizontalChunkCount - 1); }