public static OpenCog.Builder.OCMeshBuilder Build(OpenCog.BlockSet.BaseBlockSet.OCFluidBlock fluid)
	{
		OpenCog.Builder.OCMeshBuilder mesh = new OpenCog.Builder.OCMeshBuilder();
		for(int i=0; i<OpenCog.Builder.OCCubeBuilder.vertices.Length; i++)
		{
			mesh.AddFaceIndices(0);
			mesh.AddVertices(OpenCog.Builder.OCCubeBuilder.vertices[i], UnityEngine.Vector3.zero);
			mesh.AddNormals(OpenCog.Builder.OCCubeBuilder.normals[i]);
			mesh.AddTexCoords(fluid.GetFaceUV());
			mesh.AddFaceColor(new UnityEngine.Color(0, 0, 0, 1));
		}
		return mesh;
	}
	private static void BuildFace(OpenCog.BlockSet.BaseBlockSet.OCCubeBlock.CubeFace face, OpenCog.BlockSet.BaseBlockSet.OCFluidBlock fluid, UnityEngine.Vector3 localPos, OpenCog.Builder.OCMeshBuilder mesh)
	{
		int iFace = (int)face;
		
		mesh.AddFaceIndices(fluid.AtlasID);
		mesh.AddVertices(OpenCog.Builder.OCCubeBuilder.vertices[iFace], localPos);
		mesh.AddNormals(OpenCog.Builder.OCCubeBuilder.normals[iFace]);
		mesh.AddTexCoords(fluid.GetFaceUV());
	}
	private static void BuildFace(OpenCog.BlockSet.BaseBlockSet.OCCubeBlock.CubeFace face, OpenCog.BlockSet.BaseBlockSet.OCCactusBlock cactus, Vector3 localPos, OpenCog.Builder.OCMeshBuilder mesh) {
		int iFace = (int)face;
		
		mesh.AddFaceIndices( cactus.AtlasID );
		mesh.AddVertices( vertices[iFace], localPos );
		mesh.AddNormals( normals[iFace] );
		mesh.AddTexCoords( cactus.GetFaceUV(face) );
	}
	//---------------------------------------------------------------------------

	#region Private Member Data

	//---------------------------------------------------------------------------
	

			
	//---------------------------------------------------------------------------

	#endregion

	//---------------------------------------------------------------------------

	#region Accessors and Mutators

	//---------------------------------------------------------------------------
		

			
	//---------------------------------------------------------------------------

	#endregion

	//---------------------------------------------------------------------------

	#region Public Member Functions

	//---------------------------------------------------------------------------

	public static OpenCog.Builder.OCMeshBuilder Build(OpenCog.BlockSet.BaseBlockSet.OCCactusBlock cactus) {
		OpenCog.Builder.OCMeshBuilder mesh = new OpenCog.Builder.OCMeshBuilder();
		for(int i=0; i<vertices.Length; i++) {
			mesh.AddFaceIndices( 0 );
			mesh.AddVertices( vertices[i], Vector3.zero );
			mesh.AddNormals( normals[i] );
			
			Vector2[] texCoords = cactus.GetFaceUV((OCCubeBlock.CubeFace)i);
			mesh.AddTexCoords(texCoords);
			mesh.AddFaceColor( new Color(0,0,0,1) );
		}
		return mesh;
	}
	public static OpenCog.Builder.OCMeshBuilder Build(OpenCog.BlockSet.BaseBlockSet.OCCrossBlock cross)
	{
		OpenCog.Builder.OCMeshBuilder mesh = new OpenCog.Builder.OCMeshBuilder();
		
		mesh.AddIndices(0, indices);
		mesh.AddVertices(vertices, Vector3.zero);
		mesh.AddNormals(normals);
		mesh.AddTexCoords(cross.GetFaceUV());
		mesh.AddTexCoords(cross.GetFaceUV());
		mesh.AddTexCoords(cross.GetFaceUV());
		mesh.AddTexCoords(cross.GetFaceUV());
		mesh.AddColors(new Color(0, 0, 0, 1), vertices.Length);
		
		return mesh;
	}