类org.bukkit.util.RayTraceResult源码实例Demo

下面列出了怎么用org.bukkit.util.RayTraceResult的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: AACAdditionPro   文件: VectorUtils.java
/**
 * Get to know where the {@link Vector} intersects with a {@link org.bukkit.block.Block}.
 * Non-Occluding {@link Block}s as defined in {@link BlockUtils#isReallyOccluding(Material)} are ignored.
 *
 * @param start     the starting {@link Location}
 * @param direction the {@link Vector} which should be checked
 *
 * @return The length when the {@link Vector} intersects or 0 if no intersection was found
 */
public static double getDistanceToFirstIntersectionWithBlock(final Location start, final Vector direction)
{
    final int length = (int) Math.floor(direction.length());
    Preconditions.checkNotNull(start.getWorld(), "RayTrace: Unknown start world.");

    if (length >= 1) {
        if (RAY_TRACING) {
            RayTraceResult result = start.getWorld().rayTraceBlocks(start, direction, length, FluidCollisionMode.NEVER, true);
            // Hit nothing or the other player
            if (result == null || result.getHitBlock() == null) {
                return 0;
            }

            return start.toVector().distance(result.getHitPosition());
        } else {
            try {
                final BlockIterator blockIterator = new BlockIterator(start.getWorld(), start.toVector(), direction, 0, length);
                Block block;
                while (blockIterator.hasNext()) {
                    block = blockIterator.next();
                    // Account for a Spigot bug: BARRIER and MOB_SPAWNER are not occluding blocks
                    if (BlockUtils.isReallyOccluding(block.getType())) {
                        // Use the middle location of the Block instead of the simple location.
                        return block.getLocation().clone().add(0.5, 0.5, 0.5).distance(start);
                    }
                }
            } catch (IllegalStateException exception) {
                // Just in case the start block could not be found for some reason or a chunk is loaded async.
                return 0;
            }
        }
    }
    return 0;
}
 
源代码2 项目: Modern-LWC   文件: EntityBlock.java
@Override
public RayTraceResult rayTrace(Location location, Vector vector, double v, FluidCollisionMode fluidCollisionMode) {
    return null;
}
 
源代码3 项目: Civs   文件: BlockImpl.java
@Override
public RayTraceResult rayTrace(Location location, Vector vector, double v, FluidCollisionMode fluidCollisionMode) {
    return null;
}
 
源代码4 项目: Civs   文件: WorldImpl.java
@Override
public RayTraceResult rayTraceEntities(Location location, Vector vector, double v) {
    return null;
}
 
源代码5 项目: Civs   文件: WorldImpl.java
@Override
public RayTraceResult rayTraceEntities(Location location, Vector vector, double v, double v1) {
    return null;
}
 
源代码6 项目: Civs   文件: WorldImpl.java
@Override
public RayTraceResult rayTraceEntities(Location location, Vector vector, double v, Predicate<Entity> predicate) {
    return null;
}
 
源代码7 项目: Civs   文件: WorldImpl.java
@Override
public RayTraceResult rayTraceEntities(Location location, Vector vector, double v, double v1, Predicate<Entity> predicate) {
    return null;
}
 
源代码8 项目: Civs   文件: WorldImpl.java
@Override
public RayTraceResult rayTraceBlocks(Location location, Vector vector, double v) {
    return null;
}
 
源代码9 项目: Civs   文件: WorldImpl.java
@Override
public RayTraceResult rayTraceBlocks(Location location, Vector vector, double v, FluidCollisionMode fluidCollisionMode) {
    return null;
}
 
源代码10 项目: Civs   文件: WorldImpl.java
@Override
public RayTraceResult rayTraceBlocks(Location location, Vector vector, double v, FluidCollisionMode fluidCollisionMode, boolean b) {
    return null;
}
 
源代码11 项目: Civs   文件: WorldImpl.java
@Override
public RayTraceResult rayTrace(Location location, Vector vector, double v, FluidCollisionMode fluidCollisionMode, boolean b, double v1, Predicate<Entity> predicate) {
    return null;
}
 
源代码12 项目: Skript   文件: DelayedChangeBlock.java
@Nullable
@Override
public RayTraceResult rayTrace(Location start, Vector direction, double maxDistance, FluidCollisionMode fluidCollisionMode) {
	return b.rayTrace(start, direction, maxDistance, fluidCollisionMode);
}
 
源代码13 项目: Skript   文件: BlockStateBlock.java
@Nullable
@Override
public RayTraceResult rayTrace(Location start, Vector direction, double maxDistance, FluidCollisionMode fluidCollisionMode) {
	return state.getBlock().rayTrace(start, direction, maxDistance, fluidCollisionMode);
}
 
 类所在包
 同包方法