本文整理了Java中net.minecraft.util.math.AxisAlignedBB.intersects()
方法的一些代码示例,展示了AxisAlignedBB.intersects()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。AxisAlignedBB.intersects()
方法的具体详情如下:
包路径:net.minecraft.util.math.AxisAlignedBB
类名称:AxisAlignedBB
方法名:intersects
暂无
代码示例来源:origin: AppliedEnergistics/Applied-Energistics-2
/**
* Given the actual facade bounding box, and the bounding boxes of all parts, determine the biggest union of AABB
* that intersect with the facade's bounding
* box. This AABB will need to be "cut out" when the facade is rendered.
*/
@Nullable
private static AEAxisAlignedBB getCutOutBox( AxisAlignedBB facadeBox, List<AxisAlignedBB> partBoxes )
{
AEAxisAlignedBB b = null;
for( AxisAlignedBB bb : partBoxes )
{
if( bb.intersects( facadeBox ) )
{
if( b == null )
{
b = AEAxisAlignedBB.fromBounds( bb );
}
else
{
b.maxX = Math.max( b.maxX, bb.maxX );
b.maxY = Math.max( b.maxY, bb.maxY );
b.maxZ = Math.max( b.maxZ, bb.maxZ );
b.minX = Math.min( b.minX, bb.minX );
b.minY = Math.min( b.minY, bb.minY );
b.minZ = Math.min( b.minZ, bb.minZ );
}
}
}
return b;
}
代码示例来源:origin: AppliedEnergistics/Applied-Energistics-2
@SuppressWarnings( "deprecation" )
@Override
public void addCollisionBoxToList( final IBlockState state, final World w, final BlockPos pos, final AxisAlignedBB bb, final List<AxisAlignedBB> out, @Nullable final Entity e, boolean p_185477_7_ )
{
final ICustomCollision collisionHandler = this.getCustomCollision( w, pos );
if( collisionHandler != null && bb != null )
{
final List<AxisAlignedBB> tmp = new ArrayList<>();
collisionHandler.addCollidingBlockToList( w, pos, bb, tmp, e );
for( final AxisAlignedBB b : tmp )
{
final AxisAlignedBB offset = b.offset( pos.getX(), pos.getY(), pos.getZ() );
if( bb.intersects( offset ) )
{
out.add( offset );
}
}
}
else
{
super.addCollisionBoxToList( state, w, pos, bb, out, e, p_185477_7_ );
}
}
代码示例来源:origin: Vazkii/Botania
@SubscribeEvent
public void onSpawn(LivingSpawnEvent.CheckSpawn event) {
if(event.getResult() != Result.ALLOW && event.getEntityLiving() instanceof IMob) {
AxisAlignedBB aabb = new AxisAlignedBB(event.getX() - RANGE, event.getY() - RANGE, event.getZ() - RANGE, event.getX() + RANGE, event.getY() + RANGE, event.getZ() + RANGE);
for(EntityPlayer player : event.getWorld().playerEntities) {
if(hasEffect(player) && player.getEntityBoundingBox().intersects(aabb)) {
event.setResult(Result.DENY);
return;
}
}
}
}
代码示例来源:origin: Vazkii/Botania
@SubscribeEvent
public void onSpawn(LivingSpawnEvent.CheckSpawn event) {
if(event.getResult() != Result.ALLOW && event.getEntityLiving() instanceof IMob) {
AxisAlignedBB aabb = new AxisAlignedBB(event.getX() - RANGE, event.getY() - RANGE, event.getZ() - RANGE, event.getX() + RANGE, event.getY() + RANGE, event.getZ() + RANGE);
for(EntityPlayer player : event.getWorld().playerEntities) {
if(hasEffect(player) && !hasEffect(player, ModPotions.emptiness) && player.getEntityBoundingBox().intersects(aabb)) {
event.setResult(Result.ALLOW);
return;
}
}
}
}
代码示例来源:origin: OpenMods/OpenModsLib
private boolean check(EntityItem item) {
if (!item.isDead && aabb.intersects(item.getEntityBoundingBox())) {
drops.add(item);
return true;
}
return false;
}
代码示例来源:origin: CoFH/ThermalExpansion
@Override
public void addCollisionBoxToList(IBlockState state, World world, BlockPos pos, AxisAlignedBB entityBox, List<AxisAlignedBB> collidingBoxes, @Nullable Entity entityIn, boolean b) {
int facing = ((TileDynamoBase) world.getTileEntity(pos)).facing;
AxisAlignedBB base, coil;
base = boundingBox[facing].offset(pos);
coil = boundingBox[facing + 6].offset(pos);
if (coil.intersects(entityBox)) {
collidingBoxes.add(coil);
}
if (base.intersects(entityBox)) {
collidingBoxes.add(base);
}
}
代码示例来源:origin: ValkyrienWarfare/Valkyrien-Warfare-Revamped
public List<PhysicsWrapperEntity> getNearbyPhysObjects(AxisAlignedBB toCheck) {
ArrayList<PhysicsWrapperEntity> ships = new ArrayList<PhysicsWrapperEntity>();
AxisAlignedBB expandedCheck = toCheck.expand(6, 6, 6);
for (PhysicsWrapperEntity wrapper : physicsEntities) {
if (wrapper.wrapping.getCollisionBoundingBox().intersects(expandedCheck)) {
ships.add(wrapper);
}
}
return ships;
}
代码示例来源:origin: Chisel-Team/Chisel
private void checkRedraw(AxisAlignedBB updateRange) {
if (updateRange.intersects(candidateBounds)) {
Minecraft.getMinecraft().addScheduledTask(this::updateCache);
}
}
代码示例来源:origin: GregTechCE/GregTech
@Override
public void addCollisionBoxToList(IBlockState state, World worldIn, BlockPos pos, AxisAlignedBB entityBox, List<AxisAlignedBB> collidingBoxes, @Nullable Entity entityIn, boolean isActualState) {
for(Cuboid6 axisAlignedBB : getCollisionBox(worldIn, pos)) {
AxisAlignedBB offsetBox = axisAlignedBB.aabb().offset(pos);
if (offsetBox.intersects(entityBox)) collidingBoxes.add(offsetBox);
}
}
代码示例来源:origin: GregTechCE/GregTech
@Override
public void addCollisionBoxToList(IBlockState state, World worldIn, BlockPos pos, AxisAlignedBB entityBox, List<AxisAlignedBB> collidingBoxes, @Nullable Entity entityIn, boolean isActualState) {
for(Cuboid6 axisAlignedBB : getCollisionBox(worldIn, pos, state)) {
AxisAlignedBB offsetBox = axisAlignedBB.aabb().offset(pos);
if (offsetBox.intersects(entityBox)) collidingBoxes.add(offsetBox);
}
}
代码示例来源:origin: P3pp3rF1y/AncientWarfare2
private List<EntityPlayer> getPlayersWithinAABB() {
List<EntityPlayer> players = new ArrayList<>();
for (EntityPlayer player : world.playerEntities) {
if (player.getEntityBoundingBox().intersects(new AxisAlignedBB(pos, pos.add(1, 1, 1)).grow(playerRange, playerRange, playerRange))) {
players.add(player);
}
}
return players;
}
代码示例来源:origin: ForestryMC/ForestryMC
@Override
public void addCollisionBoxToList(IBlockState state, World worldIn, BlockPos pos, AxisAlignedBB entityBox, List<AxisAlignedBB> collidingBoxes, @Nullable Entity entityIn, boolean p_185477_7_) {
EnumFacing orientation = state.getValue(FACING);
List<AxisAlignedBB> boundingBoxes = boundingBoxesForDirections.get(orientation);
if (boundingBoxes == null) {
return;
}
for (AxisAlignedBB boundingBoxBase : boundingBoxes) {
AxisAlignedBB boundingBox = boundingBoxBase.offset(pos.getX(), pos.getY(), pos.getZ());
if (entityBox.intersects(boundingBox)) {
collidingBoxes.add(boundingBox);
}
}
}
代码示例来源:origin: Esteemed-Innovation/Esteemed-Innovation
@Override
public void addCollisionBoxToList(IBlockState state, World world, BlockPos pos, AxisAlignedBB entityBox, List<AxisAlignedBB> collidingBoxes, Entity entity, boolean uselessParameter) {
super.addCollisionBoxToList(state, world, pos, entityBox, collidingBoxes, entity, uselessParameter);
AxisAlignedBB aabb = WorldHelper.getDirectionalBoundingBox(state.getValue(FACING), HEATER_AABB, true).offset(pos);
if (aabb.intersects(entityBox)) {
collidingBoxes.add(aabb);
}
}
}
代码示例来源:origin: JurassiCraftTeam/JurassiCraft2
@Override
protected double getAttackReachSqr(EntityLivingBase attackTarget) {
if (attackTarget.getEntityBoundingBox().intersects(this.dinosaur.getEntityBoundingBox().expand(1.3, 1.3, 1.3))) {
return 1024.0;
}
double grownWidth = this.attacker.width + 1.0;
return grownWidth * grownWidth;
}
}
代码示例来源:origin: RS485/LogisticsPipes
@Override
public void addCollisionBoxesToList(List arraylist, AxisAlignedBB axisalignedbb) {
DoubleCoordinates pos = getLPPosition();
LPPositionSet<DoubleCoordinates> set = new LPPositionSet<>(DoubleCoordinates.class);
set.addFrom(LineTubeRenderer.tubeLine.get(orientation.getRenderOrientation()).bounds().toAABB());
set.stream().forEach(o -> o.add(pos));
AxisAlignedBB box = set.toABB();
if (box != null && (axisalignedbb == null || axisalignedbb.intersects(box))) {
arraylist.add(box);
}
}
代码示例来源:origin: amadornes/MCMultiPart
@Override
public boolean isLadder(IBlockState state, IBlockAccess world, BlockPos pos, EntityLivingBase entity) {
return anyMatch(world, pos, i -> i.getPart().isLadder(i.wrapAsNeeded(world), pos, i, entity) &&
Optional.ofNullable(i.getPart().getCollisionBoundingBox(i.getPartWorld(), pos, i.getState()).offset(pos))
.map(it -> it.intersects(entity.getEntityBoundingBox().grow(0.01 / 16F))).orElse(false));
}
代码示例来源:origin: TeamWizardry/Wizardry
public static void run(World world, BlockPos pos, Block block, Entity entity, Predicate<Entity> test, Consumer<Entity> process) {
if (!(block instanceof IFluidBlock)) return;
float height;
IBlockState up = world.getBlockState(pos.up());
if (up.getMaterial().isLiquid() || up.getBlock() instanceof IFluidBlock)
height = 1f;
else
height = ((IFluidBlock) block).getFilledPercentage(world, pos) * 0.875f;
AxisAlignedBB bb = new AxisAlignedBB(pos).contract(0, 1 - height, 0);
AxisAlignedBB entityBox = entity.getCollisionBoundingBox();
if ((entityBox == null || entityBox.intersects(bb))
&& test.test(entity)) process.accept(entity);
}
}
代码示例来源:origin: JurassiCraftTeam/JurassiCraft2
@Override
public void updateTask() {
if (this.dinosaur.getEntityBoundingBox().intersects(this.mate.getEntityBoundingBox().expand(0.5D, 0.5D, 0.5D))) {
this.dinosaur.setAnimation(EntityAnimation.MATING.get());
this.dinosaur.getMetabolism().decreaseEnergy(1000);
}
}
代码示例来源:origin: P3pp3rF1y/AncientWarfare2
@Override
@SuppressWarnings("squid:S3655")
public void updateTask() {
//noinspection ConstantConditions
VehicleBase vehicle = npc.getVehicle().get();
double distance = npc.getDistanceSq(vehicle.getPosition());
if (npc.getEntityBoundingBox().grow(MOUNT_REACH).intersects(vehicle.getEntityBoundingBox())) {
npc.startRiding(vehicle);
} else {
moveToPosition(vehicle.getPosition(), distance);
npc.addAITask(TASK_MOVE);
}
}
代码示例来源:origin: JurassiCraftTeam/JurassiCraft2
@Override
public boolean shouldContinueExecuting() {
return !(this.entity.getEntityBoundingBox() != null && this.owner.getEntityBoundingBox() != null && this.entity.getEntityBoundingBox().expand(2, 2, 2).intersects(this.owner.getEntityBoundingBox())) && !this.entity.getNavigator().noPath() && this.owner.isEntityAlive() && this.entity.getOrder() == DinosaurEntity.Order.FOLLOW;
}
内容来源于网络,如有侵权,请联系作者删除!