use of org.terasology.engine.world.block.BlockRegion 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.block.BlockRegion 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.block.BlockRegion in project Terasology by MovingBlocks.
the class RenderableWorldImpl method calculateRenderableRegion.
private BlockRegion calculateRenderableRegion(ViewDistance newViewDistance) {
Vector3i cameraCoordinates = calcCameraCoordinatesInChunkUnits();
Vector3ic renderableRegionSize = newViewDistance.getChunkDistance();
Vector3i renderableRegionExtents = new Vector3i(renderableRegionSize.x() / 2, renderableRegionSize.y() / 2, renderableRegionSize.z() / 2);
return new BlockRegion(cameraCoordinates).expand(renderableRegionExtents);
}
use of org.terasology.engine.world.block.BlockRegion in project Terasology by MovingBlocks.
the class SubSampledNoise method noise.
public float[] noise(BlockRegion region, float scale) {
BlockRegion fullRegion = determineRequiredRegion(region);
float[] keyData = getKeyValues(fullRegion, scale);
float[] fullData = mapExpand(keyData, fullRegion);
return getSubset(fullData, fullRegion, region);
}
use of org.terasology.engine.world.block.BlockRegion in project Terasology by MovingBlocks.
the class ChunkRelevanceRegion method reviewRelevantChunks.
private void reviewRelevantChunks(Vector3ic distance) {
Vector3i extents = new Vector3i(distance.x() / 2, distance.y() / 2, distance.z() / 2);
BlockRegion retainRegion = new BlockRegion(center).expand(extents);
Iterator<Vector3ic> iter = relevantChunks.iterator();
while (iter.hasNext()) {
Vector3ic pos = iter.next();
if (!retainRegion.contains(pos)) {
sendChunkIrrelevant(pos);
iter.remove();
}
}
}
Aggregations