Search in sources :

Example 16 with Cube

use of com.builtbroken.mc.lib.transform.region.Cube in project Engine by VoltzEngine-Project.

the class RadioMap method update.

/**
 * Called to update data about the receiver. Used
 * when the receiver's range changes.
 *
 * @param receiver
 */
public void update(IRadioWaveReceiver receiver) {
    if (!receive_to_range.containsKey(receiver) || receive_to_range.get(receiver) == null || receive_to_range.get(receiver).equals(receiver.getRadioReceiverRange())) {
        Cube range = receiver.getRadioReceiverRange();
        if (range != null) {
            updateChunkCache(receiver, range);
            updateSenderCache(receiver, range);
        }
    }
}
Also used : Cube(com.builtbroken.mc.lib.transform.region.Cube)

Example 17 with Cube

use of com.builtbroken.mc.lib.transform.region.Cube in project Engine by VoltzEngine-Project.

the class AbstractTileTest method testGetSelectBounds.

@Test
public void testGetSelectBounds() {
    FakeWorld world = FakeWorld.newWorld("TestGetSelectBounds");
    world.setBlock(0, 0, 0, block);
    Tile tile = ((Tile) world.getTileEntity(0, 0, 0));
    Cube cube = tile.getSelectBounds();
    assertTrue(cube != null);
// TODO add check to ensure cube size and values are good
}
Also used : Cube(com.builtbroken.mc.lib.transform.region.Cube) FakeWorld(com.builtbroken.mc.testing.junit.world.FakeWorld) 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 18 with Cube

use of com.builtbroken.mc.lib.transform.region.Cube in project Engine by VoltzEngine-Project.

the class AbstractTileTest method testGetCollisionBoxes.

@Test
public void testGetCollisionBoxes() {
    FakeWorld world = FakeWorld.newWorld("TestGetCollisionBoxes");
    world.setBlock(0, 0, 0, block);
    Tile tile = ((Tile) world.getTileEntity(0, 0, 0));
    Iterable<Cube> cubes = tile.getCollisionBoxes(new Cube(-2, -2, -2, 2, 2, 2), player);
    assertTrue(cubes != null);
    for (Cube cube : cubes) {
        assertTrue(cube != null);
    // TODO check if the cube is valid
    }
}
Also used : Cube(com.builtbroken.mc.lib.transform.region.Cube) FakeWorld(com.builtbroken.mc.testing.junit.world.FakeWorld) 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 19 with Cube

use of com.builtbroken.mc.lib.transform.region.Cube in project Engine by VoltzEngine-Project.

the class CuboidTest method testCollisionOverlap.

public void testCollisionOverlap() {
    for (ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) {
        Pos vec = new Pos(dir).multiply(0.3);
        Cube c = cube.add(vec);
        if (!cube.doesOverlap(c)) {
            System.out.println("Cube:  " + cube);
            System.out.println("Above: " + c.toString());
            assertEquals("x check failed", cube.isOutSideX(c.min().x(), c.max().x()), dir == ForgeDirection.EAST || dir == ForgeDirection.WEST);
            assertEquals("y check failed", cube.isOutSideY(c.min().y(), c.max().y()), dir == ForgeDirection.DOWN || dir == ForgeDirection.UP);
            assertEquals("z check failed", cube.isOutSideZ(c.min().z(), c.max().z()), dir == ForgeDirection.NORTH || dir == ForgeDirection.SOUTH);
            fail("Didn't collide for side " + dir);
        }
    }
}
Also used : Pos(com.builtbroken.mc.lib.transform.vector.Pos) Cube(com.builtbroken.mc.lib.transform.region.Cube) ForgeDirection(net.minecraftforge.common.util.ForgeDirection)

Example 20 with Cube

use of com.builtbroken.mc.lib.transform.region.Cube in project Engine by VoltzEngine-Project.

the class CuboidTest method testInsideBounds.

public void testInsideBounds() {
    for (ForgeDirection dir : ForgeDirection.VALID_DIRECTIONS) {
        Cube above = cube.clone();
        assertEquals("Failed center collision check for side " + dir, true, cube.isInsideBounds(above));
        above = above.add(new Pos(dir));
        assertEquals("Failed collision check one for side " + dir, false, cube.isInsideBounds(above));
        above = above.add(new Pos(dir));
        assertEquals("Failed collision check two for side " + dir, false, cube.isInsideBounds(above));
    }
}
Also used : Cube(com.builtbroken.mc.lib.transform.region.Cube) Pos(com.builtbroken.mc.lib.transform.vector.Pos) ForgeDirection(net.minecraftforge.common.util.ForgeDirection)

Aggregations

Cube (com.builtbroken.mc.lib.transform.region.Cube)21 Pos (com.builtbroken.mc.lib.transform.vector.Pos)6 IRadioWaveReceiver (com.builtbroken.mc.api.map.radio.IRadioWaveReceiver)4 PacketTile (com.builtbroken.mc.core.network.packet.PacketTile)3 BlockTile (com.builtbroken.mc.prefab.tile.BlockTile)3 Tile (com.builtbroken.mc.prefab.tile.Tile)3 FakeWorld (com.builtbroken.mc.testing.junit.world.FakeWorld)3 ArrayList (java.util.ArrayList)3 ForgeDirection (net.minecraftforge.common.util.ForgeDirection)3 Test (org.junit.Test)3 Region (com.builtbroken.mc.lib.modflags.Region)2 TileEntity (net.minecraft.tileentity.TileEntity)2 IRadioWaveSender (com.builtbroken.mc.api.map.radio.IRadioWaveSender)1 IMultiTileHost (com.builtbroken.mc.api.tile.multiblock.IMultiTileHost)1 PacketSelectionData (com.builtbroken.mc.core.network.packet.PacketSelectionData)1 RadioMap (com.builtbroken.mc.lib.world.radio.RadioMap)1 Entity (net.minecraft.entity.Entity)1 NBTTagCompound (net.minecraft.nbt.NBTTagCompound)1 NBTTagList (net.minecraft.nbt.NBTTagList)1 AxisAlignedBB (net.minecraft.util.AxisAlignedBB)1