public static void AddPerpendicularQuadsTriangles(this MeshDataBuffer buffer)
        {
            buffer.AddTriangle(0, 3, 2);
            buffer.AddTriangle(2, 1, 0);

            buffer.AddTriangle(3, 0, 1);
            buffer.AddTriangle(1, 2, 3);
        }
        public static void AddCubeVertexNZ(this MeshDataBuffer buffer, int x, int y, int z, float lightLB, float lightRB, float lightRT, float lightLT, Block block)
        {
            block.GetNegativeZUVForCubeVertex(out Vector2 lb, out Vector2 rb, out Vector2 rt, out Vector2 lt);

            buffer.AddVertex(new Vector3(x, y, z), Vector3.back, lb, lightLB);
            buffer.AddVertex(new Vector3(x + 1, y, z), Vector3.back, rb, lightRB);
            buffer.AddVertex(new Vector3(x + 1, y + 1, z), Vector3.back, rt, lightRT);
            buffer.AddVertex(new Vector3(x, y + 1, z), Vector3.back, lt, lightLT);
        }
        public static void AddPerpendicularQuadsVertexFirst(this MeshDataBuffer buffer, int x, int y, int z, float light, Block block)
        {
            block.GetMainUVForPerpendicularQuadsVertex(out Vector2 lb, out Vector2 rb, out Vector2 rt, out Vector2 lt);

            Vector3 normal = new Vector3(-0.70711f, 0, -0.70711f);

            buffer.AddVertex(new Vector3(x, y, z + 1), normal, lb, light);
            buffer.AddVertex(new Vector3(x + 1, y, z), normal, rb, light);
            buffer.AddVertex(new Vector3(x + 1, y + 1, z), normal, rt, light);
            buffer.AddVertex(new Vector3(x, y + 1, z + 1), normal, lt, light);
        }
 public static void AddCubeTriangles(this MeshDataBuffer buffer)
 {
     buffer.AddTriangle(0, 3, 2);
     buffer.AddTriangle(2, 1, 0);
 }