1 local ChunkMesh = Dragonblocks.create_class()
2 table.assign(ChunkMesh, RenderEngine.Mesh)
4 function ChunkMesh:create_vertices(chunk)
7 self.vertex_blob_size = 6
8 local face_orientations = {
16 for _, block in pairs(chunk.blocks) do
17 for i, dir in ipairs(face_orientations) do
19 if not chunk:get_block(pos + dir) then
20 table.insert(self.textures, block.def.texture)
21 self:add_face(block.pos, i)
25 self:apply_vertices(self.vertices)
28 function ChunkMesh:add_face(pos, facenr)
29 local cube_vertices = RenderEngine.cube_vertices
30 local pos_modifier = {pos.x, pos.y, pos.z}
31 local offset = (facenr - 1) * 6
32 for vertex_index = offset, offset + 5 do
33 for attribute_index = 1, 5 do
34 local k = vertex_index * 5 + attribute_index
35 local v = cube_vertices[k]
36 if attribute_index <= 3 then
37 v = v + pos_modifier[attribute_index]
39 table.insert(self.vertices, v)