コード例 #1
0
    @Override
    public void run() {
      ChunkMesh[] newMeshes = new ChunkMesh[WorldRendererLwjgl.VERTICAL_SEGMENTS];
      ChunkView chunkView = worldProvider.getLocalView(c.getPos());
      if (chunkView != null) {
        c.setDirty(false);
        for (int seg = 0; seg < WorldRendererLwjgl.VERTICAL_SEGMENTS; seg++) {
          int meshHeight = ChunkConstants.SIZE_Y / WorldRendererLwjgl.VERTICAL_SEGMENTS;
          newMeshes[seg] =
              tessellator.generateMesh(
                  chunkView,
                  c.getPos(),
                  meshHeight,
                  seg * (ChunkConstants.SIZE_Y / WorldRendererLwjgl.VERTICAL_SEGMENTS));
        }

        c.setPendingMesh(newMeshes);
        ChunkMonitor.fireChunkTessellated(c.getPos(), newMeshes);
      }
      chunkUpdateManager.finishedProcessing(c);
      // Clean these up because the task executor holds the object in memory.
      c = null;
      tessellator = null;
      worldProvider = null;
    }