From 830ce6515ad9feb2ac5b714bbb8af538aaedfe45 Mon Sep 17 00:00:00 2001 From: gnembon Date: Sat, 29 Feb 2020 13:41:50 -0400 Subject: [PATCH 1/2] getting there WIP --- .../ThreadedAnvilChunkStorage_scarpetChunkCreationMixin.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/carpet/mixins/ThreadedAnvilChunkStorage_scarpetChunkCreationMixin.java b/src/main/java/carpet/mixins/ThreadedAnvilChunkStorage_scarpetChunkCreationMixin.java index f094dcc3..e593d4de 100644 --- a/src/main/java/carpet/mixins/ThreadedAnvilChunkStorage_scarpetChunkCreationMixin.java +++ b/src/main/java/carpet/mixins/ThreadedAnvilChunkStorage_scarpetChunkCreationMixin.java @@ -160,7 +160,7 @@ public abstract class ThreadedAnvilChunkStorage_scarpetChunkCreationMixin implem unloadedChunks.remove(id); loadedChunks.remove(id); field_18807.remove(id); - ChunkHolder newHolder = new ChunkHolder(chpos, 0,serverLightingProvider, chunkTaskPrioritySystem, (ChunkHolder.PlayersWatchingChunkProvider) this); + ChunkHolder newHolder = new ChunkHolder(chpos, 33,serverLightingProvider, chunkTaskPrioritySystem, (ChunkHolder.PlayersWatchingChunkProvider) this); this.currentChunkHolders.put(id, newHolder); //removed holders field_18807.put(id, newHolder); From 14f67a8d3d679cd92987430b3a0bf558e1b90e4c Mon Sep 17 00:00:00 2001 From: gnembon Date: Sat, 29 Feb 2020 20:29:45 -0400 Subject: [PATCH 2/2] getting there WIP --- ...dAnvilChunkStorage_scarpetChunkCreationMixin.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/main/java/carpet/mixins/ThreadedAnvilChunkStorage_scarpetChunkCreationMixin.java b/src/main/java/carpet/mixins/ThreadedAnvilChunkStorage_scarpetChunkCreationMixin.java index e593d4de..c0856d9d 100644 --- a/src/main/java/carpet/mixins/ThreadedAnvilChunkStorage_scarpetChunkCreationMixin.java +++ b/src/main/java/carpet/mixins/ThreadedAnvilChunkStorage_scarpetChunkCreationMixin.java @@ -70,8 +70,6 @@ public abstract class ThreadedAnvilChunkStorage_scarpetChunkCreationMixin implem @Shadow @Final private WorldGenerationProgressListener worldGenerationProgressListener; - @Shadow @Final private MessageListener> worldgenExecutor; - //in method_20617 //method_19534(Lnet/minecraft/server/world/ChunkHolder;Lnet/minecraft/world/chunk/Chunk;)Ljava/util/concurrent/CompletableFuture; @Inject(method = "method_19534", at = @At( @@ -126,8 +124,11 @@ public abstract class ThreadedAnvilChunkStorage_scarpetChunkCreationMixin implem Long id = chpos.toLong(); //chunk is currently in memory in some shape or form / loaded / unloaded / queued / cached ChunkHolder chunkHolder = currentChunkHolders.remove(id); + int currentLevel = ThreadedAnvilChunkStorage.MAX_LEVEL; if (chunkHolder != null) { + //CarpetSettings.LOG.error("current_level: "+chunkHolder.getLevel()); + currentLevel = chunkHolder.getLevel(); //method_20458(id, chunkHolder); // saving chunk // skipping entities etc Chunk chunk = null; try @@ -160,12 +161,13 @@ public abstract class ThreadedAnvilChunkStorage_scarpetChunkCreationMixin implem unloadedChunks.remove(id); loadedChunks.remove(id); field_18807.remove(id); - ChunkHolder newHolder = new ChunkHolder(chpos, 33,serverLightingProvider, chunkTaskPrioritySystem, (ChunkHolder.PlayersWatchingChunkProvider) this); + ChunkHolder newHolder = new ChunkHolder(chpos, currentLevel,serverLightingProvider, chunkTaskPrioritySystem, (ChunkHolder.PlayersWatchingChunkProvider) this); + ((ChunkHolderInterface)newHolder).setDefaultProtoChunk(chpos, mainThreadExecutor); this.currentChunkHolders.put(id, newHolder); //removed holders field_18807.put(id, newHolder); //loadedChunks.add(id); - ((ChunkHolderInterface)newHolder).setDefaultProtoChunk(chpos, mainThreadExecutor); + } //getting rid of all signs this.chunkHolderListDirty = true; @@ -197,6 +199,8 @@ public abstract class ThreadedAnvilChunkStorage_scarpetChunkCreationMixin implem //} //CarpetSettings.LOG.error("Creating layer: " + status.getId()); world.getChunk(chpos.x, chpos.z, status); + if (status == ChunkStatus.FULL) + convertToFullChunk(currentChunkHolders.get(chpos.toLong())); //CarpetSettings.LOG.error(" .. done"); //if (status==ChunkStatus.LIGHT) //{