public void ReuseChunk(Chunk _chunk, intVector3 _position) { // intVector3 voxel_world_position = new intVector3(_x, _y, _z);//the coordinates of chunk in the world if (_chunk == null) { CreateChunk(_position.x, _position.y, _position.z); } _chunk.transform.position = _position; _chunk.voxel_world_position = _position; _chunk.gameObject.SetActive(true); _chunk.voxel_world = this; _chunk.transform.parent = transform; _chunk.name = "World Chunk"; _chunk.gameObject.isStatic = true; chunks.Add(_position, _chunk);//store chunk in dictionary by its position _chunk = terrain_generator.GenerateChunk(_chunk); _chunk.SetVoxelsUnEdited(); VoxelWorldSaver.Load(_chunk); }
public void CreateChunk(int _x, int _y, int _z) { intVector3 voxel_world_position = new intVector3(_x, _y, _z);//the coordinates of chunk in the world if (chunks.ContainsKey(voxel_world_position)) { return; } GameObject chunk_object = Instantiate(chunk_prefab, new Vector3(voxel_world_position.x, voxel_world_position.y, voxel_world_position.z), Quaternion.Euler(Vector3.zero));//create chunk //set chunk parameters Chunk chunk = chunk_object.GetComponent <Chunk>(); chunk.voxel_world_position = voxel_world_position; chunk.voxel_world = this; chunk.transform.parent = transform; chunk.name = "World Chunk"; chunk.gameObject.isStatic = true; chunks.Add(voxel_world_position, chunk);//store chunk in dictionary by its position chunk = terrain_generator.GenerateChunk(chunk); chunk.SetVoxelsUnEdited(); VoxelWorldSaver.Load(chunk); }