public override void Render(Vector3 pos, MatrixView <BlockData> neighbors, MeshParams <WorldVertexDefinition> meshParams) { var block = neighbors.GetCenter(); ShapeType shape = GetShapeTypeData(block.data); Rotation rotation = GetRotationData(block.data); if (m_data == null) { m_data = new BlockRendererData(id, m_material); } m_data.SetFaceUV(new Rect(0.25f, 0, 0.25f, 1) , new Rect(0.5f, 0, 0.25f, 1) , new Rect(0.0f, 0, 0.25f, 1)); m_data.rotation = rotation; SetDrawFacesFromNeighbors(m_data, neighbors); switch (shape) { case ShapeType.AntiTetrahedral: BlockRenderer.DrawAntiTetrahedral(pos, meshParams, m_data); break; case ShapeType.Cubic: BlockRenderer.DrawCubic(pos, meshParams, m_data); break; case ShapeType.HalfCubic: BlockRenderer.DrawHalfCubic(pos, meshParams, m_data); break; case ShapeType.HorizontalHalfCubic: BlockRenderer.DrawHorizontalHalfCubic(pos, meshParams, m_data); break; case ShapeType.SmallPyramid: BlockRenderer.DrawSmallPyramid(pos, meshParams, m_data); break; case ShapeType.Tetrahedral: BlockRenderer.DrawThetrahedral(pos, meshParams, m_data); break; default: Debug.Assert(false); break; } }