diff --git a/engine-tests/src/main/java/org/terasology/MapWorldProvider.java b/engine-tests/src/main/java/org/terasology/MapWorldProvider.java index 639fc4ed5e2..49763ca0203 100644 --- a/engine-tests/src/main/java/org/terasology/MapWorldProvider.java +++ b/engine-tests/src/main/java/org/terasology/MapWorldProvider.java @@ -19,11 +19,9 @@ import org.joml.Vector3i; import org.joml.Vector3ic; import org.terasology.entitySystem.entity.EntityRef; -import org.terasology.math.JomlUtil; import org.terasology.world.WorldChangeListener; import org.terasology.world.block.Block; import org.terasology.world.block.BlockManager; -import org.terasology.world.block.BlockRegion; import org.terasology.world.block.BlockRegionc; import org.terasology.world.chunks.Chunk; import org.terasology.world.chunks.Chunks; @@ -104,7 +102,7 @@ public Block getBlock(int x, int y, int z) { Vector3i chunkPos = Chunks.toChunkPos(pos, new Vector3i()); Chunk chunk = chunks.get(chunkPos); if (chunk == null && worldGenerator != null) { - chunk = new ChunkImpl(JomlUtil.from(chunkPos), blockManager, extraDataManager); + chunk = new ChunkImpl(chunkPos, blockManager, extraDataManager); worldGenerator.createChunk(chunk, entityBuffer); chunks.put(chunkPos, chunk); } @@ -174,7 +172,7 @@ public void dispose() { } @Override - public Collection getRelevantRegions() { + public Collection getRelevantRegions() { return Collections.emptySet(); } } diff --git a/engine-tests/src/main/java/org/terasology/testUtil/WorldProviderCoreStub.java b/engine-tests/src/main/java/org/terasology/testUtil/WorldProviderCoreStub.java index 4ae292f160e..111910c12da 100644 --- a/engine-tests/src/main/java/org/terasology/testUtil/WorldProviderCoreStub.java +++ b/engine-tests/src/main/java/org/terasology/testUtil/WorldProviderCoreStub.java @@ -16,13 +16,13 @@ package org.terasology.testUtil; +import com.google.common.collect.ImmutableList; import com.google.common.collect.Maps; import org.joml.Vector3i; import org.joml.Vector3ic; import org.terasology.entitySystem.entity.EntityRef; import org.terasology.world.WorldChangeListener; import org.terasology.world.block.Block; -import org.terasology.world.block.BlockRegion; import org.terasology.world.block.BlockRegionc; import org.terasology.world.internal.ChunkViewCore; import org.terasology.world.internal.WorldInfo; @@ -163,7 +163,7 @@ public WorldTime getTime() { } @Override - public Collection getRelevantRegions() { + public Collection getRelevantRegions() { return Collections.emptySet(); } diff --git a/engine-tests/src/test/java/org/terasology/persistence/internal/StorageManagerTest.java b/engine-tests/src/test/java/org/terasology/persistence/internal/StorageManagerTest.java index 2818ffef70b..c9d7cd322ee 100644 --- a/engine-tests/src/test/java/org/terasology/persistence/internal/StorageManagerTest.java +++ b/engine-tests/src/test/java/org/terasology/persistence/internal/StorageManagerTest.java @@ -41,7 +41,6 @@ import org.terasology.entitySystem.stubs.StringComponent; import org.terasology.joml.geom.AABBfc; import org.terasology.logic.location.LocationComponent; -import org.terasology.math.JomlUtil; import org.terasology.module.ModuleEnvironment; import org.terasology.network.Client; import org.terasology.network.ClientComponent; @@ -280,7 +279,7 @@ public void testGetUnstoredChunkReturnsNothing() { @Test public void testStoreAndRestoreChunkStore() { - Chunk chunk = new ChunkImpl(JomlUtil.from(CHUNK_POS), blockManager, extraDataManager); + Chunk chunk = new ChunkImpl(CHUNK_POS, blockManager, extraDataManager); chunk.setBlock(0, 0, 0, testBlock); chunk.markReady(); ChunkProvider chunkProvider = mock(ChunkProvider.class); @@ -299,7 +298,7 @@ public void testStoreAndRestoreChunkStore() { @Test public void testChunkSurvivesStorageSaveAndRestore() throws Exception { - Chunk chunk = new ChunkImpl(JomlUtil.from(CHUNK_POS), blockManager, extraDataManager); + Chunk chunk = new ChunkImpl(CHUNK_POS, blockManager, extraDataManager); chunk.setBlock(0, 0, 0, testBlock); chunk.setBlock(0, 4, 2, testBlock2); chunk.markReady(); @@ -331,7 +330,7 @@ public void testChunkSurvivesStorageSaveAndRestore() throws Exception { @Test public void testEntitySurvivesStorageInChunkStore() throws Exception { - Chunk chunk = new ChunkImpl(JomlUtil.from(CHUNK_POS), blockManager, extraDataManager); + Chunk chunk = new ChunkImpl(CHUNK_POS, blockManager, extraDataManager); chunk.setBlock(0, 0, 0, testBlock); chunk.markReady(); ChunkProvider chunkProvider = mock(ChunkProvider.class); diff --git a/engine-tests/src/test/java/org/terasology/world/ChunkTest.java b/engine-tests/src/test/java/org/terasology/world/ChunkTest.java index 5f2ece7f1f4..7373d6898d2 100644 --- a/engine-tests/src/test/java/org/terasology/world/ChunkTest.java +++ b/engine-tests/src/test/java/org/terasology/world/ChunkTest.java @@ -23,7 +23,6 @@ import org.terasology.assets.ResourceUrn; import org.terasology.assets.management.AssetManager; import org.terasology.joml.geom.AABBfc; -import org.terasology.math.JomlUtil; import org.terasology.registry.CoreRegistry; import org.terasology.world.block.Block; import org.terasology.world.block.BlockManager; @@ -35,7 +34,6 @@ import org.terasology.world.block.shapes.BlockShape; import org.terasology.world.block.tiles.NullWorldAtlas; import org.terasology.world.chunks.Chunk; -import org.terasology.world.chunks.ChunkConstants; import org.terasology.world.chunks.Chunks; import org.terasology.world.chunks.blockdata.ExtraBlockDataManager; import org.terasology.world.chunks.internal.ChunkImpl; @@ -57,7 +55,7 @@ public void setup() throws Exception { ExtraBlockDataManager extraDataManager = new ExtraBlockDataManager(); - chunk = new ChunkImpl(JomlUtil.from(new Vector3i(0, 0, 0)), blockManager, extraDataManager); + chunk = new ChunkImpl(new Vector3i(0, 0, 0), blockManager, extraDataManager); BlockFamilyDefinitionData solidData = new BlockFamilyDefinitionData(); solidData.getBaseSection().setDisplayName("Stone"); @@ -77,8 +75,8 @@ public void testChangeBlock() { @Test public void testGetAabb() { AABBfc aabb = chunk.getAABB(); - assertEquals(new Vector3f(0, 0, 0), new Vector3f(aabb.minX(), aabb.minY(), aabb.minZ())); - assertEquals(new Vector3f(Chunks.SIZE_X, Chunks.SIZE_Y, Chunks.SIZE_Z), new Vector3f(aabb.maxX(), aabb.maxY(), aabb.maxZ())); + assertEquals(new Vector3f(-.5f, -.5f, -.5f), new Vector3f(aabb.minX(), aabb.minY(), aabb.minZ())); + assertEquals(new Vector3f(Chunks.SIZE_X - .5f, Chunks.SIZE_Y - .5f, Chunks.SIZE_Z - .5f), new Vector3f(aabb.maxX(), aabb.maxY(), aabb.maxZ())); } } diff --git a/engine-tests/src/test/java/org/terasology/world/ChunkViewTest.java b/engine-tests/src/test/java/org/terasology/world/ChunkViewTest.java index 4e2e48c808e..6a866c8ae35 100644 --- a/engine-tests/src/test/java/org/terasology/world/ChunkViewTest.java +++ b/engine-tests/src/test/java/org/terasology/world/ChunkViewTest.java @@ -21,7 +21,6 @@ import org.terasology.TerasologyTestingEnvironment; import org.terasology.assets.ResourceUrn; import org.terasology.assets.management.AssetManager; -import org.terasology.math.JomlUtil; import org.terasology.registry.CoreRegistry; import org.terasology.world.block.Block; import org.terasology.world.block.BlockManager; @@ -35,6 +34,7 @@ import org.terasology.world.block.tiles.NullWorldAtlas; import org.terasology.world.chunks.Chunk; import org.terasology.world.chunks.ChunkConstants; +import org.terasology.world.chunks.Chunks; import org.terasology.world.chunks.blockdata.ExtraBlockDataManager; import org.terasology.world.chunks.internal.ChunkImpl; import org.terasology.world.internal.ChunkViewCore; @@ -145,10 +145,10 @@ public void testLocalToWorld() { ChunkViewCoreImpl chunkView = new ChunkViewCoreImpl(chunks, new BlockRegion(1, 0, 1).expand(1, 0, 1), new Vector3i(1, 1, 1), airBlock); - assertEquals(new Vector3i(ChunkConstants.SIZE_X, ChunkConstants.SIZE_Y, ChunkConstants.SIZE_Z), chunkView.toWorldPos(new Vector3i())); + assertEquals(new Vector3i(Chunks.SIZE_X, Chunks.SIZE_Y, Chunks.SIZE_Z), chunkView.toWorldPos(new Vector3i())); } private Chunk createChunk(int x, int y, int z) { - return new ChunkImpl(JomlUtil.from(new Vector3i(x, y, z)), blockManager, extraDataManager); + return new ChunkImpl(new Vector3i(x, y, z), blockManager, extraDataManager); } } diff --git a/engine-tests/src/test/java/org/terasology/world/chunks/localChunkProvider/LocalChunkProviderTest.java b/engine-tests/src/test/java/org/terasology/world/chunks/localChunkProvider/LocalChunkProviderTest.java index 1a4c49c984e..d893282f91d 100644 --- a/engine-tests/src/test/java/org/terasology/world/chunks/localChunkProvider/LocalChunkProviderTest.java +++ b/engine-tests/src/test/java/org/terasology/world/chunks/localChunkProvider/LocalChunkProviderTest.java @@ -17,7 +17,6 @@ import org.terasology.fixtures.TestChunkStore; import org.terasology.fixtures.TestStorageManager; import org.terasology.fixtures.TestWorldGenerator; -import org.terasology.math.JomlUtil; import org.terasology.world.BlockEntityRegistry; import org.terasology.world.block.BeforeDeactivateBlocks; import org.terasology.world.block.Block; @@ -178,7 +177,7 @@ void testGenerateSingleChunkWithBlockLifeCycle() throws InterruptedException, Ex @Test void testLoadSingleChunk() throws InterruptedException, ExecutionException, TimeoutException { Vector3i chunkPosition = new Vector3i(0, 0, 0); - Chunk chunk = new ChunkImpl(JomlUtil.from(chunkPosition), blockManager, extraDataManager); + Chunk chunk = new ChunkImpl(chunkPosition, blockManager, extraDataManager); generator.createChunk(chunk, null); storageManager.add(chunk); @@ -201,7 +200,7 @@ void testLoadSingleChunk() throws InterruptedException, ExecutionException, Time @Test void testLoadSingleChunkWithBlockLifecycle() throws InterruptedException, ExecutionException, TimeoutException { Vector3i chunkPosition = new Vector3i(0, 0, 0); - Chunk chunk = new ChunkImpl(JomlUtil.from(chunkPosition), blockManager, extraDataManager); + Chunk chunk = new ChunkImpl(chunkPosition, blockManager, extraDataManager); generator.createChunk(chunk, null); storageManager.add(chunk); blockAtBlockManager.setLifecycleEventsRequired(true); diff --git a/engine-tests/src/test/java/org/terasology/world/chunks/pipeline/ChunkProcessingPipelineTest.java b/engine-tests/src/test/java/org/terasology/world/chunks/pipeline/ChunkProcessingPipelineTest.java index f855cebcf92..49fa5cd476d 100644 --- a/engine-tests/src/test/java/org/terasology/world/chunks/pipeline/ChunkProcessingPipelineTest.java +++ b/engine-tests/src/test/java/org/terasology/world/chunks/pipeline/ChunkProcessingPipelineTest.java @@ -108,7 +108,7 @@ void multiRequirementsChunksExistsSuccess() throws ExecutionException, Interrupt pipeline.addStage(ChunkTaskProvider.createMulti( "flat merging task", (chunks) -> chunks.stream() - .filter((c) -> c.getPosition(new Vector3i()).equals(positionToGenerate)) + .filter((c) -> c.getPosition().equals(positionToGenerate)) .findFirst() // return central chunk. .get(), this::getNearChunkPositions)); @@ -142,7 +142,7 @@ void multiRequirementsChunksWillGeneratedSuccess() throws ExecutionException, In pipeline.addStage(ChunkTaskProvider.createMulti( "flat merging task", (chunks) -> chunks.stream() - .filter((c) -> c.getPosition(new Vector3i()).equals(positionToGenerate)).findFirst() // return central chunk. + .filter((c) -> c.getPosition().equals(positionToGenerate)).findFirst() // return central chunk. .get(), this::getNearChunkPositions)); @@ -254,9 +254,8 @@ private Set getNearChunkPositions(Vector3ic p, int distance) { return requirements; } - private ChunkImpl createChunkAt(Vector3ic pos) { - return new ChunkImpl(JomlUtil.from(pos), blockManager, extraDataManager); + private ChunkImpl createChunkAt(Vector3ic chunkPos) { + return new ChunkImpl(chunkPos, blockManager, extraDataManager); } - } diff --git a/engine-tests/src/test/java/org/terasology/world/propagation/BetweenChunkPropagationTest.java b/engine-tests/src/test/java/org/terasology/world/propagation/BetweenChunkPropagationTest.java index 3e8c8cdc8d5..1e9c88f85fe 100644 --- a/engine-tests/src/test/java/org/terasology/world/propagation/BetweenChunkPropagationTest.java +++ b/engine-tests/src/test/java/org/terasology/world/propagation/BetweenChunkPropagationTest.java @@ -24,7 +24,6 @@ import org.terasology.assets.ResourceUrn; import org.terasology.assets.management.AssetManager; import org.terasology.entitySystem.entity.EntityRef; -import org.terasology.math.JomlUtil; import org.terasology.math.Side; import org.terasology.registry.CoreRegistry; import org.terasology.world.block.Block; @@ -100,8 +99,8 @@ public void setup() throws Exception { @Test public void testBetweenChunksSimple() { - Chunk topChunk = new ChunkImpl(JomlUtil.from(new Vector3i(0, 1, 0)), blockManager, extraDataManager); - Chunk bottomChunk = new ChunkImpl(JomlUtil.from(new Vector3i(0, 0, 0)), blockManager, extraDataManager); + Chunk topChunk = new ChunkImpl(new Vector3i(0, 1, 0), blockManager, extraDataManager); + Chunk bottomChunk = new ChunkImpl(new Vector3i(0, 0, 0), blockManager, extraDataManager); provider.addChunk(topChunk); provider.addChunk(bottomChunk); @@ -122,8 +121,8 @@ public void testBetweenChunksSimple() { @Test public void testBetweenChunksSimpleSunlightRegenOnly() { - Chunk topChunk = new ChunkImpl(JomlUtil.from(new Vector3i(0, 1, 0)), blockManager, extraDataManager); - Chunk bottomChunk = new ChunkImpl(JomlUtil.from(new Vector3i(0, 0, 0)), blockManager, extraDataManager); + Chunk topChunk = new ChunkImpl(new Vector3i(0, 1, 0), blockManager, extraDataManager); + Chunk bottomChunk = new ChunkImpl(new Vector3i(0, 0, 0), blockManager, extraDataManager); provider.addChunk(topChunk); provider.addChunk(bottomChunk); @@ -142,8 +141,8 @@ public void testBetweenChunksSimpleSunlightRegenOnly() { @Test public void testBetweenChunksWithOverhang() { - Chunk topChunk = new ChunkImpl(JomlUtil.from(new Vector3i(0, 1, 0)), blockManager, extraDataManager); - Chunk bottomChunk = new ChunkImpl(JomlUtil.from(new Vector3i(0, 0, 0)), blockManager, extraDataManager); + Chunk topChunk = new ChunkImpl(new Vector3i(0, 1, 0), blockManager, extraDataManager); + Chunk bottomChunk = new ChunkImpl(new Vector3i(0, 0, 0), blockManager, extraDataManager); provider.addChunk(topChunk); provider.addChunk(bottomChunk); @@ -170,8 +169,8 @@ public void testBetweenChunksWithOverhang() { @Test public void testPropagateSunlightAppearingMidChunk() { - Chunk topChunk = new ChunkImpl(JomlUtil.from(new Vector3i(0, 1, 0)), blockManager, extraDataManager); - Chunk bottomChunk = new ChunkImpl(JomlUtil.from(new Vector3i(0, 0, 0)), blockManager, extraDataManager); + Chunk topChunk = new ChunkImpl(new Vector3i(0, 1, 0), blockManager, extraDataManager); + Chunk bottomChunk = new ChunkImpl(new Vector3i(0, 0, 0), blockManager, extraDataManager); provider.addChunk(topChunk); provider.addChunk(bottomChunk); diff --git a/engine/src/main/java/org/terasology/engine/subsystem/headless/renderer/HeadlessWorldRenderer.java b/engine/src/main/java/org/terasology/engine/subsystem/headless/renderer/HeadlessWorldRenderer.java index 0f24e100a46..d2548c92f36 100644 --- a/engine/src/main/java/org/terasology/engine/subsystem/headless/renderer/HeadlessWorldRenderer.java +++ b/engine/src/main/java/org/terasology/engine/subsystem/headless/renderer/HeadlessWorldRenderer.java @@ -266,7 +266,7 @@ private Vector3i calcCamChunkOffset() { } private float distanceToCamera(RenderableChunk chunk) { - Vector3f result = new Vector3f((chunk.getPosition().x + 0.5f) * Chunks.SIZE_X, 0, (chunk.getPosition().z + 0.5f) * Chunks.SIZE_Z); + Vector3f result = new Vector3f((chunk.getPosition().x() + 0.5f) * Chunks.SIZE_X, 0, (chunk.getPosition().z() + 0.5f) * Chunks.SIZE_Z); org.joml.Vector3f cameraPos = getActiveCamera().getPosition(); result.x -= cameraPos.x; diff --git a/engine/src/main/java/org/terasology/persistence/internal/SaveTransactionBuilder.java b/engine/src/main/java/org/terasology/persistence/internal/SaveTransactionBuilder.java index e1bddd74318..7b104423ec4 100644 --- a/engine/src/main/java/org/terasology/persistence/internal/SaveTransactionBuilder.java +++ b/engine/src/main/java/org/terasology/persistence/internal/SaveTransactionBuilder.java @@ -17,6 +17,7 @@ import com.google.common.collect.Maps; import org.joml.Vector3i; +import org.joml.Vector3ic; import org.terasology.entitySystem.entity.internal.EngineEntityManager; import org.terasology.game.GameManifest; import org.terasology.math.JomlUtil; @@ -81,8 +82,8 @@ void addUnloadedChunk(final org.terasology.math.geom.Vector3i chunkPosition, fin } - void addLoadedChunk(final org.terasology.math.geom.Vector3i chunkPosition, final ChunkImpl chunk) { - loadedChunks.put(JomlUtil.from(chunkPosition), chunk); + void addLoadedChunk(final Vector3ic chunkPosition, final ChunkImpl chunk) { + loadedChunks.put(new Vector3i(chunkPosition), chunk); } public SaveTransaction build() { diff --git a/engine/src/main/java/org/terasology/world/chunks/ChunkBlockIterator.java b/engine/src/main/java/org/terasology/world/chunks/ChunkBlockIterator.java index 5fbdd569c81..ac93cdd7f44 100644 --- a/engine/src/main/java/org/terasology/world/chunks/ChunkBlockIterator.java +++ b/engine/src/main/java/org/terasology/world/chunks/ChunkBlockIterator.java @@ -15,7 +15,7 @@ */ package org.terasology.world.chunks; -import org.terasology.math.geom.Vector3i; +import org.joml.Vector3ic; import org.terasology.module.sandbox.API; import org.terasology.world.block.Block; @@ -39,5 +39,5 @@ public interface ChunkBlockIterator { /** * @return The world coords of the current block */ - Vector3i getBlockPos(); + Vector3ic getBlockPos(); } diff --git a/engine/src/main/java/org/terasology/world/chunks/CoreChunk.java b/engine/src/main/java/org/terasology/world/chunks/CoreChunk.java index c6f986546eb..3ddfd844355 100644 --- a/engine/src/main/java/org/terasology/world/chunks/CoreChunk.java +++ b/engine/src/main/java/org/terasology/world/chunks/CoreChunk.java @@ -2,12 +2,12 @@ // SPDX-License-Identifier: Apache-2.0 package org.terasology.world.chunks; +import org.joml.Vector3i; import org.joml.Vector3ic; -import org.terasology.math.geom.BaseVector3i; -import org.terasology.math.geom.Vector3i; import org.terasology.module.sandbox.API; import org.terasology.world.block.Block; import org.terasology.world.block.BlockRegion; +import org.terasology.world.block.BlockRegionc; /** * This interface describes the core of a chunk: @@ -26,30 +26,18 @@ public interface CoreChunk { /** * @return Position of the chunk in world, where units of distance from origin are chunks - * @deprecated This method is scheduled for removal in an upcoming version. - * Use the JOML implementation instead: {@link #getPosition(org.joml.Vector3i)}. */ - @Deprecated - Vector3i getPosition(); + Vector3ic getPosition(); /** * Position of the chunk in world, where units of distance from origin are chunks * * @param dest will hold the result * @return dest - */ - org.joml.Vector3i getPosition(org.joml.Vector3i dest); - - /** - * Returns block at given position relative to the chunk. - * - * @param pos Position of the block relative to corner of the chunk - * @return Block at given position - * @deprecated This method is scheduled for removal in an upcoming version. - * Use the JOML implementation instead: {@link #getBlock(Vector3ic)}. + * @deprecated use {@link #getPosition()} */ @Deprecated - Block getBlock(BaseVector3i pos); + org.joml.Vector3i getPosition(org.joml.Vector3i dest); /** * Returns block at given position relative to the chunk. @@ -80,18 +68,6 @@ public interface CoreChunk { */ Block setBlock(int x, int y, int z, Block block); - /** - * Sets type of block at given position relative to the chunk. - * - * @param pos Position of the block relative to corner of the chunk - * @param block Block to set block at given position to - * @return Old Block at given position - * @deprecated This method is scheduled for removal in an upcoming version. - * Use the JOML implementation instead: {@link #setBlock(Vector3ic, Block)}. - */ - @Deprecated - Block setBlock(BaseVector3i pos, Block block); - /** * Sets type of block at given position relative to the chunk. * @@ -114,21 +90,6 @@ public interface CoreChunk { */ void setExtraData(int index, int x, int y, int z, int value); - /** - * Sets one of the per-block custom data values at a given position relative to the chunk. - * The given value is downcast from int to the appropriate type for the array. It is not - * checked for overflow. - * - * @param index Index of the extra data array - * @param pos Position of the block relative to the corner of the chunk - * @param value New value to set the block to - * @deprecated This method is scheduled for removal in an upcoming version. - * Use the JOML implementation instead: {@link #setExtraData(int, Vector3ic, int)}. - */ - @Deprecated - void setExtraData(int index, BaseVector3i pos, int value); - - /** * Sets one of the per-block custom data values at a given position relative to the chunk. * The given value is downcast from int to the appropriate type for the array. It is not @@ -151,19 +112,6 @@ public interface CoreChunk { */ int getExtraData(int index, int x, int y, int z); - /** - * Returns one of the per-block custom data values at a given position relative to the chunk. - * - * @param index Index of the extra data array - * @param pos Position of the block relative to the corner of the chunk - * @return Selected extra data value at the given location - * @deprecated This method is scheduled for removal in an upcoming version. - * Use the JOML implementation instead: {@link #getExtraData(int, Vector3ic)}. - */ - @Deprecated - int getExtraData(int index, BaseVector3i pos); - - /** * Returns one of the per-block custom data values at a given position relative to the chunk. * @@ -173,22 +121,13 @@ public interface CoreChunk { */ int getExtraData(int index, Vector3ic pos); - /** - * Returns offset of this chunk to the world center (0:0:0), with one unit being one block. - * - * @return Offset of this chunk from world center in blocks - * @deprecated This method is scheduled for removal in an upcoming version. - * Use the JOML implementation instead: {@link #getChunkWorldOffset(org.joml.Vector3i)}. - */ - @Deprecated - Vector3i getChunkWorldOffset(); /** * Returns offset of this chunk to the world center (0:0:0), with one unit being one block. * * @return Offset of this chunk from world center in blocks */ - org.joml.Vector3i getChunkWorldOffset(org.joml.Vector3i pos); + Vector3i getChunkWorldOffset(Vector3i pos); /** @@ -212,16 +151,6 @@ public interface CoreChunk { */ int getChunkWorldOffsetZ(); - /** - * Returns position in this chunk transformed to world coordinates. - * - * @param blockPos Position in this chunk you want to transform - * @return Transformed position - * @deprecated This method is scheduled for removal in an upcoming version. - * Use the JOML implementation instead: {@link #chunkToWorldPosition(Vector3ic,org.joml.Vector3i)}. - */ - @Deprecated - Vector3i chunkToWorldPosition(BaseVector3i blockPos); /** * Returns position in this chunk transformed to world coordinates. @@ -229,21 +158,7 @@ public interface CoreChunk { * @param dest Position in this chunk you want to transform * @return Transformed position */ - org.joml.Vector3i chunkToWorldPosition(Vector3ic blockPos, org.joml.Vector3i dest); - - - /** - * Returns position in this chunk transformed to world coordinates. - * - * @param x X position in this chunk you want to transform - * @param y Y position in this chunk you want to transform - * @param z Z position in this chunk you want to transform - * @return Transformed position - * @deprecated This method is scheduled for removal in an upcoming version. - * Use the JOML implementation instead: {@link #chunkToWorldPosition(int, int, int, org.joml.Vector3i)}. - */ - @Deprecated - Vector3i chunkToWorldPosition(int x, int y, int z); + Vector3i chunkToWorldPosition(Vector3ic blockPos, Vector3i dest); /** @@ -255,7 +170,7 @@ public interface CoreChunk { * @param dest will hold the result * @return dest */ - org.joml.Vector3i chunkToWorldPosition(int x, int y, int z, org.joml.Vector3i dest); + Vector3i chunkToWorldPosition(int x, int y, int z, Vector3i dest); /** @@ -300,7 +215,7 @@ public interface CoreChunk { /** * @return Chunk's Region */ - BlockRegion getRegion(); + BlockRegionc getRegion(); int getEstimatedMemoryConsumptionInBytes(); diff --git a/engine/src/main/java/org/terasology/world/chunks/LodChunk.java b/engine/src/main/java/org/terasology/world/chunks/LodChunk.java index 2299ccd887c..829e769bb9e 100644 --- a/engine/src/main/java/org/terasology/world/chunks/LodChunk.java +++ b/engine/src/main/java/org/terasology/world/chunks/LodChunk.java @@ -30,8 +30,8 @@ public LodChunk(Vector3ic pos, ChunkMesh mesh, int scale) { } @Override - public org.terasology.math.geom.Vector3i getPosition() { - return JomlUtil.from(position); + public Vector3ic getPosition() { + return position; } @Override @@ -39,10 +39,6 @@ public Vector3i getPosition(Vector3i dest) { return dest.set(position); } - @Override - public org.terasology.math.geom.Vector3i getChunkWorldOffset() { - return JomlUtil.from(position).mul(Chunks.SIZE_X, Chunks.SIZE_Y, Chunks.SIZE_Z); - } @Override public Vector3i getChunkWorldOffset(Vector3i dest) { @@ -97,11 +93,6 @@ public boolean isReady() { return mesh != null; } - @Override - public Block getBlock(BaseVector3i pos) { - throw new UnsupportedOperationException(UNSUPPORTED_MESSAGE); - } - @Override public Block getBlock(Vector3ic pos) { throw new UnsupportedOperationException(UNSUPPORTED_MESSAGE); @@ -117,11 +108,6 @@ public Block setBlock(int x, int y, int z, Block block) { throw new UnsupportedOperationException(UNSUPPORTED_MESSAGE); } - @Override - public Block setBlock(BaseVector3i pos, Block block) { - throw new UnsupportedOperationException(UNSUPPORTED_MESSAGE); - } - @Override public Block setBlock(Vector3ic pos, Block block) { throw new UnsupportedOperationException(UNSUPPORTED_MESSAGE); @@ -132,11 +118,6 @@ public void setExtraData(int index, int x, int y, int z, int value) { throw new UnsupportedOperationException(UNSUPPORTED_MESSAGE); } - @Override - public void setExtraData(int index, BaseVector3i pos, int value) { - throw new UnsupportedOperationException(UNSUPPORTED_MESSAGE); - } - @Override public void setExtraData(int index, Vector3ic pos, int value) { throw new UnsupportedOperationException(UNSUPPORTED_MESSAGE); @@ -147,11 +128,6 @@ public int getExtraData(int index, int x, int y, int z) { throw new UnsupportedOperationException(UNSUPPORTED_MESSAGE); } - @Override - public int getExtraData(int index, BaseVector3i pos) { - throw new UnsupportedOperationException(UNSUPPORTED_MESSAGE); - } - @Override public int getExtraData(int index, Vector3ic pos) { throw new UnsupportedOperationException(UNSUPPORTED_MESSAGE); @@ -172,21 +148,11 @@ public int getChunkWorldOffsetZ() { throw new UnsupportedOperationException(UNSUPPORTED_MESSAGE); } - @Override - public org.terasology.math.geom.Vector3i chunkToWorldPosition(BaseVector3i blockPos) { - throw new UnsupportedOperationException(UNSUPPORTED_MESSAGE); - } - @Override public Vector3i chunkToWorldPosition(Vector3ic blockPos, Vector3i dest) { throw new UnsupportedOperationException(UNSUPPORTED_MESSAGE); } - @Override - public org.terasology.math.geom.Vector3i chunkToWorldPosition(int x, int y, int z) { - throw new UnsupportedOperationException(UNSUPPORTED_MESSAGE); - } - @Override public Vector3i chunkToWorldPosition(int x, int y, int z, Vector3i dest) { throw new UnsupportedOperationException(UNSUPPORTED_MESSAGE); diff --git a/engine/src/main/java/org/terasology/world/chunks/internal/ChunkBlockIteratorImpl.java b/engine/src/main/java/org/terasology/world/chunks/internal/ChunkBlockIteratorImpl.java index 765f0063c89..8db7e32a7af 100644 --- a/engine/src/main/java/org/terasology/world/chunks/internal/ChunkBlockIteratorImpl.java +++ b/engine/src/main/java/org/terasology/world/chunks/internal/ChunkBlockIteratorImpl.java @@ -15,7 +15,8 @@ */ package org.terasology.world.chunks.internal; -import org.terasology.math.geom.Vector3i; +import org.joml.Vector3i; +import org.joml.Vector3ic; import org.terasology.world.block.Block; import org.terasology.world.block.BlockManager; import org.terasology.world.chunks.ChunkBlockIterator; @@ -25,7 +26,7 @@ */ public class ChunkBlockIteratorImpl implements ChunkBlockIterator { - private final Vector3i worldOffset; + private final Vector3i worldOffset = new Vector3i(); private final Vector3i endPos; private final Vector3i pos = new Vector3i(-1, 0, 0); @@ -36,9 +37,9 @@ public class ChunkBlockIteratorImpl implements ChunkBlockIterator { private final BlockManager blockManager; - public ChunkBlockIteratorImpl(BlockManager blockManager, Vector3i worldOffset, TeraArray data) { + public ChunkBlockIteratorImpl(BlockManager blockManager, Vector3ic worldOffset, TeraArray data) { this.blockManager = blockManager; - this.worldOffset = worldOffset; + this.worldOffset.set(worldOffset); this.endPos = new Vector3i(data.getSizeX(), data.getSizeY(), data.getSizeZ()); this.data = data; } @@ -68,7 +69,7 @@ public Block getBlock() { } @Override - public Vector3i getBlockPos() { + public Vector3ic getBlockPos() { return blockPos; } } diff --git a/engine/src/main/java/org/terasology/world/chunks/internal/ChunkImpl.java b/engine/src/main/java/org/terasology/world/chunks/internal/ChunkImpl.java index 69f5ef10aa2..5ab5b6ede4c 100644 --- a/engine/src/main/java/org/terasology/world/chunks/internal/ChunkImpl.java +++ b/engine/src/main/java/org/terasology/world/chunks/internal/ChunkImpl.java @@ -17,16 +17,12 @@ import com.google.common.base.Objects; import com.google.common.base.Preconditions; +import org.joml.Vector3i; import org.joml.Vector3ic; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.terasology.joml.geom.AABBf; import org.terasology.joml.geom.AABBfc; -import org.terasology.math.AABB; -import org.terasology.math.JomlUtil; -import org.terasology.math.geom.BaseVector3i; -import org.terasology.math.geom.Vector3f; -import org.terasology.math.geom.Vector3i; import org.terasology.monitoring.chunk.ChunkMonitor; import org.terasology.protobuf.EntityData; import org.terasology.rendering.primitives.ChunkMesh; @@ -89,14 +85,14 @@ public ChunkImpl(int x, int y, int z, BlockManager blockManager, ExtraBlockDataM this(new Vector3i(x, y, z), blockManager, extraDataManager); } - public ChunkImpl(Vector3i chunkPos, BlockManager blockManager, ExtraBlockDataManager extraDataManager) { + public ChunkImpl(Vector3ic chunkPos, BlockManager blockManager, ExtraBlockDataManager extraDataManager) { this(chunkPos, - new TeraDenseArray16Bit(ChunkConstants.SIZE_X, ChunkConstants.SIZE_Y, ChunkConstants.SIZE_Z), - extraDataManager.makeDataArrays(ChunkConstants.SIZE_X, ChunkConstants.SIZE_Y, ChunkConstants.SIZE_Z), - blockManager); + new TeraDenseArray16Bit(Chunks.SIZE_X, Chunks.SIZE_Y, Chunks.SIZE_Z), + extraDataManager.makeDataArrays(Chunks.SIZE_X, Chunks.SIZE_Y, Chunks.SIZE_Z), + blockManager); } - public ChunkImpl(Vector3i chunkPos, TeraArray blocks, TeraArray[] extra, BlockManager blockManager) { + public ChunkImpl(Vector3ic chunkPos, TeraArray blocks, TeraArray[] extra, BlockManager blockManager) { this.chunkPos.set(Preconditions.checkNotNull(chunkPos)); this.blockData = Preconditions.checkNotNull(blocks); this.extraData = Preconditions.checkNotNull(extra); @@ -106,16 +102,16 @@ public ChunkImpl(Vector3i chunkPos, TeraArray blocks, TeraArray[] extra, BlockMa dirty = true; this.blockManager = blockManager; region = new BlockRegion( - chunkPos.x * ChunkConstants.SIZE_X, - chunkPos.y * ChunkConstants.SIZE_Y, - chunkPos.z * ChunkConstants.SIZE_Z) - .setSize(ChunkConstants.SIZE_X, ChunkConstants.SIZE_Y, ChunkConstants.SIZE_Z); + chunkPos.x() * Chunks.SIZE_X, + chunkPos.y() * Chunks.SIZE_Y, + chunkPos.z() * Chunks.SIZE_Z) + .setSize(Chunks.SIZE_X, Chunks.SIZE_Y, Chunks.SIZE_Z); ChunkMonitor.fireChunkCreated(this); } @Override - public Vector3i getPosition() { - return new Vector3i(chunkPos); + public Vector3ic getPosition() { + return chunkPos; } @Override @@ -140,17 +136,12 @@ public int getEstimatedMemoryConsumptionInBytes() { extraDataSize += extraDatum.getEstimatedMemoryConsumptionInBytes(); } return blockData.getEstimatedMemoryConsumptionInBytes() - + sunlightData.getEstimatedMemoryConsumptionInBytes() - + sunlightRegenData.getEstimatedMemoryConsumptionInBytes() - + lightData.getEstimatedMemoryConsumptionInBytes() - + extraDataSize; + + sunlightData.getEstimatedMemoryConsumptionInBytes() + + sunlightRegenData.getEstimatedMemoryConsumptionInBytes() + + lightData.getEstimatedMemoryConsumptionInBytes() + + extraDataSize; } - @Override - public final Block getBlock(BaseVector3i pos) { - short id = (short) blockData.get(pos.x(), pos.y(), pos.z()); - return blockManager.getBlock(id); - } @Override public Block getBlock(Vector3ic pos) { @@ -176,11 +167,6 @@ public Block setBlock(int x, int y, int z, Block block) { return blockManager.getBlock((short) oldValue); } - @Override - public Block setBlock(BaseVector3i pos, Block block) { - return setBlock(pos.x(), pos.y(), pos.z(), block); - } - @Override public Block setBlock(Vector3ic pos, Block block) { return setBlock(pos.x(), pos.y(), pos.z(), block); @@ -203,7 +189,7 @@ public boolean setSunlight(Vector3ic pos, byte amount) { @Override public boolean setSunlight(int x, int y, int z, byte amount) { - Preconditions.checkArgument(amount >= 0 && amount <= ChunkConstants.MAX_SUNLIGHT); + Preconditions.checkArgument(amount >= 0 && amount <= Chunks.MAX_SUNLIGHT); return sunlightData.set(x, y, z, amount) != amount; } @@ -224,7 +210,7 @@ public boolean setSunlightRegen(Vector3ic pos, byte amount) { @Override public boolean setSunlightRegen(int x, int y, int z, byte amount) { - Preconditions.checkArgument(amount >= 0 && amount <= ChunkConstants.MAX_SUNLIGHT_REGEN); + Preconditions.checkArgument(amount >= 0 && amount <= Chunks.MAX_SUNLIGHT_REGEN); return sunlightRegenData.set(x, y, z, amount) != amount; } @@ -245,7 +231,7 @@ public boolean setLight(Vector3ic pos, byte amount) { @Override public boolean setLight(int x, int y, int z, byte amount) { - Preconditions.checkArgument(amount >= 0 && amount <= ChunkConstants.MAX_LIGHT); + Preconditions.checkArgument(amount >= 0 && amount <= Chunks.MAX_LIGHT); return lightData.set(x, y, z, amount) != amount; } @@ -254,11 +240,6 @@ public int getExtraData(int index, int x, int y, int z) { return extraData[index].get(x, y, z); } - @Override - public int getExtraData(int index, BaseVector3i pos) { - return getExtraData(index, pos.x(), pos.y(), pos.z()); - } - @Override public int getExtraData(int index, Vector3ic pos) { return getExtraData(index, pos.x(), pos.y(), pos.z()); @@ -278,17 +259,7 @@ public void setExtraData(int index, Vector3ic pos, int value) { } @Override - public void setExtraData(int index, BaseVector3i pos, int value) { - setExtraData(index, pos.x(), pos.y(), pos.z(), value); - } - - @Override - public Vector3i getChunkWorldOffset() { - return new Vector3i(getChunkWorldOffsetX(), getChunkWorldOffsetY(), getChunkWorldOffsetZ()); - } - - @Override - public org.joml.Vector3i getChunkWorldOffset(org.joml.Vector3i dest) { + public Vector3i getChunkWorldOffset(Vector3i dest) { return dest.set(getChunkWorldOffsetX(), getChunkWorldOffsetY(), getChunkWorldOffsetZ()); } @@ -308,22 +279,12 @@ public int getChunkWorldOffsetZ() { } @Override - public Vector3i chunkToWorldPosition(BaseVector3i blockPos) { - return chunkToWorldPosition(blockPos.x(), blockPos.y(), blockPos.z()); - } - - @Override - public org.joml.Vector3i chunkToWorldPosition(Vector3ic blockPos, org.joml.Vector3i dest) { + public Vector3i chunkToWorldPosition(Vector3ic blockPos, Vector3i dest) { return chunkToWorldPosition(blockPos.x(), blockPos.y(), blockPos.z(), dest); } @Override - public Vector3i chunkToWorldPosition(int x, int y, int z) { - return new Vector3i(chunkToWorldPositionX(x), chunkToWorldPositionY(y), chunkToWorldPositionZ(z)); - } - - @Override - public org.joml.Vector3i chunkToWorldPosition(int x, int y, int z, org.joml.Vector3i dest) { + public Vector3i chunkToWorldPosition(int x, int y, int z, Vector3i dest) { return dest.set(chunkToWorldPositionX(x), chunkToWorldPositionY(y), chunkToWorldPositionZ(z)); } @@ -345,9 +306,7 @@ public int chunkToWorldPositionZ(int z) { @Override public AABBfc getAABB() { if (!aabb.isValid()) { - org.joml.Vector3f min = JomlUtil.from(getChunkWorldOffset().toVector3f()); - org.joml.Vector3f max = new org.joml.Vector3f(Chunks.CHUNK_SIZE).add(min); - aabb = new AABBf(min, max); + region.getBounds(aabb); } return aabb; } @@ -386,19 +345,19 @@ public void deflate() { double totalPercent = 100d - (100d / totalSize * totalReduced); logger.debug("chunk {}: " + - "size-before: {} " + - "bytes, size-after: {} " + - "bytes, total-deflated-by: {}%, " + - "blocks-deflated-by={}%, " + - "light-deflated-by={}%, " + - "extra-data-deflated-by={}%", - chunkPos, - SIZE_FORMAT.format(totalSize), - SIZE_FORMAT.format(totalReduced), - PERCENT_FORMAT.format(totalPercent), - PERCENT_FORMAT.format(blocksPercent), - PERCENT_FORMAT.format(lightPercent), - PERCENT_FORMAT.format(extraPercent)); + "size-before: {} " + + "bytes, size-after: {} " + + "bytes, total-deflated-by: {}%, " + + "blocks-deflated-by={}%, " + + "light-deflated-by={}%, " + + "extra-data-deflated-by={}%", + chunkPos, + SIZE_FORMAT.format(totalSize), + SIZE_FORMAT.format(totalReduced), + PERCENT_FORMAT.format(totalPercent), + PERCENT_FORMAT.format(blocksPercent), + PERCENT_FORMAT.format(lightPercent), + PERCENT_FORMAT.format(extraPercent)); ChunkMonitor.fireChunkDeflated(this, totalSize, totalReduced); } else { final int oldSize = getEstimatedMemoryConsumptionInBytes(); @@ -433,17 +392,17 @@ public void deflateSunlight() { double totalPercent = 100d - (100d / totalSize * totalReduced); logger.debug("chunk {}: " + - "size-before: {} " + - "bytes, size-after: {} " + - "bytes, total-deflated-by: {}%, " + - "sunlight-deflated-by={}%, " + - "sunlight-regen-deflated-by={}%", - chunkPos, - SIZE_FORMAT.format(totalSize), - SIZE_FORMAT.format(totalReduced), - PERCENT_FORMAT.format(totalPercent), - PERCENT_FORMAT.format(sunlightPercent), - PERCENT_FORMAT.format(sunlightRegenPercent)); + "size-before: {} " + + "bytes, size-after: {} " + + "bytes, total-deflated-by: {}%, " + + "sunlight-deflated-by={}%, " + + "sunlight-regen-deflated-by={}%", + chunkPos, + SIZE_FORMAT.format(totalSize), + SIZE_FORMAT.format(totalReduced), + PERCENT_FORMAT.format(totalPercent), + PERCENT_FORMAT.format(sunlightPercent), + PERCENT_FORMAT.format(sunlightRegenPercent)); ChunkMonitor.fireChunkDeflated(this, totalSize, totalReduced); } else { final int oldSize = getEstimatedMemoryConsumptionInBytes(); @@ -578,12 +537,12 @@ public int getChunkSizeZ() { @Override public ChunkBlockIterator getBlockIterator() { - return new ChunkBlockIteratorImpl(blockManager, getChunkWorldOffset(), blockData); + return new ChunkBlockIteratorImpl(blockManager, getChunkWorldOffset(new Vector3i()), blockData); } @Override public EntityData.ChunkStore.Builder encode() { - return ChunkSerializer.encode(JomlUtil.from(chunkPos), blockData, extraData); + return ChunkSerializer.encode(chunkPos, blockData, extraData); } /** @@ -604,10 +563,9 @@ public void createSnapshot() { * @return an encoded version of the snapshot taken with {@link #createSnapshot()}. */ public EntityData.ChunkStore.Builder encodeAndReleaseSnapshot() { - EntityData.ChunkStore.Builder result = ChunkSerializer.encode(JomlUtil.from(chunkPos), blockDataSnapshot, extraDataSnapshots); + EntityData.ChunkStore.Builder result = ChunkSerializer.encode(chunkPos, blockDataSnapshot, extraDataSnapshots); this.blockDataSnapshot = null; this.extraDataSnapshots = null; return result; } - } diff --git a/engine/src/main/java/org/terasology/world/chunks/internal/ChunkSerializer.java b/engine/src/main/java/org/terasology/world/chunks/internal/ChunkSerializer.java index db4ab87b9f1..9091ffe68ed 100644 --- a/engine/src/main/java/org/terasology/world/chunks/internal/ChunkSerializer.java +++ b/engine/src/main/java/org/terasology/world/chunks/internal/ChunkSerializer.java @@ -51,7 +51,7 @@ public static Chunk decode(EntityData.ChunkStore message, BlockManager blockMana for (int i = 0; i < extraData.length; i++) { runLengthDecode(message.getExtraData(i), extraData[i]); } - return new ChunkImpl(JomlUtil.from(pos), blockData, extraData, blockManager); + return new ChunkImpl(pos, blockData, extraData, blockManager); } private static EntityData.RunLengthEncoding16 runLengthEncode16(TeraArray array) { diff --git a/engine/src/main/java/org/terasology/world/chunks/internal/PreLodChunk.java b/engine/src/main/java/org/terasology/world/chunks/internal/PreLodChunk.java index 02df6b334a8..9e71b3505f1 100644 --- a/engine/src/main/java/org/terasology/world/chunks/internal/PreLodChunk.java +++ b/engine/src/main/java/org/terasology/world/chunks/internal/PreLodChunk.java @@ -4,7 +4,6 @@ package org.terasology.world.chunks.internal; import org.joml.Vector3i; -import org.terasology.math.JomlUtil; import org.terasology.world.block.BlockManager; import org.terasology.world.block.BlockRegion; import org.terasology.world.chunks.Chunks; @@ -16,7 +15,7 @@ */ public class PreLodChunk extends ChunkImpl { public PreLodChunk(Vector3i pos, BlockManager blockManager, ExtraBlockDataManager extraDataManager) { - super(JomlUtil.from(pos), blockManager, extraDataManager); + super(pos, blockManager, extraDataManager); Vector3i min = Chunks.CHUNK_SIZE.sub(2, 4, 2, new Vector3i()).mul(pos).sub(1, 2, 1); region = new BlockRegion(min, min.add(Chunks.CHUNK_SIZE, new Vector3i())); } diff --git a/engine/src/main/java/org/terasology/world/chunks/localChunkProvider/LocalChunkProvider.java b/engine/src/main/java/org/terasology/world/chunks/localChunkProvider/LocalChunkProvider.java index 0dda8e387aa..5fb405b4849 100644 --- a/engine/src/main/java/org/terasology/world/chunks/localChunkProvider/LocalChunkProvider.java +++ b/engine/src/main/java/org/terasology/world/chunks/localChunkProvider/LocalChunkProvider.java @@ -134,7 +134,7 @@ protected Future createOrLoadChunk(Vector3ic chunkPos) { Chunk chunk; EntityBufferImpl buffer = new EntityBufferImpl(); if (chunkStore == null) { - chunk = new ChunkImpl(JomlUtil.from(pos), blockManager, extraDataManager); + chunk = new ChunkImpl(pos, blockManager, extraDataManager); generator.createChunk(chunk, buffer); generateQueuedEntities.put(chunk.getPosition(new Vector3i()), buffer.getAll()); } else { @@ -344,9 +344,9 @@ private TShortObjectMap createBatchBlockEventMappings(Chunk chunk) { while (i.next()) { if (i.getBlock().isLifecycleEventsRequired()) { TIntList positionList = batchBlockMap.get(i.getBlock().getId()); - positionList.add(i.getBlockPos().x); - positionList.add(i.getBlockPos().y); - positionList.add(i.getBlockPos().z); + positionList.add(i.getBlockPos().x()); + positionList.add(i.getBlockPos().y()); + positionList.add(i.getBlockPos().z()); } } return batchBlockMap; diff --git a/engine/src/main/java/org/terasology/world/generation/WorldImpl.java b/engine/src/main/java/org/terasology/world/generation/WorldImpl.java index 7da5418ed97..4fa428c1495 100644 --- a/engine/src/main/java/org/terasology/world/generation/WorldImpl.java +++ b/engine/src/main/java/org/terasology/world/generation/WorldImpl.java @@ -52,7 +52,7 @@ public int getSeaLevel() { @Override public void rasterizeChunk(CoreChunk chunk, EntityBuffer buffer) { - Region chunkRegion = getWorldData(chunk.getRegion(), 1); + Region chunkRegion = getWorldData(new BlockRegion(chunk.getRegion()), 1); for (WorldRasterizer rasterizer : worldRasterizers) { rasterizer.generateChunk(chunk, chunkRegion); } @@ -63,7 +63,7 @@ public void rasterizeChunk(CoreChunk chunk, EntityBuffer buffer) { @Override public void rasterizeChunk(CoreChunk chunk, EntityBuffer buffer, float scale) { - Region chunkRegion = getWorldData(chunk.getRegion(), scale); + Region chunkRegion = getWorldData(new BlockRegion(chunk.getRegion()), scale); for (WorldRasterizer rasterizer : scalableWorldRasterizers) { ((ScalableWorldRasterizer) rasterizer).generateChunk(chunk, chunkRegion, scale); } diff --git a/engine/src/main/java/org/terasology/world/internal/AbstractWorldProviderDecorator.java b/engine/src/main/java/org/terasology/world/internal/AbstractWorldProviderDecorator.java index b9a0bf75cdc..faaae39bf4e 100644 --- a/engine/src/main/java/org/terasology/world/internal/AbstractWorldProviderDecorator.java +++ b/engine/src/main/java/org/terasology/world/internal/AbstractWorldProviderDecorator.java @@ -16,12 +16,11 @@ package org.terasology.world.internal; +import com.google.common.collect.ImmutableList; import org.joml.Vector3ic; import org.terasology.entitySystem.entity.EntityRef; -import org.terasology.math.geom.Vector3i; import org.terasology.world.WorldChangeListener; import org.terasology.world.block.Block; -import org.terasology.world.block.BlockRegion; import org.terasology.world.block.BlockRegionc; import org.terasology.world.time.WorldTime; @@ -144,7 +143,7 @@ public WorldTime getTime() { } @Override - public Collection getRelevantRegions() { + public Collection getRelevantRegions() { return base.getRelevantRegions(); } diff --git a/engine/src/main/java/org/terasology/world/internal/WorldProviderCore.java b/engine/src/main/java/org/terasology/world/internal/WorldProviderCore.java index 0ba6624f636..26bd4903b1f 100644 --- a/engine/src/main/java/org/terasology/world/internal/WorldProviderCore.java +++ b/engine/src/main/java/org/terasology/world/internal/WorldProviderCore.java @@ -15,6 +15,7 @@ */ package org.terasology.world.internal; +import com.google.common.collect.ImmutableList; import com.google.common.collect.Maps; import org.joml.Vector3ic; import org.terasology.entitySystem.entity.EntityRef; @@ -22,7 +23,6 @@ import org.terasology.math.geom.Vector3i; import org.terasology.world.WorldChangeListener; import org.terasology.world.block.Block; -import org.terasology.world.block.BlockRegion; import org.terasology.world.block.BlockRegionc; import org.terasology.world.time.WorldTime; @@ -197,6 +197,6 @@ default int setExtraData(int index, Vector3i pos, int value) { /** * @return an unmodifiable view on the generated relevant regions */ - Collection getRelevantRegions(); + Collection getRelevantRegions(); } diff --git a/engine/src/main/java/org/terasology/world/internal/WorldProviderCoreImpl.java b/engine/src/main/java/org/terasology/world/internal/WorldProviderCoreImpl.java index b1d49477ea5..745345ea389 100644 --- a/engine/src/main/java/org/terasology/world/internal/WorldProviderCoreImpl.java +++ b/engine/src/main/java/org/terasology/world/internal/WorldProviderCoreImpl.java @@ -6,6 +6,7 @@ import com.google.common.base.Function; import com.google.common.base.Predicate; import com.google.common.collect.FluentIterable; +import com.google.common.collect.ImmutableList; import com.google.common.collect.Lists; import com.google.common.collect.Maps; import org.joml.Vector3i; @@ -355,12 +356,10 @@ public WorldTime getTime() { } @Override - public Collection getRelevantRegions() { + public Collection getRelevantRegions() { Collection chunks = chunkProvider.getAllChunks(); - Function mapping = CoreChunk::getRegion; - Predicate isReady = ManagedChunk::isReady; - return FluentIterable.from(chunks).filter(isReady).transform(mapping).toList(); + return FluentIterable.from(chunks).filter(isReady).transform(CoreChunk::getRegion).toList(); } } diff --git a/engine/src/main/java/org/terasology/world/internal/WorldProviderWrapper.java b/engine/src/main/java/org/terasology/world/internal/WorldProviderWrapper.java index f0c50b1a9c4..6dca67543d7 100644 --- a/engine/src/main/java/org/terasology/world/internal/WorldProviderWrapper.java +++ b/engine/src/main/java/org/terasology/world/internal/WorldProviderWrapper.java @@ -16,6 +16,7 @@ package org.terasology.world.internal; +import com.google.common.collect.ImmutableList; import org.joml.RoundingMode; import org.joml.Vector3fc; import org.joml.Vector3i; @@ -23,7 +24,7 @@ import org.terasology.world.WorldChangeListener; import org.terasology.world.WorldProvider; import org.terasology.world.block.Block; -import org.terasology.world.block.BlockRegion; +import org.terasology.world.block.BlockRegionc; import org.terasology.world.chunks.blockdata.ExtraBlockDataManager; import java.util.Collection; @@ -122,7 +123,7 @@ public void unregisterListener(WorldChangeListener listener) { } @Override - public Collection getRelevantRegions() { + public Collection getRelevantRegions() { return core.getRelevantRegions(); } }