本文整理匯總了Java中net.minecraft.entity.Entity.getCollisionBorderSize方法的典型用法代碼示例。如果您正苦於以下問題:Java Entity.getCollisionBorderSize方法的具體用法?Java Entity.getCollisionBorderSize怎麽用?Java Entity.getCollisionBorderSize使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類net.minecraft.entity.Entity
的用法示例。
在下文中一共展示了Entity.getCollisionBorderSize方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。
示例1: getMouseOverServer
import net.minecraft.entity.Entity; //導入方法依賴的package包/類
public static RayTraceResult getMouseOverServer(EntityLivingBase lookingEntity, double range) {
RayTraceResult mop = raytraceEntityBlocks(lookingEntity, range);
double d1 = range;
Pair<Vec3d, Vec3d> startAndEnd = getStartAndEndLookVec(lookingEntity, (float) range);
Vec3d vec3 = startAndEnd.getLeft();
if (mop != null) {
d1 = mop.hitVec.distanceTo(vec3);
}
Vec3d vec31 = lookingEntity.getLookVec();
Vec3d vec32 = startAndEnd.getRight();
Entity pointedEntity = null;
Vec3d vec33 = null;
float f1 = 1.0F;
List<Entity> list = lookingEntity.world.getEntitiesWithinAABBExcludingEntity(lookingEntity, lookingEntity.getEntityBoundingBox()
.grow(vec31.x * range, vec31.y * range, vec31.z * range).grow(f1, f1, f1));
double d2 = d1;
for (Entity entity : list) {
if (entity.canBeCollidedWith()) {
float f2 = entity.getCollisionBorderSize();
AxisAlignedBB axisalignedbb = entity.getEntityBoundingBox().grow(f2, f2, f2);
RayTraceResult movingobjectposition = axisalignedbb.calculateIntercept(vec3, vec32);
if (axisalignedbb.contains(vec3)) {
if (0.0D < d2 || d2 == 0.0D) {
pointedEntity = entity;
vec33 = movingobjectposition == null ? vec3 : movingobjectposition.hitVec;
d2 = 0.0D;
}
} else if (movingobjectposition != null) {
double d3 = vec3.distanceTo(movingobjectposition.hitVec);
if (d3 < d2 || d2 == 0.0D) {
if (entity == entity.getRidingEntity() && !entity.canRiderInteract()) {
if (d2 == 0.0D) {
pointedEntity = entity;
vec33 = movingobjectposition.hitVec;
}
} else {
pointedEntity = entity;
vec33 = movingobjectposition.hitVec;
d2 = d3;
}
}
}
}
}
if (pointedEntity != null && (d2 < d1 || mop == null)) {
mop = new RayTraceResult(pointedEntity, vec33);
}
return mop;
}