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;
}
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;
}
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;
}
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;
}
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;
}
Aggregations