/* * Constructor * chunkZIndex, chunkXIndex is the location of the chunk we are currently working on * * e.g. chunk 0 will be based at 0,0,0 in the Universe */ public Chunk(int chunkZIndex, int chunkXIndex, Vector3 position) { this.chunkZIndex = chunkZIndex; this.chunkXIndex = chunkXIndex; chunk = new GameObject(Universe.BuildChunkName(position)); chunk.transform.position = position; // BuildChunk(); }
/* * This check to see if there are neighbouring chunks along the edges. * It retrieves all neighbours to be used later */ private void CheckForNeighbourChunks() { // Check to see if we have neighbouring chunks // NegativeZ - back Vector3 negativeZPos = new Vector3(chunk.transform.position.x, chunk.transform.position.y, chunk.transform.position.z - Universe.chunkSize); string chunkName = Universe.BuildChunkName(negativeZPos); if (Universe.chunks.TryGetValue(chunkName, out negativeZchunk)) { isNegativeZ_Chunk = true; } // PositiveZ - forward Vector3 positiveZPos = new Vector3(chunk.transform.position.x, chunk.transform.position.y, chunk.transform.position.z + Universe.chunkSize); chunkName = Universe.BuildChunkName(positiveZPos); if (Universe.chunks.TryGetValue(chunkName, out positiveZchunk)) { isPositiveZ_Chunk = true; } // NegativeX - left Vector3 negativeXPos = new Vector3(chunk.transform.position.x - Universe.chunkSize, chunk.transform.position.y, chunk.transform.position.z); chunkName = Universe.BuildChunkName(negativeXPos); if (Universe.chunks.TryGetValue(chunkName, out negativeXchunk)) { isNegativeX_Chunk = true; } // PositiveX - right Vector3 positiveXPos = new Vector3(chunk.transform.position.x + Universe.chunkSize, chunk.transform.position.y, chunk.transform.position.z); chunkName = Universe.BuildChunkName(positiveXPos); if (Universe.chunks.TryGetValue(chunkName, out positiveXchunk)) { isPositiveX_Chunk = true; } }