From 27d9e6aeb745507e0972cc33ec1d2cb0609ae170 Mon Sep 17 00:00:00 2001 From: Morippi Date: Mon, 13 Dec 2021 22:55:29 +0100 Subject: [PATCH] Added slice in mergeAndAddData --- .../objects/lod/VerticalLevelContainer.java | 23 ++++++++++++++----- 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/src/main/java/com/seibel/lod/core/objects/lod/VerticalLevelContainer.java b/src/main/java/com/seibel/lod/core/objects/lod/VerticalLevelContainer.java index df0662750..1ef16065d 100644 --- a/src/main/java/com/seibel/lod/core/objects/lod/VerticalLevelContainer.java +++ b/src/main/java/com/seibel/lod/core/objects/lod/VerticalLevelContainer.java @@ -256,6 +256,14 @@ public class VerticalLevelContainer implements LevelContainer * @return one column of correctly parsed data */ public void mergeAndAddData(int posZ, int posX, short[] inputPositionDataToMerge, int[] inputVerticalData, int[] inputColorData, int[] inputLightData, byte inputDetailLevel, int inputVerticalSize) + { + mergeAndAddData(0, inputPositionDataToMerge.length, posZ, posX, inputPositionDataToMerge, inputVerticalData, inputColorData, inputLightData, inputDetailLevel, inputVerticalSize); + } + /** + * This method merge column of multiple data together + * @return one column of correctly parsed data + */ + public void mergeAndAddData(int sliceStart, int sliceEnd, int posZ, int posX, short[] inputPositionDataToMerge, int[] inputVerticalData, int[] inputColorData, int[] inputLightData, byte inputDetailLevel, int inputVerticalSize) { @@ -278,13 +286,16 @@ public class VerticalLevelContainer implements LevelContainer boolean allEmpty = true; boolean allVoid = true; - //we combine every position of the input - for(short data : inputPositionDataToMerge) + short tempPositionData; + //we combine every position in the slice of the input + //I THINK YOU CAN SEE HOW TO USE THE SLICE FROM HERE + for(int index = sliceStart; index <=sliceEnd; index++) { - genMode = (byte) Math.min(genMode, PositionDataFormat.getGenerationMode(data)); - correctLight &= PositionDataFormat.getFlag(data); - allVoid &= PositionDataFormat.isVoid(data); - allEmpty &= PositionDataFormat.doesItExist(data); + tempPositionData = inputPositionDataToMerge[index]; + genMode = (byte) Math.min(genMode, PositionDataFormat.getGenerationMode(tempPositionData)); + correctLight &= PositionDataFormat.getFlag(tempPositionData); + allVoid &= PositionDataFormat.isVoid(tempPositionData); + allEmpty &= PositionDataFormat.doesItExist(tempPositionData); } //Case 1: should never happen but we use this just in case