From e94d67916d0dd56cd531497b278ff28df2d9ea6a Mon Sep 17 00:00:00 2001 From: s809 <43530948+s809@users.noreply.github.com> Date: Sat, 23 Sep 2023 15:32:24 +0500 Subject: [PATCH] Fix compiling Remove unused config category Use pooling when receiving sections Fix use of real time update config Fix debug renderer not unregistered on queue close --- .../distanthorizons/core/config/Config.java | 40 ------------------- .../loader/CompleteFullDataSourceLoader.java | 7 +++- .../interfaces/IStreamableFullDataSource.java | 16 ++++++++ .../fullDatafile/FullDataFileHandler.java | 1 + .../file/fullDatafile/FullDataMetaFile.java | 2 - .../WorldRemoteGenerationQueue.java | 6 +-- .../core/level/DhServerLevel.java | 2 +- .../FullDataSourceResponseMessage.java | 1 + 8 files changed, 27 insertions(+), 48 deletions(-) diff --git a/core/src/main/java/com/seibel/distanthorizons/core/config/Config.java b/core/src/main/java/com/seibel/distanthorizons/core/config/Config.java index 1da4d4813..c5f0bc8a2 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/config/Config.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/config/Config.java @@ -1103,8 +1103,6 @@ public class Config // TODO write strings public static class Debugging { - public static ConfigCategory debugWireframeRendering = new ConfigCategory.Builder().set(DebugWireframeRendering.class).build(); - public static ConfigEntry rendererMode = new ConfigEntry.Builder() .set(ERendererMode.DEFAULT) .comment("" @@ -1153,44 +1151,6 @@ public class Config + " Mod compatibility is not guaranteed.") .build(); - public static class DebugWireframeRendering - { - public static ConfigEntry enableRendering = new ConfigEntry.Builder() - .set(false) - .comment("" - + "If enabled, various wireframes for debugging internal functions will be drawn. \n" - + "\n" - + "NOTE: There WILL be performance hit! \n" - + " Additionally, only stuff that's loaded after you enable this \n" - + " will render their debug wireframes.") - .build(); - - public static ConfigEntry fullDataMetaFile = new ConfigEntry.Builder() - .set(false) - .comment("Class: FullDataMetaFile") - .build(); - - public static ConfigEntry lodRenderSection = new ConfigEntry.Builder() - .set(false) - .comment("Class: LodRenderSection") - .build(); - - public static ConfigEntry renderDataMetaFile = new ConfigEntry.Builder() - .set(false) - .comment("Class: RenderDataMetaFile") - .build(); - - public static ConfigEntry worldGenerationQueue = new ConfigEntry.Builder() - .set(false) - .comment("Class: WorldGenerationQueue") - .build(); - - public static ConfigEntry worldRemoteGenerationQueue = new ConfigEntry.Builder() - .set(false) - .comment("Class: WorldRemoteGenerationQueue") - .build(); - } - public static ConfigEntry enableWhiteWorld = new ConfigEntry.Builder() .set(false) .comment("" diff --git a/core/src/main/java/com/seibel/distanthorizons/core/dataObjects/fullData/loader/CompleteFullDataSourceLoader.java b/core/src/main/java/com/seibel/distanthorizons/core/dataObjects/fullData/loader/CompleteFullDataSourceLoader.java index 36d975894..0de9428cc 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/dataObjects/fullData/loader/CompleteFullDataSourceLoader.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/dataObjects/fullData/loader/CompleteFullDataSourceLoader.java @@ -38,8 +38,11 @@ public class CompleteFullDataSourceLoader extends AbstractFullDataSourceLoader /** Uses a given stream to create a temporary {@link CompleteFullDataSource}, which is not saved. */ public CompleteFullDataSource loadData(DhSectionPos pos, DhDataInputStream inputStream, IDhLevel level) throws IOException, InterruptedException { - CompleteFullDataSource dataSource = CompleteFullDataSource.createEmpty(pos); - dataSource.populateFromStream(null, inputStream, level); + CompleteFullDataSource dataSource = (CompleteFullDataSource) this.tryGetPooledSource(); + if (dataSource == null) + dataSource = CompleteFullDataSource.createEmpty(pos); + + dataSource.repopulateFromStream(pos, inputStream, level); return dataSource; } } diff --git a/core/src/main/java/com/seibel/distanthorizons/core/dataObjects/fullData/sources/interfaces/IStreamableFullDataSource.java b/core/src/main/java/com/seibel/distanthorizons/core/dataObjects/fullData/sources/interfaces/IStreamableFullDataSource.java index 9a12568e7..42eeb670c 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/dataObjects/fullData/sources/interfaces/IStreamableFullDataSource.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/dataObjects/fullData/sources/interfaces/IStreamableFullDataSource.java @@ -66,6 +66,22 @@ public interface IStreamableFullDataSource DhSectionPos.SECTION_MINIMUM_DETAIL_LEVEL) { return; diff --git a/core/src/main/java/com/seibel/distanthorizons/core/generation/WorldRemoteGenerationQueue.java b/core/src/main/java/com/seibel/distanthorizons/core/generation/WorldRemoteGenerationQueue.java index b207eba97..c21ac1890 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/generation/WorldRemoteGenerationQueue.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/generation/WorldRemoteGenerationQueue.java @@ -55,7 +55,7 @@ public class WorldRemoteGenerationQueue implements IWorldGenerationQueue, IDebug { this.networkState = networkState; this.level = level; - DebugRenderer.register(this); + DebugRenderer.register(this, Config.Client.Advanced.Debugging.DebugWireframe.showWorldGenQueue); } @Override @@ -188,6 +188,7 @@ public class WorldRemoteGenerationQueue implements IWorldGenerationQueue, IDebug return entry.future.cancel(false); fullDataSource.splitIntoChunkSizedAccessors(chunkDataConsumer); + response.getFullDataSourceLoader().returnPooledDataSource(fullDataSource); } catch (InvalidLevelException ignored) { @@ -255,13 +256,12 @@ public class WorldRemoteGenerationQueue implements IWorldGenerationQueue, IDebug public void close() { f3Message.close(); + DebugRenderer.unregister(this, Config.Client.Advanced.Debugging.DebugWireframe.showWorldGenQueue); } @Override public void debugRender(DebugRenderer r) { - if (!Config.Client.Advanced.Debugging.DebugWireframeRendering.worldRemoteGenerationQueue.get()) return; - for (Map.Entry mapEntry : waitingTasks.entrySet()) { r.renderBox(new DebugRenderer.Box(mapEntry.getKey(), -32f, 64f, 0.05f, diff --git a/core/src/main/java/com/seibel/distanthorizons/core/level/DhServerLevel.java b/core/src/main/java/com/seibel/distanthorizons/core/level/DhServerLevel.java index 8ae9c8ac0..146511579 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/level/DhServerLevel.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/level/DhServerLevel.java @@ -237,7 +237,7 @@ public class DhServerLevel extends DhLevel implements IDhServerLevel { for (ServerPlayerState serverPlayerState : remotePlayerConnectionHandler.getConnectedPlayers()) { - if (serverPlayerState.config.isRealTimeUpdatesEnabled()) continue; + if (!serverPlayerState.config.isRealTimeUpdatesEnabled()) continue; if (chunk.getChunkPos().distance(new DhChunkPos(serverPlayerState.serverPlayer.getPosition())) <= serverPlayerState.config.getRenderDistance()) serverPlayerState.channelContext.writeAndFlush(new FullDataPartialUpdateMessage(chunkSizedFullDataAccessor, this)); diff --git a/core/src/main/java/com/seibel/distanthorizons/core/network/messages/fullData/generation/FullDataSourceResponseMessage.java b/core/src/main/java/com/seibel/distanthorizons/core/network/messages/fullData/generation/FullDataSourceResponseMessage.java index 742188dde..e29538f01 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/network/messages/fullData/generation/FullDataSourceResponseMessage.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/network/messages/fullData/generation/FullDataSourceResponseMessage.java @@ -41,6 +41,7 @@ public class FullDataSourceResponseMessage extends FutureTrackableNetworkMessage private DhServerLevel level; private CompleteFullDataSourceLoader fullDataSourceLoader; + public CompleteFullDataSourceLoader getFullDataSourceLoader() { return fullDataSourceLoader; } private ByteBuf dataBuffer; public FullDataSourceResponseMessage() {}