mirror of
https://github.com/VolmitSoftware/Iris.git
synced 2025-12-30 12:29:20 +00:00
Writer fixes
This commit is contained in:
@@ -6,6 +6,7 @@ import com.volmit.iris.generator.IrisEngineCompound;
|
||||
import com.volmit.iris.manager.IrisDataManager;
|
||||
import com.volmit.iris.object.IrisBiome;
|
||||
import com.volmit.iris.object.IrisDimension;
|
||||
import com.volmit.iris.pregen.DirectWorldWriter;
|
||||
import com.volmit.iris.scaffold.IrisWorlds;
|
||||
import com.volmit.iris.scaffold.cache.Cache;
|
||||
import com.volmit.iris.scaffold.hunk.Hunk;
|
||||
@@ -312,11 +313,6 @@ public class EngineCompositeGenerator extends ChunkGenerator implements IrisAcce
|
||||
|
||||
public void directWriteMCA(World w, int x, int z, DirectWorldWriter writer, MultiBurst burst)
|
||||
{
|
||||
if(writer.getMCAFile(x, z).exists())
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
BurstExecutor e = burst.burst(1024);
|
||||
int mcaox = x << 5;
|
||||
int mcaoz = z << 5;
|
||||
@@ -327,7 +323,9 @@ public class EngineCompositeGenerator extends ChunkGenerator implements IrisAcce
|
||||
for(int j = 0; j < 32; j++)
|
||||
{
|
||||
int jj = j;
|
||||
e.queue(() -> directWriteChunk(w, ii + mcaox, jj + mcaoz, writer));
|
||||
e.queue(() -> {
|
||||
directWriteChunk(w, ii + mcaox, jj + mcaoz, writer);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@ package com.volmit.iris.scaffold.engine;
|
||||
|
||||
import com.volmit.iris.manager.IrisDataManager;
|
||||
import com.volmit.iris.object.*;
|
||||
import com.volmit.iris.pregen.DirectWorldWriter;
|
||||
import com.volmit.iris.scaffold.data.DataProvider;
|
||||
import com.volmit.iris.scaffold.parallel.MultiBurst;
|
||||
import com.volmit.iris.util.*;
|
||||
|
||||
@@ -80,7 +80,7 @@ public class HunkRegionSlice<T>
|
||||
|
||||
public void save()
|
||||
{
|
||||
BurstExecutor e = MultiBurst.burst.burst(save.size());
|
||||
BurstExecutor e = MultiBurst.burst.burst();
|
||||
for(ChunkPosition i : save.copy())
|
||||
{
|
||||
if(i == null)
|
||||
@@ -89,7 +89,16 @@ public class HunkRegionSlice<T>
|
||||
}
|
||||
|
||||
e.queue(() -> save(i.getX(), i.getZ()));
|
||||
save.remove(i);
|
||||
|
||||
try
|
||||
{
|
||||
save.remove(i);
|
||||
}
|
||||
|
||||
catch(Throwable ef)
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
e.complete();
|
||||
|
||||
@@ -83,4 +83,12 @@ public class MultiBurst
|
||||
service.execute(o);
|
||||
}
|
||||
}
|
||||
|
||||
public void shutdownNow() {
|
||||
service.shutdownNow().forEach(Runnable::run);
|
||||
}
|
||||
|
||||
public void shutdown() {
|
||||
service.shutdown();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user