public static RayTraceResult retrace(EntityPlayer player, boolean stopOnFluid) { return retrace(player, stopOnFluid, false, true); }
public static RayTraceResult retrace(EntityPlayer player) { return retrace(player, getBlockReachDistance(player), true); }
public static double getBlockReachDistance(EntityPlayer player) { return player.world.isRemote ? getBlockReachDistanceClient() : player instanceof EntityPlayerMP ? getBlockReachDistanceServer((EntityPlayerMP) player) : 5D; }
public static RayTraceResult retrace(EntityPlayer player, boolean stopOnFluid, boolean ignoreNoBoundingBox, boolean returnUncollidable) { Vec3d startVec = getStartVec(player); Vec3d endVec = getEndVec(player); return player.world.rayTraceBlocks(startVec, endVec, stopOnFluid, ignoreNoBoundingBox, returnUncollidable); }
public static Vec3d getEndVec(EntityPlayer player) { Vec3d headVec = getCorrectedHeadVec(player); Vec3d lookVec = player.getLook(1.0F); double reach = getBlockReachDistance(player); return headVec.addVector(lookVec.x * reach, lookVec.y * reach, lookVec.z * reach); }
public static Vec3d getStartVec(EntityPlayer player) { return getCorrectedHeadVec(player); }
public static RayTraceResult retrace(EntityPlayer player, double reach, boolean stopOnFluid, boolean ignoreNoBoundingBox, boolean returnUncollidable) { Vec3d startVec = getStartVec(player); Vec3d endVec = getEndVec(player, reach); return player.world.rayTraceBlocks(startVec, endVec, stopOnFluid, ignoreNoBoundingBox, returnUncollidable); }
public static Vec3d getEndVec(EntityPlayer player, double reach) { Vec3d headVec = getCorrectedHeadVec(player); Vec3d lookVec = player.getLook(1.0F); return headVec.addVector(lookVec.x * reach, lookVec.y * reach, lookVec.z * reach); }
public static RayTraceResult retrace(EntityPlayer player, double reach, boolean stopOnFluid) { return retrace(player, reach, stopOnFluid, false, true); }
public static RayTraceResult retraceBlock(World world, EntityPlayer player, BlockPos pos) { Vec3d startVec = getStartVec(player); Vec3d endVec = getEndVec(player); return world.getBlockState(pos).collisionRayTrace(world, pos, startVec, endVec); }
@SubscribeEvent public void handleFogDensityEvent(EntityViewRenderEvent.FogDensity event) { if (event.getEntity() instanceof EntityPlayer) { EntityPlayer player = (EntityPlayer) event.getEntity(); Vec3d playerEyePos = RayTracer.getCorrectedHeadVec(player); BlockPos pos = new BlockPos(playerEyePos); if (player.world.getBlockState(pos).getBlock() instanceof BlockFluidCore) { event.setCanceled(true); GlStateManager.setFog(GlStateManager.FogMode.EXP); } } }
public static RayTraceResult retrace(EntityPlayer player, double reach) { return retrace(player, reach, true); }
Vec3d playerEyePos = RayTracer.getCorrectedHeadVec(player); BlockPos pos = new BlockPos(playerEyePos); IBlockState state = player.world.getBlockState(pos);
@Override public boolean shouldRenderCustomHitBox(int subHit, EntityPlayer thePlayer) { return subHit == 13 || (subHit > 5 && subHit < 13 && !WrenchHelper.isHoldingUsableWrench(thePlayer, RayTracer.retrace(thePlayer))); }
@Override public boolean openGui(EntityPlayer player) { RayTraceResult movingObjectPosition = RayTracer.retrace(player); if (movingObjectPosition == null) { return false; } int subHit = movingObjectPosition.subHit; if (subHit > 13 && subHit < 20) { Attachment attachment = getAttachment(subHit - 14); if (attachment != null) { return attachment.openGui(player); } } for (DuctUnit ductUnit : getDuctUnits()) { if (ductUnit.openGui(player)) { return true; } } return false; }
@Override public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing side, float hitX, float hitY, float hitZ) { if (player.isSneaking()) { RayTraceResult traceResult = RayTracer.retrace(player); if (traceResult == null) { return false; } if (WrenchHelper.isHoldingUsableWrench(player, traceResult)) { if (ServerHelper.isServerWorld(world)) { dismantleBlock(world, pos, state, player, false); WrenchHelper.usedWrench(player, traceResult); } return true; } } return false; }
@Override public void handleCommand(MinecraftServer server, ICommandSender sender, String[] args) throws CommandException { if (!(sender instanceof EntityPlayerMP)) { return; } EntityPlayerMP player = (EntityPlayerMP) sender; RayTraceResult trace = RayTracer.retrace(player, 100); Chunk chunk = player.world.getChunkFromBlockCoords(trace.getBlockPos()); player.getServerWorld().getChunkProvider().queueUnload(chunk); CommandHandler.logAdminCommand(sender, this, "chat.cofh.command.unloadchunk.success", chunk.x, chunk.z); }
@Override public boolean onBlockActivated(World world, BlockPos pos, IBlockState state, EntityPlayer player, EnumHand hand, EnumFacing side, float hitX, float hitY, float hitZ) { if (player.isSneaking()) { RayTraceResult traceResult = RayTracer.retrace(player); if (traceResult == null) { return false; } if (WrenchHelper.isHoldingUsableWrench(player, traceResult)) { if (ServerHelper.isServerWorld(world)) { dismantleBlock(world, pos, state, player, false); WrenchHelper.usedWrench(player, traceResult); } return true; } } return false; }
ActionResult<ItemStack> doBucketFill(ItemStack stack, @Nonnull World world, @Nonnull EntityPlayer player, @Nonnull EnumHand hand) { if (getSpace(stack) < Fluid.BUCKET_VOLUME) { return ActionResult.newResult(EnumActionResult.PASS, stack); } RayTraceResult traceResult = RayTracer.retrace(player, true); if (traceResult == null || traceResult.sideHit == null || traceResult.typeOfHit != RayTraceResult.Type.BLOCK) { return ActionResult.newResult(EnumActionResult.PASS, stack); } BlockPos pos = traceResult.getBlockPos(); if (world.isBlockModifiable(player, pos)) { if (player.canPlayerEdit(pos, traceResult.sideHit, stack)) { FluidActionResult result = FluidUtil.tryPickUpFluid(stack, player, world, pos, traceResult.sideHit); if (result.isSuccess() && !player.capabilities.isCreativeMode) { player.addStat(StatList.getObjectUseStats(this)); return ActionResult.newResult(EnumActionResult.SUCCESS, result.getResult()); } } } return ActionResult.newResult(EnumActionResult.FAIL, stack); }
World world = player.getEntityWorld(); RayTraceResult traceResult = RayTracer.retrace(player, false); if (traceResult == null || traceResult.sideHit == null || !canHarvestBlock(world.getBlockState(pos), stack) || player.isSneaking()) { return ImmutableList.copyOf(area);