use of com.builtbroken.mc.imp.transform.vector.Pos in project Engine by VoltzEngine-Project.
the class AbstractTileTest method testDistance.
@Test
public void testDistance() {
FakeWorld world = FakeWorld.newWorld("TestDistance");
world.setBlock(0, 0, 0, block);
Tile tile = ((Tile) world.getTileEntity(0, 0, 0));
for (ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) {
Pos pos = new Pos(0.5).add(dir);
Pos center = tile.toPos();
double distance = tile.distance(pos.x(), pos.y(), pos.z());
assertTrue("Distance = " + distance + " Pos = " + pos + " Center = " + center, Math.abs(distance - 1) <= 0.01);
player.setLocationAndAngles(pos.x(), pos.y(), pos.z(), 0, 0);
distance = tile.distance(player);
assertTrue("Distance = " + distance + " Pos = " + pos + " Center = " + center, Math.abs(distance - 1) <= 0.01);
distance = tile.distance(pos);
assertTrue("Distance = " + distance + " Pos = " + pos + " Center = " + center, Math.abs(distance - 1) <= 0.01);
}
}
use of com.builtbroken.mc.imp.transform.vector.Pos in project Engine by VoltzEngine-Project.
the class TestAbstractLocation method testToVector3.
/** Tests {@link AbstractLocation#toVector3() */
public void testToVector3() {
TLocation location = new TLocation(world, 20, 10, 10);
Pos pos = location.toVector3();
assertTrue(pos.equals(new Pos(20, 10, 10)));
}
use of com.builtbroken.mc.imp.transform.vector.Pos in project Engine by VoltzEngine-Project.
the class Vector3Sorter method testClosestSorter.
public void testClosestSorter() {
List<Pos> list = new ArrayList();
Pos vec_1 = newVector(list, 1, 0, 1);
Pos vec_2 = newVector(list, 2, 0, 2);
Pos vec_3 = newVector(list, 3, 0, 3);
Pos vec_4 = newVector(list, -1, 0, -2);
Pos vec_5 = newVector(list, -4, 0, -4);
Collections.sort(list, new Vector3DistanceComparator(new Pos(0, 0, 0)));
assertEquals(list.get(0), vec_1);
assertEquals(list.get(1), vec_4);
assertEquals(list.get(2), vec_2);
assertEquals(list.get(3), vec_3);
assertEquals(list.get(4), vec_5);
}
use of com.builtbroken.mc.imp.transform.vector.Pos in project Engine by VoltzEngine-Project.
the class Vector3Sorter method newVector.
private Pos newVector(List<Pos> list, int x, int y, int z) {
Pos vec = new Pos(x, y, z);
list.add(vec);
return vec;
}
use of com.builtbroken.mc.imp.transform.vector.Pos in project Engine by VoltzEngine-Project.
the class CuboidTest method testCollisionCorners.
public void testCollisionCorners() {
for (ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) {
for (int side = 0; side < 4; side++) {
Pos vec = new Pos(dir).multiply(0.3);
switch(dir) {
case DOWN:
case UP:
switch(side) {
case 0:
vec.add(0.3, 0, 0.3);
break;
case 1:
vec.add(-0.3, 0, 0.3);
break;
case 2:
vec.add(0.3, 0, -0.3);
break;
case 3:
vec.add(-0.3, 0, -0.3);
break;
}
case NORTH:
case SOUTH:
switch(side) {
case 0:
vec.add(0.3, 0.3, 0);
break;
case 1:
vec.add(-0.3, 0.3, 0);
break;
case 2:
vec.add(0.3, -0.3, 0);
break;
case 3:
vec.add(-0.3, -0.3, 0);
break;
}
break;
case WEST:
case EAST:
switch(side) {
case 0:
vec.add(0, 0.3, 0.3);
break;
case 1:
vec.add(0, -0.3, 0.3);
break;
case 2:
vec.add(0, 0.3, -0.3);
break;
case 3:
vec.add(0, -0.3, -0.3);
break;
}
break;
}
Cube c = cube.clone().add(vec);
if (!cube.doesOverlap(c)) {
System.out.println("Cube: " + cube);
System.out.println("Above: " + c.toString());
System.out.println("Is outside X limits -> " + cube.isOutSideX(c.min().x(), c.max().x()));
System.out.println("Is outside Y limits -> " + cube.isOutSideY(c.min().y(), c.max().y()));
System.out.println("Is outside Z limits -> " + cube.isOutSideZ(c.min().z(), c.max().z()));
fail("Didn't collide for side " + dir + " and corner " + side);
}
}
}
}
Aggregations