@Override
public void rebuildChunk(float x, float y, float z, ChunkCompileTaskGenerator generator)
{
CompiledChunk compiledchunk = new CompiledChunk();
BlockPos blockpos = this.position;
BlockPos blockpos1 = blockpos.add(15, 15, 15);
generator.getLock().lock();
RegionRenderCache regionrendercache;
try
{
if (generator.getStatus() != ChunkCompileTaskGenerator.Status.COMPILING)
{
return;
}
regionrendercache = new RegionRenderCacheBlocksteps(this.world, blockpos.add(-1, -1, -1), blockpos1.add(1, 1, 1), 1);
generator.setCompiledChunk(compiledchunk);
}
finally
{
generator.getLock().unlock();
}
VisGraph visgraph = new VisGraph();
Minecraft mc = Minecraft.getMinecraft();
if (!regionrendercache.extendedLevelsInChunkCache())
{
++renderChunksUpdated;
Iterator iterator = BlockPos.getAllInBoxMutable(blockpos, blockpos1).iterator();
while (iterator.hasNext())
{
BlockPos.MutableBlockPos mutableblockpos = (BlockPos.MutableBlockPos)iterator.next();
IBlockState iblockstate = regionrendercache.getBlockState(mutableblockpos);
Block block = iblockstate.getBlock();
if(Blocksteps.config.mapType == 2)
{
synchronized(Blocksteps.eventHandler.threadCrawlBlocks.surface)
{
renderBlock(mutableblockpos, iblockstate, block, visgraph, regionrendercache, generator, compiledchunk, blockpos, mc);
}
}
else
{
renderBlock(mutableblockpos, iblockstate, block, visgraph, regionrendercache, generator, compiledchunk, blockpos, mc);
}
}
BlockRenderLayer[] aenumworldblocklayer = BlockRenderLayer.values();
int j = aenumworldblocklayer.length;
for (int k = 0; k < j; ++k)
{
BlockRenderLayer enumworldblocklayer = aenumworldblocklayer[k];
if (compiledchunk.isLayerStarted(enumworldblocklayer))
{
this.postRenderBlocks(enumworldblocklayer, x, y, z, generator.getRegionRenderCacheBuilder().getWorldRendererByLayer(enumworldblocklayer), compiledchunk);
}
}
}
compiledchunk.setVisibility(visgraph.computeVisibility());
}
ListedRenderChunkBlocksteps.java 文件源码
java
阅读 18
收藏 0
点赞 0
评论 0
项目:Blocksteps
作者:
评论列表
文章目录