public void UpgradeFromData(VoxelData data, int sz, int offsetX, int offsetZ) { size = sz; nodes = new VoxelOctNode[data.sizeY/size+1]; for (int i=0; i<nodes.Length; i++) nodes[i] = new VoxelOctNode(); for (int y=0; y<data.sizeY; y++) for (int x=0; x<size; x++) for (int z=0; z<size; z++) { VoxelOctNode node = data.GetClosestNode(x+offsetX, y, z+offsetZ); SetBlock(x,y,z, node.type, node.exists); } }