refactoring/renaming before adding N-sized world gen
This commit is contained in:
+1
-1
@@ -62,7 +62,7 @@ public class FullDataSourceV2 implements IDataSource<IDhLevel>
|
||||
|
||||
/** measured in data columns */
|
||||
public static final int WIDTH = 64;
|
||||
/** how many chunks wide this datasource is. */
|
||||
/** how many chunks wide this datasource is at detail level 0. */
|
||||
public static final int NUMB_OF_CHUNKS_WIDE = WIDTH / LodUtil.CHUNK_WIDTH;
|
||||
|
||||
public static final byte DATA_FORMAT_VERSION = 1;
|
||||
|
||||
+6
-10
@@ -219,8 +219,8 @@ public class GeneratedFullDataSourceProvider extends FullDataSourceProviderV2 im
|
||||
return false;
|
||||
}
|
||||
|
||||
GenTask genTask = new GenTask(genPos);
|
||||
CompletableFuture<WorldGenResult> worldGenFuture = worldGenQueue.submitRetrievalTask(genPos, (byte) (DhSectionPos.getDetailLevel(genPos) - DhSectionPos.SECTION_MINIMUM_DETAIL_LEVEL), genTask);
|
||||
WorldGenTaskTracker genTaskTracker = new WorldGenTaskTracker(genPos);
|
||||
CompletableFuture<WorldGenResult> worldGenFuture = worldGenQueue.submitRetrievalTask(genPos, (byte) (DhSectionPos.getDetailLevel(genPos) - DhSectionPos.SECTION_MINIMUM_DETAIL_LEVEL), genTaskTracker);
|
||||
worldGenFuture.whenComplete((genTaskResult, ex) -> this.onWorldGenTaskComplete(genTaskResult, ex));
|
||||
|
||||
return true;
|
||||
@@ -385,23 +385,19 @@ public class GeneratedFullDataSourceProvider extends FullDataSourceProviderV2 im
|
||||
//================//
|
||||
|
||||
// TODO may not be needed
|
||||
private class GenTask implements IWorldGenTaskTracker
|
||||
private class WorldGenTaskTracker implements IWorldGenTaskTracker
|
||||
{
|
||||
private final long pos;
|
||||
|
||||
public GenTask(long pos) { this.pos = pos; }
|
||||
public WorldGenTaskTracker(long pos) { this.pos = pos; }
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public boolean isMemoryAddressValid() { return true; }
|
||||
|
||||
@Override
|
||||
public Consumer<FullDataSourceV2> getDataSourceConsumer()
|
||||
{
|
||||
return (chunkSizedFullDataSource) ->
|
||||
return (dataSource) ->
|
||||
{
|
||||
GeneratedFullDataSourceProvider.this.delayedFullDataSourceSaveCache.queueDataSourceForUpdateAndSave(chunkSizedFullDataSource);
|
||||
GeneratedFullDataSourceProvider.this.delayedFullDataSourceSaveCache.queueDataSourceForUpdateAndSave(dataSource);
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
-3
@@ -30,9 +30,6 @@ import java.util.function.Consumer;
|
||||
*/
|
||||
public interface IWorldGenTaskTracker
|
||||
{
|
||||
/** Returns true if the task hasn't been garbage collected. */
|
||||
boolean isMemoryAddressValid();
|
||||
|
||||
@Nullable
|
||||
Consumer<FullDataSourceV2> getDataSourceConsumer();
|
||||
|
||||
|
||||
+2
-2
@@ -19,6 +19,8 @@
|
||||
|
||||
package com.seibel.distanthorizons.core.generation.tasks;
|
||||
|
||||
import com.seibel.distanthorizons.core.file.fullDatafile.GeneratedFullDataSourceProvider;
|
||||
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
|
||||
/**
|
||||
@@ -42,6 +44,4 @@ public final class WorldGenTask
|
||||
this.future = future;
|
||||
}
|
||||
|
||||
public boolean StillValid() { return this.taskTracker.isMemoryAddressValid(); }
|
||||
|
||||
}
|
||||
|
||||
+4
-4
@@ -45,21 +45,21 @@ public final class WorldGenTaskGroup
|
||||
this.dataDetail = dataDetail;
|
||||
}
|
||||
|
||||
public void consumeChunkData(FullDataSourceV2 chunkSizedFullDataView)
|
||||
public void consumeDataSource(FullDataSourceV2 dataSource)
|
||||
{
|
||||
Iterator<WorldGenTask> tasks = this.worldGenTasks.iterator();
|
||||
while (tasks.hasNext())
|
||||
{
|
||||
WorldGenTask task = tasks.next();
|
||||
Consumer<FullDataSourceV2> chunkDataConsumer = task.taskTracker.getDataSourceConsumer();
|
||||
if (chunkDataConsumer == null)
|
||||
Consumer<FullDataSourceV2> dataSourceConsumer = task.taskTracker.getDataSourceConsumer();
|
||||
if (dataSourceConsumer == null)
|
||||
{
|
||||
tasks.remove();
|
||||
task.future.complete(WorldGenResult.CreateFail());
|
||||
}
|
||||
else
|
||||
{
|
||||
chunkDataConsumer.accept(chunkSizedFullDataView);
|
||||
dataSourceConsumer.accept(dataSource);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user