In this function, all vertices/normals/texcoords/triangles are grouped. Each group has 4 lines, except for the "addtriangle" lines, they have 2 lines each.
You'll need to re-arrange the groups, so that 1 group of "addvertex" is followed by 1 group of "vertexnormal", 1 group of "vertextexcoords" and 1 group of "addtriangle". This will represent one surface. In total there will be 6 surfaces, each with 3x4 lines (verts) and 1x2 lines (tris).
Each surface group should be preceeded with this line:
surf:TSurface=mesh.CreateSurface()
It will create a new surface before adding vertices to it.
Function CreateCube:TMesh(parent_ent:TEntity=Null)
Local mesh:TMesh=TMesh.CreateMesh(parent_ent)
Local surf:TSurface=mesh.CreateSurface()
surf.AddVertex(-1.0,-1.0,-1.0)
surf.AddVertex(-1.0, 1.0,-1.0)
surf.AddVertex( 1.0, 1.0,-1.0)
surf.AddVertex( 1.0,-1.0,-1.0)
surf.AddVertex(-1.0,-1.0, 1.0)
surf.AddVertex(-1.0, 1.0, 1.0)
surf.AddVertex( 1.0, 1.0, 1.0)
surf.AddVertex( 1.0,-1.0, 1.0)
surf.AddVertex(-1.0,-1.0, 1.0)
surf.AddVertex(-1.0, 1.0, 1.0)
surf.AddVertex( 1.0, 1.0, 1.0)
surf.AddVertex( 1.0,-1.0, 1.0)
surf.AddVertex(-1.0,-1.0,-1.0)
surf.AddVertex(-1.0, 1.0,-1.0)
surf.AddVertex( 1.0, 1.0,-1.0)
surf.AddVertex( 1.0,-1.0,-1.0)
surf.AddVertex(-1.0,-1.0, 1.0)
surf.AddVertex(-1.0, 1.0, 1.0)
surf.AddVertex( 1.0, 1.0, 1.0)
surf.AddVertex( 1.0,-1.0, 1.0)
surf.AddVertex(-1.0,-1.0,-1.0)
surf.AddVertex(-1.0, 1.0,-1.0)
surf.AddVertex( 1.0, 1.0,-1.0)
surf.AddVertex( 1.0,-1.0,-1.0)
surf.VertexNormal(0,0.0,0.0,-1.0)
surf.VertexNormal(1,0.0,0.0,-1.0)
surf.VertexNormal(2,0.0,0.0,-1.0)
surf.VertexNormal(3,0.0,0.0,-1.0)
surf.VertexNormal(4,0.0,0.0,1.0)
surf.VertexNormal(5,0.0,0.0,1.0)
surf.VertexNormal(6,0.0,0.0,1.0)
surf.VertexNormal(7,0.0,0.0,1.0)
surf.VertexNormal(8,0.0,-1.0,0.0)
surf.VertexNormal(9,0.0,1.0,0.0)
surf.VertexNormal(10,0.0,1.0,0.0)
surf.VertexNormal(11,0.0,-1.0,0.0)
surf.VertexNormal(12,0.0,-1.0,0.0)
surf.VertexNormal(13,0.0,1.0,0.0)
surf.VertexNormal(14,0.0,1.0,0.0)
surf.VertexNormal(15,0.0,-1.0,0.0)
surf.VertexNormal(16,-1.0,0.0,0.0)
surf.VertexNormal(17,-1.0,0.0,0.0)
surf.VertexNormal(18,1.0,0.0,0.0)
surf.VertexNormal(19,1.0,0.0,0.0)
surf.VertexNormal(20,-1.0,0.0,0.0)
surf.VertexNormal(21,-1.0,0.0,0.0)
surf.VertexNormal(22,1.0,0.0,0.0)
surf.VertexNormal(23,1.0,0.0,0.0)
surf.VertexTexCoords(0,0.0,1.0)
surf.VertexTexCoords(1,0.0,0.0)
surf.VertexTexCoords(2,1.0,0.0)
surf.VertexTexCoords(3,1.0,1.0)
surf.VertexTexCoords(4,1.0,1.0)
surf.VertexTexCoords(5,1.0,0.0)
surf.VertexTexCoords(6,0.0,0.0)
surf.VertexTexCoords(7,0.0,1.0)
surf.VertexTexCoords(8,0.0,1.0)
surf.VertexTexCoords(9,0.0,0.0)
surf.VertexTexCoords(10,1.0,0.0)
surf.VertexTexCoords(11,1.0,1.0)
surf.VertexTexCoords(12,0.0,0.0)
surf.VertexTexCoords(13,0.0,1.0)
surf.VertexTexCoords(14,1.0,1.0)
surf.VertexTexCoords(15,1.0,0.0)
surf.VertexTexCoords(16,0.0,1.0)
surf.VertexTexCoords(17,0.0,0.0)
surf.VertexTexCoords(18,1.0,0.0)
surf.VertexTexCoords(19,1.0,1.0)
surf.VertexTexCoords(20,1.0,1.0)
surf.VertexTexCoords(21,1.0,0.0)
surf.VertexTexCoords(22,0.0,0.0)
surf.VertexTexCoords(23,0.0,1.0)
surf.VertexTexCoords(0,0.0,1.0,0.0,1)
surf.VertexTexCoords(1,0.0,0.0,0.0,1)
surf.VertexTexCoords(2,1.0,0.0,0.0,1)
surf.VertexTexCoords(3,1.0,1.0,0.0,1)
surf.VertexTexCoords(4,1.0,1.0,0.0,1)
surf.VertexTexCoords(5,1.0,0.0,0.0,1)
surf.VertexTexCoords(6,0.0,0.0,0.0,1)
surf.VertexTexCoords(7,0.0,1.0,0.0,1)
surf.VertexTexCoords(8,0.0,1.0,0.0,1)
surf.VertexTexCoords(9,0.0,0.0,0.0,1)
surf.VertexTexCoords(10,1.0,0.0,0.0,1)
surf.VertexTexCoords(11,1.0,1.0,0.0,1)
surf.VertexTexCoords(12,0.0,0.0,0.0,1)
surf.VertexTexCoords(13,0.0,1.0,0.0,1)
surf.VertexTexCoords(14,1.0,1.0,0.0,1)
surf.VertexTexCoords(15,1.0,0.0,0.0,1)
surf.VertexTexCoords(16,0.0,1.0,0.0,1)
surf.VertexTexCoords(17,0.0,0.0,0.0,1)
surf.VertexTexCoords(18,1.0,0.0,0.0,1)
surf.VertexTexCoords(19,1.0,1.0,0.0,1)
surf.VertexTexCoords(20,1.0,1.0,0.0,1)
surf.VertexTexCoords(21,1.0,0.0,0.0,1)
surf.VertexTexCoords(22,0.0,0.0,0.0,1)
surf.VertexTexCoords(23,0.0,1.0,0.0,1)
surf.AddTriangle(0,1,2) ' front
surf.AddTriangle(0,2,3)
surf.AddTriangle(6,5,4) ' back
surf.AddTriangle(7,6,4)
surf.AddTriangle(6+8,5+8,1+8) ' top
surf.AddTriangle(2+8,6+8,1+8)
surf.AddTriangle(0+8,4+8,7+8) ' bottom
surf.AddTriangle(0+8,7+8,3+8)
surf.AddTriangle(6+16,2+16,3+16) ' right
surf.AddTriangle(7+16,6+16,3+16)
surf.AddTriangle(0+16,1+16,5+16) ' left
surf.AddTriangle(0+16,5+16,4+16)
Return mesh
End Function