diff --git a/src/main/java/com/seibel/lod/core/objects/a7/DhChunk.java b/src/main/java/com/seibel/lod/core/objects/a7/DhChunk.java index a0f4843c8..936a68ec6 100644 --- a/src/main/java/com/seibel/lod/core/objects/a7/DhChunk.java +++ b/src/main/java/com/seibel/lod/core/objects/a7/DhChunk.java @@ -1,49 +1,60 @@ package com.seibel.lod.core.objects.a7; -import com.seibel.lod.core.objects.a7.io.DHFolderHandler; -import com.seibel.lod.core.objects.a7.io.LevelToFileMatcher; import com.seibel.lod.core.wrapperInterfaces.block.IBlockDetailWrapper; import com.seibel.lod.core.wrapperInterfaces.world.IBiomeWrapper; -import com.seibel.lod.core.wrapperInterfaces.world.IWorldWrapper; - -import java.io.File; -import java.util.HashMap; public class DhChunk { - public int CHUNK_SIZE = 16; + public int CHUNK_BLOCK_SIZE = 16; + public int CHUNK_BIOME_SIZE = 4; + + public int blockVerticalSize; + public int biomeVerticalSize; + + public IBlockDetailWrapper[] blockData; public IBiomeWrapper[] biomeData; - public int[] verticalData; - public int verticalSize; + + public int[] blockVerticalData; + public int[] biomeVerticalData; + public int chunkPosX; public int chunkPosZ; public byte generationMode; - public DhChunk(byte generationMode, int chunkPosX, int chunkPosZ, int verticalSize) + public DhChunk(byte generationMode, int chunkPosX, int chunkPosZ, int blockVerticalSize, int biomeVerticalSize) { - this.verticalSize = verticalSize; + this.blockVerticalSize = blockVerticalSize; + this.biomeVerticalSize = biomeVerticalSize; this.chunkPosX = chunkPosX; this.chunkPosZ = chunkPosZ; this.generationMode = generationMode; - this.blockData = new IBlockDetailWrapper[CHUNK_SIZE*CHUNK_SIZE*verticalSize]; - this.biomeData = new IBiomeWrapper[CHUNK_SIZE*CHUNK_SIZE*verticalSize]; - this.verticalData = new int[CHUNK_SIZE*CHUNK_SIZE*verticalSize]; + this.blockData = new IBlockDetailWrapper[CHUNK_BLOCK_SIZE * CHUNK_BLOCK_SIZE * blockVerticalSize]; + this.biomeData = new IBiomeWrapper[CHUNK_BLOCK_SIZE * CHUNK_BLOCK_SIZE * biomeVerticalSize]; + + this.blockVerticalData = new int[CHUNK_BIOME_SIZE * CHUNK_BIOME_SIZE * blockVerticalSize]; + this.biomeVerticalData = new int[CHUNK_BIOME_SIZE * CHUNK_BIOME_SIZE * biomeVerticalSize]; } - public void addData(IBlockDetailWrapper block, IBiomeWrapper biome, int singelVerticalData, int relPosX, int relPosZ, int verticalIndex) + public void addBlockData(IBlockDetailWrapper block, int verticalData, int relPosX, int relPosZ, int verticalIndex) { - int index = CHUNK_SIZE*verticalSize*relPosX + verticalSize*relPosZ + verticalIndex; + int index = CHUNK_BLOCK_SIZE * blockVerticalSize * relPosX + blockVerticalSize *relPosZ + verticalIndex; blockData[index] = block; + blockVerticalData[index] = verticalData; + } + + public void addBiomeData(IBiomeWrapper biome, int verticalData, int relPosX, int relPosZ, int verticalIndex) + { + int index = CHUNK_BIOME_SIZE * biomeVerticalSize*relPosX + biomeVerticalSize*relPosZ + verticalIndex; biomeData[index] = biome; - verticalData[index] = singelVerticalData; + biomeVerticalData[index] = verticalData; } public long[] getData() { long[] data = new long[3]; - //long data = something created using block biome and singelVerticalData; + return data; } }