use of org.joml.Vector3i in project Terasology by MovingBlocks.
the class BulkLightPropagationTest method testRemoveSolidAllowsLight.
@Test
public void testRemoveSolidAllowsLight() {
StubPropagatorWorldView worldView = new StubPropagatorWorldView(testingRegion, air);
for (Vector3ic pos : new BlockRegion(1, 0, 0).expand(0, 30, 30)) {
worldView.setBlockAt(new Vector3i(pos), solid);
}
worldView.setBlockAt(new Vector3i(0, 0, 0), fullLight);
BatchPropagator propagator = new StandardBatchPropagator(lightRules, worldView);
propagator.process(new BlockChange(ZERO_VECTOR, air, fullLight));
assertEquals(0, worldView.getValueAt(new Vector3i(1, 0, 0)));
worldView.setBlockAt(new Vector3i(1, 0, 0), air);
propagator.process(new BlockChange(new Vector3i(1, 0, 0), solid, air));
assertEquals(14, worldView.getValueAt(new Vector3i(1, 0, 0)));
assertEquals(13, worldView.getValueAt(new Vector3i(2, 0, 0)));
}
use of org.joml.Vector3i in project Terasology by MovingBlocks.
the class BulkLightPropagationTest method testAddSolidBlocksLight.
@Test
public void testAddSolidBlocksLight() {
StubPropagatorWorldView worldView = new StubPropagatorWorldView(Chunks.CHUNK_REGION, air);
worldView.setBlockAt(new Vector3i(0, 0, 0), mediumLight);
BatchPropagator propagator = new StandardBatchPropagator(lightRules, worldView);
propagator.process(new BlockChange(ZERO_VECTOR, air, mediumLight));
worldView.setBlockAt(new Vector3i(1, 0, 0), solid);
propagator.process(new BlockChange(new Vector3i(1, 0, 0), air, solid));
assertEquals(0, worldView.getValueAt(new Vector3i(1, 0, 0)));
assertEquals(1, worldView.getValueAt(new Vector3i(2, 0, 0)));
}
use of org.joml.Vector3i in project Terasology by MovingBlocks.
the class EntityAwareWorldProviderTest method testComponentUntouchedIfRetainRequested.
@Test
public void testComponentUntouchedIfRetainRequested() {
worldProvider.setBlock(new Vector3i(), blockInFamilyOne);
EntityRef entity = worldProvider.getBlockEntityAt(new Vector3i());
entity.addComponent(new IntegerComponent());
worldProvider.setBlockRetainComponent(new Vector3i(), blockWithString, IntegerComponent.class);
assertNotNull(entity.getComponent(IntegerComponent.class));
}
use of org.joml.Vector3i in project Terasology by MovingBlocks.
the class BlockRegionTest method setMinMaxInvalid.
@Test
void setMinMaxInvalid() {
BlockRegion region = new BlockRegion(new Vector3i());
assertThrows(IllegalArgumentException.class, () -> region.minX(2));
assertThrows(IllegalArgumentException.class, () -> region.minY(2));
assertThrows(IllegalArgumentException.class, () -> region.minZ(2));
assertThrows(IllegalArgumentException.class, () -> region.maxX(-1));
assertThrows(IllegalArgumentException.class, () -> region.maxY(-1));
assertThrows(IllegalArgumentException.class, () -> region.maxZ(-1));
}
use of org.joml.Vector3i in project Terasology by MovingBlocks.
the class BlockRegionTest method getMinMax.
@Test
void getMinMax() {
final Vector3i min = new Vector3i(1, 2, 3);
final Vector3i max = new Vector3i(7, 8, 9);
final BlockRegion region = new BlockRegion(min, max);
assertEquals(min, region.getMin(new Vector3i()));
assertEquals(max, region.getMax(new Vector3i()));
assertEquals(min.x, region.minX());
assertEquals(region.minX(), region.minX());
assertEquals(min.y, region.minY());
assertEquals(region.minY(), region.minY());
assertEquals(min.z, region.minZ());
assertEquals(region.minZ(), region.minZ());
assertEquals(max.x, region.maxX());
assertEquals(region.maxX(), region.maxX());
assertEquals(max.y, region.maxY());
assertEquals(region.maxY(), region.maxY());
assertEquals(max.z, region.maxZ());
assertEquals(region.maxZ(), region.maxZ());
}
Aggregations