Search in sources :

Example 6 with UnsafeList

use of org.bukkit.craftbukkit.v1_17_R1.util.UnsafeList in project MyPet by xXKeyleXx.

the class PlatformHelper method getBlockBBsInBB.

public List getBlockBBsInBB(net.minecraft.world.level.Level world, AABB axisalignedbb) {
    UnsafeList unsafeList = new UnsafeList();
    int minX = Mth.floor(axisalignedbb.minX);
    int maxX = (int) Math.ceil(axisalignedbb.maxX);
    int minY = Mth.floor(axisalignedbb.minY);
    int maxY = (int) Math.ceil(axisalignedbb.maxY);
    int minZ = Mth.floor(axisalignedbb.minZ);
    int maxZ = (int) Math.ceil(axisalignedbb.maxZ);
    VoxelShape vec3d;
    boolean isEmpty;
    for (int x = minX; x <= maxX; x++) {
        for (int z = minZ; z <= maxZ; z++) {
            if (((ServerChunkCache) world.getChunkSource()).hasChunk(x >> 4, z >> 4)) {
                for (int y = minY - 1; y <= maxY; y++) {
                    BlockPos bp = new BlockPos(x, y, z);
                    BlockState blockData = world.getBlockState(bp);
                    if (blockData != null && blockData.getMaterial().isSolid()) {
                        vec3d = blockData.getCollisionShape(world, bp);
                        isEmpty = vec3d.isEmpty();
                        if (!isEmpty) {
                            for (AABB bb : vec3d.toAabbs()) {
                                if (bb.move(bp).intersects(axisalignedbb)) {
                                    unsafeList.add(bb);
                                }
                            }
                        }
                    }
                }
            }
        }
    }
    return unsafeList;
}
Also used : VoxelShape(net.minecraft.world.phys.shapes.VoxelShape) BlockState(net.minecraft.world.level.block.state.BlockState) BlockPos(net.minecraft.core.BlockPos) UnsafeList(org.bukkit.craftbukkit.v1_18_R1.util.UnsafeList) ServerChunkCache(net.minecraft.server.level.ServerChunkCache) AABB(net.minecraft.world.phys.AABB)

Example 7 with UnsafeList

use of org.bukkit.craftbukkit.v1_17_R1.util.UnsafeList in project MyPet by xXKeyleXx.

the class PlatformHelper method getBlockBBsInBB.

@SuppressWarnings("unchecked")
public List getBlockBBsInBB(World world, AxisAlignedBB axisalignedbb) {
    UnsafeList unsafeList = new UnsafeList();
    int minX = MathHelper.floor(axisalignedbb.a);
    int maxX = MathHelper.floor(axisalignedbb.d + 1.0D);
    int minY = MathHelper.floor(axisalignedbb.b);
    int maxY = MathHelper.floor(axisalignedbb.e + 1.0D);
    int minZ = MathHelper.floor(axisalignedbb.c);
    int maxZ = MathHelper.floor(axisalignedbb.f + 1.0D);
    for (int x = minX; x <= maxX; x++) {
        for (int z = minZ; z <= maxZ; z++) {
            if (world.isChunkLoaded(x >> 4, z >> 4)) {
                for (int y = minY - 1; y <= maxY; y++) {
                    Block block = CraftMagicNumbers.getBlock(world.getBlockAt(x, y, z));
                    if (block != null && block.getMaterial().isSolid()) {
                        block.a(((CraftWorld) world).getHandle(), new BlockPosition(x, y, z), block.getBlockData(), axisalignedbb, unsafeList, null);
                    }
                }
            }
        }
    }
    return unsafeList;
}
Also used : UnsafeList(org.bukkit.craftbukkit.v1_8_R3.util.UnsafeList)

Example 8 with UnsafeList

use of org.bukkit.craftbukkit.v1_17_R1.util.UnsafeList in project MyPet by xXKeyleXx.

the class PlatformHelper method getBlockBBsInBB.

@SuppressWarnings("unchecked")
public List getBlockBBsInBB(World world, AxisAlignedBB axisalignedbb) {
    UnsafeList unsafeList = new UnsafeList();
    int minX = MathHelper.floor(axisalignedbb.a);
    int maxX = MathHelper.floor(axisalignedbb.d + 1.0D);
    int minY = MathHelper.floor(axisalignedbb.b);
    int maxY = MathHelper.floor(axisalignedbb.e + 1.0D);
    int minZ = MathHelper.floor(axisalignedbb.c);
    int maxZ = MathHelper.floor(axisalignedbb.f + 1.0D);
    for (int x = minX; x <= maxX; x++) {
        for (int z = minZ; z <= maxZ; z++) {
            if (world.isChunkLoaded(x >> 4, z >> 4)) {
                for (int y = minY - 1; y <= maxY; y++) {
                    Block block = CraftMagicNumbers.getBlock(world.getBlockAt(x, y, z));
                    if (block != null && block.getMaterial().isSolid()) {
                        block.a(((CraftWorld) world).getHandle(), new BlockPosition(x, y, z), block.getBlockData(), axisalignedbb, unsafeList, null);
                    }
                }
            }
        }
    }
    return unsafeList;
}
Also used : UnsafeList(org.bukkit.craftbukkit.v1_8_R2.util.UnsafeList)

