Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private List<Chunk> GetSurroundingChunks(Vector3Int position, int maxRange) {
- maxRange++;
- List<Chunk> chunks = new List<Chunk>();
- Vector3 localPosition = Chunk.WorldToLocalSpace(position);
- if (localPosition.x + maxRange > Chunk.chunkSize) {
- if (localPosition.y + maxRange > Chunk.chunkSize) {
- if (localPosition.z + maxRange > Chunk.chunkSize) {
- chunks.Add(GetChunkWorldSpace(position.x + maxRange, position.y + maxRange, position.z + maxRange));
- }
- else if (localPosition.z - maxRange < 0) {
- chunks.Add(GetChunkWorldSpace(position.x + maxRange, position.y + maxRange, position.z - maxRange));
- }
- chunks.Add(GetChunkWorldSpace(position.x + maxRange, position.y + maxRange, position.z));
- }
- else if (localPosition.y - maxRange < 0) {
- if (localPosition.z + maxRange > Chunk.chunkSize) {
- chunks.Add(GetChunkWorldSpace(position.x + maxRange, position.y - maxRange, position.z + maxRange));
- }
- else if (localPosition.z - maxRange < 0) {
- chunks.Add(GetChunkWorldSpace(position.x + maxRange, position.y - maxRange, position.z - maxRange));
- }
- chunks.Add(GetChunkWorldSpace(position.x + maxRange, position.y - maxRange, position.z));
- }
- if (localPosition.z + maxRange > Chunk.chunkSize) {
- chunks.Add(GetChunkWorldSpace(position.x + maxRange, position.y, position.z + maxRange));
- }
- else if (localPosition.z - maxRange < 0) {
- chunks.Add(GetChunkWorldSpace(position.x + maxRange, position.y, position.z - maxRange));
- }
- chunks.Add(GetChunkWorldSpace(position.x + maxRange, position.y, position.z));
- }
- else if (localPosition.x - maxRange < 0) {
- if (localPosition.y + maxRange > Chunk.chunkSize) {
- if (localPosition.z + maxRange > Chunk.chunkSize) {
- chunks.Add(GetChunkWorldSpace(position.x - maxRange, position.y + maxRange, position.z + maxRange));
- }
- else if (localPosition.z - maxRange < 0) {
- chunks.Add(GetChunkWorldSpace(position.x - maxRange, position.y + maxRange, position.z - maxRange));
- }
- chunks.Add(GetChunkWorldSpace(position.x - maxRange, position.y + maxRange, position.z));
- }
- else if (localPosition.y - maxRange < 0) {
- if (localPosition.z + maxRange > Chunk.chunkSize) {
- chunks.Add(GetChunkWorldSpace(position.x - maxRange, position.y - maxRange, position.z + maxRange));
- }
- else if (localPosition.z - maxRange < 0) {
- chunks.Add(GetChunkWorldSpace(position.x - maxRange, position.y - maxRange, position.z - maxRange));
- }
- chunks.Add(GetChunkWorldSpace(position.x - maxRange, position.y - maxRange, position.z));
- }
- if (localPosition.z + maxRange > Chunk.chunkSize) {
- chunks.Add(GetChunkWorldSpace(position.x - maxRange, position.y, position.z + maxRange));
- }
- else if (localPosition.z - maxRange < 0) {
- chunks.Add(GetChunkWorldSpace(position.x - maxRange, position.y, position.z - maxRange));
- }
- chunks.Add(GetChunkWorldSpace(position.x - maxRange, position.y, position.z));
- }
- if (localPosition.y + maxRange > Chunk.chunkSize) {
- if (localPosition.z + maxRange > Chunk.chunkSize) {
- chunks.Add(GetChunkWorldSpace(position.x, position.y + maxRange, position.z + maxRange));
- }
- else if (localPosition.z - maxRange < 0) {
- chunks.Add(GetChunkWorldSpace(position.x, position.y + maxRange, position.z - maxRange));
- }
- chunks.Add(GetChunkWorldSpace(position.x, position.y + maxRange, position.z));
- }
- else if (localPosition.y - maxRange < 0) {
- if (localPosition.z + maxRange > Chunk.chunkSize) {
- chunks.Add(GetChunkWorldSpace(position.x, position.y - maxRange, position.z + maxRange));
- }
- else if (localPosition.z - maxRange < 0) {
- chunks.Add(GetChunkWorldSpace(position.x, position.y - maxRange, position.z - maxRange));
- }
- chunks.Add(GetChunkWorldSpace(position.x, position.y - maxRange, position.z));
- }
- if (localPosition.z + maxRange > Chunk.chunkSize) {
- chunks.Add(GetChunkWorldSpace(position.x, position.y, position.z + maxRange));
- }
- else if (localPosition.z - maxRange < 0) {
- chunks.Add(GetChunkWorldSpace(position.x, position.y, position.z - maxRange));
- }
- return chunks;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement