39 lines
1.1 KiB
Python
39 lines
1.1 KiB
Python
from OpenGL.GL import *
|
|
from editortool.map.mapdefs import TILE_WIDTH, TILE_HEIGHT, TILE_DEPTH, CHUNK_WIDTH, CHUNK_HEIGHT, CHUNK_DEPTH
|
|
|
|
class Tile:
|
|
def __init__(self, chunk, x, y, z, tileIndex):
|
|
self.tileId = 0
|
|
self.chunk = chunk
|
|
self.x = x
|
|
self.y = y
|
|
self.z = z
|
|
|
|
self.posX = x * TILE_WIDTH + chunk.x * CHUNK_WIDTH * TILE_WIDTH
|
|
self.posY = y * TILE_HEIGHT + chunk.y * CHUNK_HEIGHT * TILE_HEIGHT
|
|
self.posZ = z * TILE_DEPTH + chunk.z * CHUNK_DEPTH * TILE_DEPTH
|
|
|
|
def buffer(self, vertexBuffer):
|
|
if self.z != 0:
|
|
return
|
|
# if self.x != 0 or self.y != 0 or self.z != 0:
|
|
# return # Only buffer the tile at (0,0,0)
|
|
|
|
# Center tile.
|
|
x = self.posX - TILE_WIDTH / 2.0
|
|
y = self.posY - TILE_HEIGHT / 2.0
|
|
z = self.posZ - TILE_DEPTH / 2.0
|
|
w = TILE_WIDTH
|
|
h = TILE_HEIGHT
|
|
d = TILE_DEPTH
|
|
|
|
# Quad on the XY plane at z
|
|
vertexBuffer.vertices.extend([
|
|
x, y, z, # bottom left
|
|
x + w, y, z, # bottom right
|
|
x + w, y + h, z, # top right
|
|
|
|
x, y, z, # bottom left
|
|
x + w, y + h, z, # top right
|
|
x, y + h, z # top left
|
|
]) |