From 6f4e105542faf024ccfaa34c868803e456dbffb5 Mon Sep 17 00:00:00 2001 From: s809 <43530948+s809@users.noreply.github.com> Date: Mon, 18 Sep 2023 13:44:19 +0500 Subject: [PATCH] Fix compiling --- .../fullData/sources/CompleteFullDataSource.java | 10 +++++----- .../file/fullDatafile/RemoteFullDataFileHandler.java | 10 +++++++--- .../core/generation/WorldRemoteGenerationQueue.java | 4 ++-- .../distanthorizons/core/level/DhServerLevel.java | 2 +- .../fullData/updates/FullDataPartialUpdateMessage.java | 4 ++-- 5 files changed, 17 insertions(+), 13 deletions(-) diff --git a/core/src/main/java/com/seibel/distanthorizons/core/dataObjects/fullData/sources/CompleteFullDataSource.java b/core/src/main/java/com/seibel/distanthorizons/core/dataObjects/fullData/sources/CompleteFullDataSource.java index fad706b66..edebb5f2d 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/dataObjects/fullData/sources/CompleteFullDataSource.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/dataObjects/fullData/sources/CompleteFullDataSource.java @@ -391,14 +391,14 @@ public class CompleteFullDataSource extends FullDataArrayAccessor implements IFu public void splitIntoChunkSizedAccessors(Consumer consumer) { - LodUtil.assertTrue(sectionPos.sectionDetailLevel == DhSectionPos.SECTION_BLOCK_DETAIL_LEVEL, "Data source detail level must be at block detail level."); + LodUtil.assertTrue(sectionPos.getDetailLevel() == DhSectionPos.SECTION_BLOCK_DETAIL_LEVEL, "Data source detail level must be at block detail level."); sectionPos.forEachChildAtLevel(LodUtil.CHUNK_DETAIL_LEVEL, childPos -> { - ChunkSizedFullDataAccessor accessor = new ChunkSizedFullDataAccessor(new DhChunkPos(childPos.sectionX, childPos.sectionZ)); + ChunkSizedFullDataAccessor accessor = new ChunkSizedFullDataAccessor(new DhChunkPos(childPos.getX(), childPos.getZ())); - int detailLevelDifference = sectionPos.sectionDetailLevel - childPos.sectionDetailLevel; - int childRelativeX = childPos.sectionX - sectionPos.sectionX * BitShiftUtil.powerOfTwo(detailLevelDifference); - int childRelativeZ = childPos.sectionZ - sectionPos.sectionZ * BitShiftUtil.powerOfTwo(detailLevelDifference); + int detailLevelDifference = sectionPos.getDetailLevel() - childPos.getDetailLevel(); + int childRelativeX = childPos.getX() - sectionPos.getX() * BitShiftUtil.powerOfTwo(detailLevelDifference); + int childRelativeZ = childPos.getZ() - sectionPos.getZ() * BitShiftUtil.powerOfTwo(detailLevelDifference); subView( LodUtil.CHUNK_WIDTH, diff --git a/core/src/main/java/com/seibel/distanthorizons/core/file/fullDatafile/RemoteFullDataFileHandler.java b/core/src/main/java/com/seibel/distanthorizons/core/file/fullDatafile/RemoteFullDataFileHandler.java index 2528dfd87..111acdbab 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/file/fullDatafile/RemoteFullDataFileHandler.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/file/fullDatafile/RemoteFullDataFileHandler.java @@ -84,8 +84,8 @@ public class RemoteFullDataFileHandler extends GeneratedFullDataFileHandler sectionsToUpdate.remove(pos); Consumer chunkDataConsumer = (ChunkSizedFullDataAccessor data) -> { - DhLodPos pos = data.getLodPos().convertToDetailLevel(CompleteFullDataSource.SECTION_SIZE_OFFSET); - this.writeChunkDataToFile(new DhSectionPos(pos.detailLevel, pos.x, pos.z), data); + DhSectionPos pos = data.getSectionPos().convertNewToDetailLevel(CompleteFullDataSource.SECTION_SIZE_OFFSET); + this.writeChunkDataToFile(new DhSectionPos(pos.getDetailLevel(), pos.getX(), pos.getZ()), data); }; this.networkState.getClient().sendRequest(new FullDataChangeSummaryRequestMessage(level.getLevelWrapper(), block)) @@ -102,7 +102,7 @@ public class RemoteFullDataFileHandler extends GeneratedFullDataFileHandler for (DhSectionPos pos : response.changedPosList) { - queue.submitGenTask(pos, pos.sectionDetailLevel, new IWorldGenTaskTracker() { + queue.submitGenTask(pos, pos.getDetailLevel(), new IWorldGenTaskTracker() { @Override public boolean isMemoryAddressValid() { @@ -144,6 +144,10 @@ public class RemoteFullDataFileHandler extends GeneratedFullDataFileHandler @Override public FullDataMetaFile getFileIfExist(DhSectionPos pos) { + // This feature is broken - same data may produce different hashes, apparently + if (true) + return super.getFileIfExist(pos); + if (this.networkState == null || !this.isFileUnloaded(pos)) return super.getFileIfExist(pos); 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 c6290190b..704da2f47 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 @@ -65,7 +65,7 @@ public class WorldRemoteGenerationQueue implements IWorldGenerationQueue, IDebug @Override public CompletableFuture submitGenTask(DhSectionPos sectionPos, byte requiredDataDetail, IWorldGenTaskTracker tracker) { - LodUtil.assertTrue(sectionPos.sectionDetailLevel == DhSectionPos.SECTION_MINIMUM_DETAIL_LEVEL, "Only highest-detail sections are allowed."); + LodUtil.assertTrue(sectionPos.getDetailLevel() == DhSectionPos.SECTION_MINIMUM_DETAIL_LEVEL, "Only highest-detail sections are allowed."); WorldGenQueueEntry entry = new WorldGenQueueEntry(new CompletableFuture<>(), tracker); waitingTasks.put(sectionPos, entry); @@ -74,7 +74,7 @@ public class WorldRemoteGenerationQueue implements IWorldGenerationQueue, IDebug private int posDistanceSquared(DhBlockPos2D targetPos, DhSectionPos pos) { - return (int) pos.getCenter().getCenterBlockPos().distSquared(targetPos); + return (int) pos.getCenterBlockPos().distSquared(targetPos); } @Override 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 36379395f..35d1947c0 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 @@ -110,7 +110,7 @@ public class DhServerLevel extends DhLevel implements IDhServerLevel if (serverPlayerState.serverPlayer.getLevel() != this.serverLevelWrapper) return; - LOGGER.debug("FullDataSourceRequestMessage received at pos ({}, {}) with detail level {}", msg.dhSectionPos.sectionX, msg.dhSectionPos.sectionZ, msg.dhSectionPos.sectionDetailLevel); + LOGGER.debug("FullDataSourceRequestMessage received at pos ({}, {}) with detail level {}", msg.dhSectionPos.getX(), msg.dhSectionPos.getZ(), msg.dhSectionPos.getDetailLevel()); if (serverPlayerState.pendingFullDataRequests.incrementAndGet() > rateLimitConfig.get()) { diff --git a/core/src/main/java/com/seibel/distanthorizons/core/network/messages/fullData/updates/FullDataPartialUpdateMessage.java b/core/src/main/java/com/seibel/distanthorizons/core/network/messages/fullData/updates/FullDataPartialUpdateMessage.java index 601c5be7a..bf2687aa8 100644 --- a/core/src/main/java/com/seibel/distanthorizons/core/network/messages/fullData/updates/FullDataPartialUpdateMessage.java +++ b/core/src/main/java/com/seibel/distanthorizons/core/network/messages/fullData/updates/FullDataPartialUpdateMessage.java @@ -63,8 +63,8 @@ public class FullDataPartialUpdateMessage extends FutureTrackableNetworkMessage out.writeInt(levelHashCode); - out.writeInt(fullDataAccessor.pos.x); - out.writeInt(fullDataAccessor.pos.z); + out.writeInt(fullDataAccessor.chunkPos.x); + out.writeInt(fullDataAccessor.chunkPos.z); out.writeInt(outputStream.size()); out.writeBytes(outputStream.toByteArray());