Slight optimization to LodChunkGenWorker

This commit is contained in:
James Seibel
2021-06-13 20:56:53 -05:00
parent a29060bf4f
commit bb5613e3fe
2 changed files with 11 additions and 8 deletions
@@ -9,10 +9,12 @@ import com.seibel.lod.objects.LodDimension;
import com.seibel.lod.objects.NearFarBuffer;
import com.seibel.lod.render.LodRender;
import com.seibel.lod.util.LodConfig;
import com.seibel.lod.util.LodUtils;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.BufferBuilder;
import net.minecraft.util.math.ChunkPos;
import net.minecraft.world.server.ServerWorld;
import net.minecraftforge.common.WorldWorkerManager;
/**
@@ -193,8 +195,8 @@ public class LodBufferBuilder
// get the desired LodTemplate and
// add this LOD to the buffer
LodConfig.CLIENT.lodTemplate.get().template.
addLodToBuffer(currentBuffer, lodDim, lod,
LodConfig.CLIENT.lodTemplate.get().
template.addLodToBuffer(currentBuffer, lodDim, lod,
xOffset, yOffset, zOffset, renderer.debugging);
}
}
@@ -202,6 +204,8 @@ public class LodBufferBuilder
// TODO add a way for a server side mod to generate chunks requested here
if(mc.isIntegratedServerRunning())
{
ServerWorld serverWorld = LodUtils.getServerWorldFromDimension(lodDim.dimension);
// start chunk generation
for(ChunkPos chunkPos : chunksToGen)
{
@@ -210,7 +214,7 @@ public class LodBufferBuilder
numberOfChunksWaitingToGenerate++;
LodChunkGenWorker genWorker = new LodChunkGenWorker(chunkPos, renderer, lodBuilder, this, lodDim);
LodChunkGenWorker genWorker = new LodChunkGenWorker(chunkPos, renderer, lodBuilder, this, lodDim, serverWorld);
WorldWorkerManager.addWorker(genWorker);
}
}
@@ -4,7 +4,6 @@ import com.seibel.lod.objects.LodDimension;
import com.seibel.lod.objects.LodRegion;
import com.seibel.lod.proxy.ClientProxy;
import com.seibel.lod.render.LodRender;
import com.seibel.lod.util.LodUtils;
import net.minecraft.util.math.ChunkPos;
import net.minecraft.world.chunk.ChunkStatus;
@@ -16,11 +15,11 @@ import net.minecraftforge.common.WorldWorkerManager.IWorker;
* This is used to generate a LodChunk at a given ChunkPos.
*
* @author James Seibel
* @version 6-12-2021
* @version 6-13-2021
*/
public class LodChunkGenWorker implements IWorker
{
private ServerWorld serverWorld;
private ServerWorld serverWorld;
private ChunkPos pos;
private LodDimension lodDim;
private LodBuilder lodBuilder;
@@ -29,9 +28,9 @@ public class LodChunkGenWorker implements IWorker
public LodChunkGenWorker(ChunkPos newPos, LodRender newLodRenderer,
LodBuilder newLodBuilder, LodBufferBuilder newLodBufferBuilder,
LodDimension newLodDimension)
LodDimension newLodDimension, ServerWorld newServerWorld)
{
serverWorld = LodUtils.getServerWorldFromDimension(newLodDimension.dimension);
serverWorld = newServerWorld;
if (serverWorld == null)
throw new IllegalArgumentException("LodChunkGenWorker must have a non-null ServerWorld");