from tools.dusk.defs import CHUNK_WIDTH, CHUNK_HEIGHT, CHUNK_DEPTH, TILE_WIDTH, TILE_HEIGHT, TILE_DEPTH from tools.editor.map.vertexbuffer import VertexBuffer from OpenGL.GL import * from OpenGL.GLU import * class Region: def __init__(self, chunk): self.minX = 0 self.minY = 0 self.minZ = 0 self.maxX = 0 self.maxY = 0 self.maxZ = 0 self.chunk = chunk self.vertexBuffer = VertexBuffer() self.color = (1.0, 0.0, 0.0) self.updateVertexs() pass def updateVertexs(self): # Draw a quad, semi transparent with solid outlines vminX = (self.minX * CHUNK_WIDTH) * TILE_WIDTH vminY = (self.minY * CHUNK_HEIGHT) * TILE_HEIGHT vminZ = (self.minZ * CHUNK_DEPTH) * TILE_DEPTH vmaxX = (self.maxX * CHUNK_WIDTH) * TILE_WIDTH vmaxY = (self.maxY * CHUNK_HEIGHT) * TILE_HEIGHT vmaxZ = (self.maxZ * CHUNK_DEPTH) * TILE_DEPTH alpha = 0.25 # Move back half a tile width vminX -= TILE_WIDTH / 2 vmaxX -= TILE_WIDTH / 2 vminY -= TILE_HEIGHT / 2 vmaxY -= TILE_HEIGHT / 2 vminZ -= TILE_DEPTH / 2 vmaxZ -= TILE_DEPTH / 2 # Cube (6 verts per face) self.vertexBuffer.vertices = [ # Front face vminX, vminY, vmaxZ, vmaxX, vminY, vmaxZ, vmaxX, vmaxY, vmaxZ, vminX, vminY, vmaxZ, vmaxX, vmaxY, vmaxZ, vminX, vmaxY, vmaxZ, # Back face vmaxX, vminY, vminZ, vminX, vminY, vminZ, vminX, vmaxY, vminZ, vmaxX, vminY, vminZ, vminX, vmaxY, vminZ, vmaxX, vmaxY, vminZ, # Left face vminX, vminY, vminZ, vminX, vminY, vmaxZ, vminX, vmaxY, vmaxZ, vminX, vminY, vminZ, vminX, vmaxY, vmaxZ, vminX, vmaxY, vminZ, # Right face vmaxX, vminY, vmaxZ, vmaxX, vminY, vminZ, vmaxX, vmaxY, vminZ, vmaxX, vminY, vmaxZ, vmaxX, vmaxY, vminZ, vmaxX, vmaxY, vmaxZ, # Top face vminX, vmaxY, vmaxZ, vmaxX, vmaxY, vmaxZ, vmaxX, vmaxY, vminZ, vminX, vmaxY, vmaxZ, vmaxX, vmaxY, vminZ, vminX, vmaxY, vminZ, # Bottom face vminX, vminY, vminZ, vmaxX, vminY, vminZ, vmaxX, vminY, vmaxZ, vminX, vminY, vminZ, vmaxX, vminY, vmaxZ, vminX, vminY, vmaxZ, ] self.vertexBuffer.colors = [ # Front face self.color[0], self.color[1], self.color[2], alpha, self.color[0], self.color[1], self.color[2], alpha, self.color[0], self.color[1], self.color[2], alpha, self.color[0], self.color[1], self.color[2], alpha, self.color[0], self.color[1], self.color[2], alpha, self.color[0], self.color[1], self.color[2], alpha, # Back face self.color[0], self.color[1], self.color[2], alpha, self.color[0], self.color[1], self.color[2], alpha, self.color[0], self.color[1], self.color[2], alpha, self.color[0], self.color[1], self.color[2], alpha, self.color[0], self.color[1], self.color[2], alpha, self.color[0], self.color[1], self.color[2], alpha, # Left face self.color[0], self.color[1], self.color[2], alpha, self.color[0], self.color[1], self.color[2], alpha, self.color[0], self.color[1], self.color[2], alpha, self.color[0], self.color[1], self.color[2], alpha, self.color[0], self.color[1], self.color[2], alpha, self.color[0], self.color[1], self.color[2], alpha, # Right face self.color[0], self.color[1], self.color[2], alpha, self.color[0], self.color[1], self.color[2], alpha, self.color[0], self.color[1], self.color[2], alpha, self.color[0], self.color[1], self.color[2], alpha, self.color[0], self.color[1], self.color[2], alpha, self.color[0], self.color[1], self.color[2], alpha, # Top face self.color[0], self.color[1], self.color[2], alpha, self.color[0], self.color[1], self.color[2], alpha, self.color[0], self.color[1], self.color[2], alpha, self.color[0], self.color[1], self.color[2], alpha, self.color[0], self.color[1], self.color[2], alpha, self.color[0], self.color[1], self.color[2], alpha, # Bottom face self.color[0], self.color[1], self.color[2], alpha, self.color[0], self.color[1], self.color[2], alpha, self.color[0], self.color[1], self.color[2], alpha, self.color[0], self.color[1], self.color[2], alpha, self.color[0], self.color[1], self.color[2], alpha, self.color[0], self.color[1], self.color[2], alpha, ] self.vertexBuffer.buildData() def draw(self): self.vertexBuffer.draw()