use of net.minecraft.world.level.ClipContext.Fluid in project wthit by badasintended.
the class RaycastUtil method fire.
public static HitResult fire(Entity camera, double reach, float tickDelta) {
Vec3 viewVec = camera.getViewVector(tickDelta);
Vec3 start = camera.getEyePosition(tickDelta);
Vec3 end = start.add(viewVec.x * reach, viewVec.y * reach, viewVec.z * reach);
Fluid fluidContext = PluginConfig.INSTANCE.getBoolean(WailaConstants.CONFIG_SHOW_FLUID) ? Fluid.SOURCE_ONLY : Fluid.NONE;
BlockHitResult blockHit = camera.level.clip(new ClipContext(start, end, Block.OUTLINE, fluidContext, camera));
if (PluginConfig.INSTANCE.getBoolean(WailaConstants.CONFIG_SHOW_ENTITY)) {
EntityHitResult entityHit = ProjectileUtil.getEntityHitResult(camera, start, end, new AABB(start, end), EntitySelector.ENTITY_STILL_ALIVE, 0f);
if (entityHit != null) {
if (blockHit.getType() == Type.MISS) {
return entityHit;
}
double blockDistance = blockHit.getLocation().distanceToSqr(start);
double entityDistance = entityHit.getLocation().distanceToSqr(start);
if (entityDistance < blockDistance) {
return entityHit;
}
}
}
return blockHit;
}
Aggregations