Better mca iteration

This commit is contained in:
Daniel Mills 2021-07-19 06:32:13 -04:00
parent f9a815bba6
commit 280ec22348

View File

@ -24,6 +24,7 @@ import com.volmit.iris.core.IrisSettings;
import com.volmit.iris.core.nms.BiomeBaseInjector; import com.volmit.iris.core.nms.BiomeBaseInjector;
import com.volmit.iris.core.nms.INMS; import com.volmit.iris.core.nms.INMS;
import com.volmit.iris.core.pregenerator.PregenListener; import com.volmit.iris.core.pregenerator.PregenListener;
import com.volmit.iris.core.pregenerator.PregenTask;
import com.volmit.iris.engine.IrisEngineCompound; import com.volmit.iris.engine.IrisEngineCompound;
import com.volmit.iris.engine.IrisWorlds; import com.volmit.iris.engine.IrisWorlds;
import com.volmit.iris.engine.cache.Cache; import com.volmit.iris.engine.cache.Cache;
@ -467,26 +468,18 @@ public class EngineCompositeGenerator extends ChunkGenerator implements IrisAcce
@Override @Override
public void directWriteMCA(IrisWorld w, int x, int z, NBTWorld writer, MultiBurst burst, PregenListener l) { public void directWriteMCA(IrisWorld w, int x, int z, NBTWorld writer, MultiBurst burst, PregenListener l) {
BurstExecutor e = burst.burst(1024); BurstExecutor e = burst.burst(1024);
int mcaox = x << 5;
int mcaoz = z << 5;
for (int i = 0; i < 32; i++) { PregenTask.iterateRegion(x, z, (ii, jj) -> e.queue(() -> {
int ii = i; if(l != null)
for (int j = 0; j < 32; j++) { {
int jj = j; l.onChunkGenerating(ii, jj);
e.queue(() -> {
if(l != null)
{
l.onChunkGenerating(ii + mcaox, jj + mcaoz);
}
directWriteChunk(w, ii + mcaox, jj + mcaoz, writer);
if(l != null)
{
l.onChunkGenerated(ii + mcaox, jj + mcaoz);
}
});
} }
} directWriteChunk(w, ii, jj, writer);
if(l != null)
{
l.onChunkGenerated(ii, jj);
}
}));
e.complete(); e.complete();
} }