use of org.terasology.engine.world.internal.ChunkViewCoreImpl in project Terasology by MovingBlocks.
the class ChunkViewTest method testOffsetWorldViewAfterMainChunk.
@Test
public void testOffsetWorldViewAfterMainChunk() {
Chunk chunk = createChunk(0, 0, 0);
chunk.setBlock(new Vector3i(0, 0, 0), solidBlock);
Chunk[] chunks = new Chunk[] { createChunk(-1, 0, -1), createChunk(0, 0, -1), createChunk(1, 0, -1), createChunk(-1, 0, 0), createChunk(0, 0, 0), createChunk(1, 0, 0), createChunk(-1, 0, 1), createChunk(0, 0, 1), chunk };
ChunkViewCore chunkView = new ChunkViewCoreImpl(chunks, new BlockRegion(0, 0, 0).expand(1, 0, 1), new Vector3i(1, 0, 1), airBlock);
assertEquals(solidBlock, chunkView.getBlock(Chunks.SIZE_X, 0, Chunks.SIZE_Z));
}
use of org.terasology.engine.world.internal.ChunkViewCoreImpl in project Terasology by MovingBlocks.
the class ChunkViewTest method testOffsetWorldViewBeforeMainChunk.
@Test
public void testOffsetWorldViewBeforeMainChunk() {
Chunk chunk = createChunk(0, 0, 0);
chunk.setBlock(new Vector3i(Chunks.SIZE_X - 1, 0, Chunks.SIZE_Z - 1), solidBlock);
Chunk[] chunks = new Chunk[] { chunk, createChunk(0, 0, -1), createChunk(1, 0, -1), createChunk(-1, 0, 0), createChunk(0, 0, 0), createChunk(1, 0, 0), createChunk(-1, 0, 1), createChunk(0, 0, 1), createChunk(1, 0, 1) };
ChunkViewCore chunkView = new ChunkViewCoreImpl(chunks, new BlockRegion(0, 0, 0).expand(1, 0, 1), new Vector3i(1, 0, 1), airBlock);
assertEquals(solidBlock, chunkView.getBlock(-1, 0, -1));
}
use of org.terasology.engine.world.internal.ChunkViewCoreImpl in project Terasology by MovingBlocks.
the class ChunkViewTest method testOffsetWorldView.
@Test
public void testOffsetWorldView() {
Chunk chunk = createChunk(0, 0, 0);
chunk.setBlock(new Vector3i(0, 0, 0), solidBlock);
Chunk[] chunks = new Chunk[] { createChunk(-1, 0, -1), createChunk(0, 0, -1), createChunk(1, 0, -1), createChunk(-1, 0, 0), chunk, createChunk(1, 0, 0), createChunk(-1, 0, 1), createChunk(0, 0, 1), createChunk(1, 0, 1) };
ChunkViewCore chunkView = new ChunkViewCoreImpl(chunks, new BlockRegion(0, 0, 0).expand(1, 0, 1), new Vector3i(1, 0, 1), airBlock);
assertEquals(solidBlock, chunkView.getBlock(0, 0, 0));
}
use of org.terasology.engine.world.internal.ChunkViewCoreImpl in project Terasology by MovingBlocks.
the class RemoteChunkProvider method getSubview.
@Override
public ChunkViewCore getSubview(BlockRegionc region, Vector3ic offset) {
Chunk[] chunks = new Chunk[region.getSizeX() * region.getSizeY() * region.getSizeZ()];
for (Vector3ic chunkPos : region) {
Chunk chunk = chunkCache.get(chunkPos);
int index = (chunkPos.x() - region.minX()) + region.getSizeX() * ((chunkPos.z() - region.minZ()) + region.getSizeZ() * (chunkPos.y() - region.minY()));
chunks[index] = chunk;
}
return new ChunkViewCoreImpl(chunks, region, offset, blockManager.getBlock(BlockManager.AIR_ID));
}
Aggregations