Example 9 with UnsafeList

use of org.bukkit.craftbukkit.v1_17_R1.util.UnsafeList in project MyPet by xXKeyleXx.

the class PlatformHelper method getBlockBBsInBB.

@SuppressWarnings("unchecked")
public List getBlockBBsInBB(World world, AxisAlignedBB axisalignedbb) {
    UnsafeList unsafeList = new UnsafeList();
    int minX = MathHelper.floor(axisalignedbb.a);
    int maxX = (int) Math.ceil(axisalignedbb.d);
    int minY = MathHelper.floor(axisalignedbb.b);
    int maxY = (int) Math.ceil(axisalignedbb.e);
    int minZ = MathHelper.floor(axisalignedbb.c);
    int maxZ = (int) Math.ceil(axisalignedbb.f);
    for (int x = minX; x <= maxX; x++) {
        for (int z = minZ; z <= maxZ; z++) {
            if (world.isChunkLoaded(x >> 4, z >> 4)) {
                for (int y = minY - 1; y <= maxY; y++) {
                    Block block = CraftMagicNumbers.getBlock(world.getBlockAt(x, y, z));
                    if (block != null && block.getBlockData().getMaterial().isSolid()) {
                        block.a(block.getBlockData(), ((CraftWorld) world).getHandle(), new BlockPosition(x, y, z), axisalignedbb, unsafeList, null);
                    }
                }
            }
        }
    }
    return unsafeList;
}
Also used : UnsafeList(org.bukkit.craftbukkit.v1_9_R1.util.UnsafeList)

Example 10 with UnsafeList

use of org.bukkit.craftbukkit.v1_17_R1.util.UnsafeList in project MyPet by xXKeyleXx.

the class PlatformHelper method getBlockBBsInBB.

@SuppressWarnings("unchecked")
public List getBlockBBsInBB(World world, AxisAlignedBB axisalignedbb) {
    UnsafeList unsafeList = new UnsafeList();
    int minX = MathHelper.floor(axisalignedbb.a);
    int maxX = (int) Math.ceil(axisalignedbb.d);
    int minY = MathHelper.floor(axisalignedbb.b);
    int maxY = (int) Math.ceil(axisalignedbb.e);
    int minZ = MathHelper.floor(axisalignedbb.c);
    int maxZ = (int) Math.ceil(axisalignedbb.f);
    for (int x = minX; x <= maxX; x++) {
        for (int z = minZ; z <= maxZ; z++) {
            if (world.isChunkLoaded(x >> 4, z >> 4)) {
                for (int y = minY - 1; y <= maxY; y++) {
                    Block block = CraftMagicNumbers.getBlock(world.getBlockAt(x, y, z));
                    if (block != null && block.getBlockData().getMaterial().isSolid()) {
                        BlockPosition bp = new BlockPosition(x, y, z);
                        AxisAlignedBB res = block.getBlockData().d(((CraftWorld) world).getHandle(), bp);
                        if (res != null && res != Block.k) {
                            AxisAlignedBB axisalignedbb2 = res.a(bp);
                            if (axisalignedbb.c(axisalignedbb2)) {
                                unsafeList.add(axisalignedbb2);
                            }
                        }
                    }
                }
            }
        }
    }
    return unsafeList;
}
Also used : UnsafeList(org.bukkit.craftbukkit.v1_12_R1.util.UnsafeList)

Aggregations

BlockPos (net.minecraft.core.BlockPos)2 ServerChunkCache (net.minecraft.server.level.ServerChunkCache)2 BlockState (net.minecraft.world.level.block.state.BlockState)2 AABB (net.minecraft.world.phys.AABB)2 VoxelShape (net.minecraft.world.phys.shapes.VoxelShape)2 UnsafeList (org.bukkit.craftbukkit.v1_10_R1.util.UnsafeList)1 UnsafeList (org.bukkit.craftbukkit.v1_11_R1.util.UnsafeList)1 UnsafeList (org.bukkit.craftbukkit.v1_12_R1.util.UnsafeList)1 UnsafeList (org.bukkit.craftbukkit.v1_16_R1.util.UnsafeList)1 UnsafeList (org.bukkit.craftbukkit.v1_16_R3.util.UnsafeList)1 UnsafeList (org.bukkit.craftbukkit.v1_17_R1.util.UnsafeList)1 UnsafeList (org.bukkit.craftbukkit.v1_18_R1.util.UnsafeList)1 UnsafeList (org.bukkit.craftbukkit.v1_7_R4.util.UnsafeList)1 UnsafeList (org.bukkit.craftbukkit.v1_8_R1.util.UnsafeList)1 UnsafeList (org.bukkit.craftbukkit.v1_8_R2.util.UnsafeList)1 UnsafeList (org.bukkit.craftbukkit.v1_8_R3.util.UnsafeList)1 UnsafeList (org.bukkit.craftbukkit.v1_9_R1.util.UnsafeList)1 UnsafeList (org.bukkit.craftbukkit.v1_9_R2.util.UnsafeList)1