Search in sources :

Example 11 with Pos

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);
    }
}
Also used : Pos(com.builtbroken.mc.imp.transform.vector.Pos) FakeWorld(com.builtbroken.mc.testing.junit.world.FakeWorld) ForgeDirection(net.minecraftforge.common.util.ForgeDirection) PacketTile(com.builtbroken.mc.core.network.packet.PacketTile) BlockTile(com.builtbroken.mc.prefab.tile.BlockTile) Tile(com.builtbroken.mc.prefab.tile.Tile) Test(org.junit.Test)

Example 12 with Pos

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)));
}
Also used : Pos(com.builtbroken.mc.imp.transform.vector.Pos)

Example 13 with Pos

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);
}
Also used : Vector3DistanceComparator(com.builtbroken.mc.imp.transform.sorting.Vector3DistanceComparator) Pos(com.builtbroken.mc.imp.transform.vector.Pos) ArrayList(java.util.ArrayList)

Example 14 with Pos

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;
}
Also used : Pos(com.builtbroken.mc.imp.transform.vector.Pos)

Example 15 with Pos

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);
            }
        }
    }
}
Also used : Pos(com.builtbroken.mc.imp.transform.vector.Pos) Cube(com.builtbroken.mc.imp.transform.region.Cube) ForgeDirection(net.minecraftforge.common.util.ForgeDirection)

Aggregations

Pos (com.builtbroken.mc.imp.transform.vector.Pos)105 Block (net.minecraft.block.Block)25 TileEntity (net.minecraft.tileentity.TileEntity)13 Location (com.builtbroken.mc.imp.transform.vector.Location)11 Entity (net.minecraft.entity.Entity)11 Cube (com.builtbroken.mc.imp.transform.region.Cube)8 EntityPlayer (net.minecraft.entity.player.EntityPlayer)7 Test (org.junit.Test)7 FakeWorld (com.builtbroken.mc.testing.junit.world.FakeWorld)6 EntityMissile (icbm.classic.content.entity.EntityMissile)6 AxisAlignedBB (net.minecraft.util.AxisAlignedBB)6 ForgeDirection (net.minecraftforge.common.util.ForgeDirection)6 IPos3D (com.builtbroken.jlib.data.vector.IPos3D)5 PacketTile (com.builtbroken.mc.core.network.packet.PacketTile)5 EntityFlyingBlock (icbm.classic.content.entity.EntityFlyingBlock)5 ItemStack (net.minecraft.item.ItemStack)5 EulerAngle (com.builtbroken.mc.imp.transform.rotation.EulerAngle)4 BlockTile (com.builtbroken.mc.prefab.tile.BlockTile)4 Tile (com.builtbroken.mc.prefab.tile.Tile)4 NBTTagCompound (net.minecraft.nbt.NBTTagCompound)4