Break apart loops into cythonizable ones
This commit is contained in:
parent
cd52c59518
commit
d997a44264
@ -36,38 +36,42 @@ class BlockModelMesh(object):
|
|||||||
blocktypes = self.sectionUpdate.blocktypes
|
blocktypes = self.sectionUpdate.blocktypes
|
||||||
areaBlocks = self.sectionUpdate.areaBlocks
|
areaBlocks = self.sectionUpdate.areaBlocks
|
||||||
faceQuadVerts = []
|
faceQuadVerts = []
|
||||||
|
|
||||||
|
cdef unsigned short y, z, x, ID, meta
|
||||||
|
cdef short dx, dy, dz,
|
||||||
|
cdef unsigned short nx, ny, nz, nID
|
||||||
|
|
||||||
for y in xrange(1, 17):
|
for y in range(1, 17):
|
||||||
yield
|
for z in range(1, 17):
|
||||||
for z, x in itertools.product(xrange(1, 17), xrange(1, 17)):
|
for x in range(1, 17):
|
||||||
ID = areaBlocks[y, z, x]
|
ID = areaBlocks[y, z, x]
|
||||||
if ID == 0:
|
if ID == 0:
|
||||||
continue
|
continue
|
||||||
meta = section.Data[y-1, z-1, x-1]
|
meta = section.Data[y-1, z-1, x-1]
|
||||||
|
|
||||||
block = blocktypes[ID, meta]
|
block = blocktypes[ID, meta]
|
||||||
if block.renderType != 3: # only model blocks for now
|
if block.renderType != 3: # only model blocks for now
|
||||||
continue
|
continue
|
||||||
nameAndState = block.internalName + block.blockState
|
nameAndState = block.internalName + block.blockState
|
||||||
quads = blockModels.cookedModels[nameAndState]
|
quads = blockModels.cookedModels[nameAndState]
|
||||||
|
|
||||||
for face, xyzuvc, cullface in quads:
|
for face, xyzuvc, cullface in quads:
|
||||||
if cullface is not None:
|
if cullface is not None:
|
||||||
dx, dy, dz = cullface.vector
|
dx, dy, dz = cullface.vector
|
||||||
nx = x + dx
|
nx = x + dx
|
||||||
ny = y + dy
|
ny = y + dy
|
||||||
nz = z + dz
|
nz = z + dz
|
||||||
nID = areaBlocks[ny, nz, nx]
|
nID = areaBlocks[ny, nz, nx]
|
||||||
if nID != 0:
|
if nID != 0:
|
||||||
nBlock = blocktypes[nID]
|
nBlock = blocktypes[nID]
|
||||||
if nBlock.opaqueCube:
|
if nBlock.opaqueCube:
|
||||||
continue
|
continue
|
||||||
|
|
||||||
verts = numpy.array(xyzuvc)
|
verts = numpy.array(xyzuvc)
|
||||||
verts.shape = 1, 4, 6
|
verts.shape = 1, 4, 6
|
||||||
verts[..., :3] += (x - 1, y - 1 + (cy << 4), z - 1)
|
verts[..., :3] += (x - 1, y - 1 + (cy << 4), z - 1)
|
||||||
faceQuadVerts.append(verts)
|
faceQuadVerts.append(verts)
|
||||||
# log.info("Block %s:\nVertices: %s", (x-1, y-1, z-1), verts)
|
# log.info("Block %s:\nVertices: %s", (x-1, y-1, z-1), verts)
|
||||||
|
|
||||||
# raise SystemExit
|
# raise SystemExit
|
||||||
if len(faceQuadVerts):
|
if len(faceQuadVerts):
|
||||||
|
Reference in New Issue
Block a user