public boolean equalPos(RayTraceResult pos) { return pos.getBlockPos().equals(this.pos.getBlockPos()); } }
if( entity != null && pos != null && pos.hitVec.squareDistanceTo( vec ) > closest ) pos = new RayTraceResult( entity ); pos = new RayTraceResult( entity ); final IBlockState bs = w.getBlockState( pos.getBlockPos() ); final float hardness = bs.getBlockHardness( w, pos.getBlockPos() ) * 9.0f; if( hardness >= 0.0 ) if( penetration > hardness && Platform.hasPermissions( new DimensionalCoord( w, pos.getBlockPos() ), p ) ) w.destroyBlock( pos.getBlockPos(), true );
private static RayTraceResult rayTrace2(BlockPos pos, Vec3d start, Vec3d end, AxisAlignedBB boundingBox) { Vec3d vec3d = start.subtract((double) pos.getX(), (double) pos.getY(), (double) pos.getZ()); Vec3d vec3d1 = end.subtract((double) pos.getX(), (double) pos.getY(), (double) pos.getZ()); RayTraceResult raytraceresult = boundingBox.calculateIntercept(vec3d, vec3d1); return raytraceresult == null ? null : new RayTraceResult(raytraceresult.hitVec.addVector((double) pos.getX(), (double) pos.getY(), (double) pos.getZ()), raytraceresult.sideHit, pos); }
return new RayTraceResult(pointedEntity, hit);
@Override public boolean collideBurst(IManaBurst burst, EntityThrowable entity, RayTraceResult pos, boolean isManaBlock, boolean dead, ItemStack stack) { if(!entity.world.isRemote && !burst.isFake()) { BlockPos coords = burst.getBurstSourceBlockPos(); if(pos.entityHit == null && !isManaBlock && (pos.getBlockPos() == null || !coords.equals(pos.getBlockPos()))) entity.world.createExplosion(entity, entity.posX, entity.posY, entity.posZ, 5F, true); } else dead = false; return dead; }
if(lookat == null) playerLook = new Vector3(player.getLookVec()).multiply(64).add(Vector3.fromEntity(player)); else playerLook = new Vector3(lookat.getBlockPos().getX() + 0.5, lookat.getBlockPos().getY() + 0.5, lookat.getBlockPos().getZ() + 0.5); living.attackEntityFrom(DamageSource.causePlayerDamage(player), 20); else living.attackEntityFrom(DamageSource.GENERIC, 20); onImpact(new RayTraceResult(living)); return;
@Override public void onUpdate() { super.onUpdate(); float dist = 1.5F; for(int i = 0; i < 10; i++) { float xs = (float) (Math.random() - 0.5) * dist; float ys = (float) (Math.random() - 0.5) * dist; float zs = (float) (Math.random() - 0.5) * dist; Botania.proxy.sparkleFX(posX + xs, posY + ys, posZ + zs, 1F, 0.4F, 1F, 2F, 6); } EntityLivingBase thrower = getThrower(); if(!world.isRemote && thrower != null) { AxisAlignedBB axis = new AxisAlignedBB(posX, posY, posZ, lastTickPosX, lastTickPosY, lastTickPosZ).grow(2); List<EntityLivingBase> entities = world.getEntitiesWithinAABB(EntityLivingBase.class, axis); for(EntityLivingBase living : entities) { if(living == thrower) continue; if(living.hurtTime == 0) { onImpact(new RayTraceResult(living)); return; } } } if(ticksExisted > 200) setDead(); }
@Override public boolean collideBurst(IManaBurst burst, EntityThrowable entity, RayTraceResult pos, boolean isManaBlock, boolean dead, ItemStack stack) { if(!entity.world.isRemote && !burst.isFake()) { BlockPos coords = burst.getBurstSourceBlockPos(); if(pos.entityHit == null && !isManaBlock && (pos.getBlockPos() == null || !coords.equals(pos.getBlockPos()))) entity.world.createExplosion(entity, entity.posX, entity.posY, entity.posZ, burst.getMana() / 50F, true); } else dead = false; return dead; }
if( entity != null && pos != null && pos.hitVec.squareDistanceTo( vec ) > closest ) pos = new RayTraceResult( entity ); pos = new RayTraceResult( entity ); final BlockPos hitPos = pos.getBlockPos().offset( side );
pos = new RayTraceResult( entity ); pos = new RayTraceResult( entity );
@Override @SideOnly(Side.CLIENT) public List<BlockPos> getWireframesToDraw(EntityPlayer player, ItemStack stack) { if(getLokiRing(player) != stack) return ImmutableList.of(); RayTraceResult lookPos = Minecraft.getMinecraft().objectMouseOver; if(lookPos != null && lookPos.getBlockPos() != null && !player.world.isAirBlock(lookPos.getBlockPos()) && lookPos.entityHit == null) { List<BlockPos> list = getCursorList(stack); BlockPos origin = getOriginPos(stack); for (int i = 0; i < list.size(); i++) { if (origin.getY() != -1) { list.set(i, list.get(i).add(origin)); } else { list.set(i, list.get(i).add(lookPos.getBlockPos())); } } return list; } return ImmutableList.of(); }
raytraceresult = new RayTraceResult(entity); if (raytraceresult.typeOfHit == RayTraceResult.Type.BLOCK && this.world.getBlockState(raytraceresult.getBlockPos()).getBlock() == Blocks.PORTAL) this.setPortal(raytraceresult.getBlockPos());
@Nonnull @Override public EnumActionResult onItemUse(EntityPlayer player, World world, BlockPos pos, EnumHand hand, EnumFacing side, float par8, float par9, float par10) { if(player.isSneaking()) { Block block = world.getBlockState(pos).getBlock(); if(block != null) { if(block instanceof ILexiconable) { ItemStack stack = player.getHeldItem(hand); LexiconEntry entry = ((ILexiconable) block).getEntry(world, pos, player, stack); if(entry != null && isKnowledgeUnlocked(stack, entry.getKnowledgeType())) { Botania.proxy.setEntryToOpen(entry); Botania.proxy.setLexiconStack(stack); openBook(player, stack, world, false); return EnumActionResult.SUCCESS; } } else if(world.isRemote) { RayTraceResult mop = new RayTraceResult(new Vec3d(par8, par9, par10), side, pos); return Botania.proxy.openWikiPage(world, block, mop) ? EnumActionResult.SUCCESS : EnumActionResult.FAIL; } } } return EnumActionResult.PASS; }
@Override protected void onImpact(RayTraceResult pos) { if (world.isRemote) return; EntityLivingBase thrower = getThrower(); if(pos.entityHit != null && thrower != null && pos.entityHit != thrower && !pos.entityHit.isDead) { if(thrower instanceof EntityPlayer) pos.entityHit.attackEntityFrom(DamageSource.causePlayerDamage((EntityPlayer) thrower), Math.random() < 0.25 ? 10 : 5); else pos.entityHit.attackEntityFrom(DamageSource.GENERIC, Math.random() < 0.25 ? 10 : 5); } if (pos.getBlockPos() != null) { IBlockState state = world.getBlockState(pos.getBlockPos()); if(ConfigHandler.blockBreakParticles && !state.getBlock().isAir(state, world, pos.getBlockPos())) world.playEvent(2001, pos.getBlockPos(), Block.getStateId(state)); } setDead(); }
raytraceresult = new RayTraceResult(entity); if (raytraceresult.typeOfHit == RayTraceResult.Type.BLOCK && world.getBlockState(raytraceresult.getBlockPos()).getBlock() == Blocks.PORTAL) setPortal(raytraceresult.getBlockPos());
@Override public EnumActionResult onItemUseFirst( final EntityPlayer player, final World world, final BlockPos pos, final EnumFacing side, final float hitX, final float hitY, final float hitZ, final EnumHand hand ) { final RayTraceResult mop = new RayTraceResult( new Vec3d( hitX, hitY, hitZ ), side, pos ); final TileEntity te = world.getTileEntity( pos ); if( te instanceof IPartHost ) { final SelectedPart part = ( (IPartHost) te ).selectPart( mop.hitVec ); if( part.part != null || part.facade != null ) { if( part.part instanceof INetworkToolAgent && !( (INetworkToolAgent) part.part ).showNetworkInfo( mop ) ) { return EnumActionResult.FAIL; } else if( player.isSneaking() ) { return EnumActionResult.PASS; } } } else if( te instanceof INetworkToolAgent && !( (INetworkToolAgent) te ).showNetworkInfo( mop ) ) { return EnumActionResult.FAIL; } if( Platform.isClient() ) { NetworkHandler.instance().sendToServer( new PacketClick( pos, side, hitX, hitY, hitZ, hand ) ); } return EnumActionResult.SUCCESS; }
@Override public boolean collideBurst(IManaBurst burst, EntityThrowable entity, RayTraceResult pos, boolean isManaBlock, boolean dead, ItemStack stack) { BlockPos coords = burst.getBurstSourceBlockPos(); if(!entity.world.isRemote && pos.getBlockPos() != null && !coords.equals(pos.getBlockPos()) && !burst.isFake() && !isManaBlock) { BlockPos pos_ = pos.getBlockPos().offset(pos.sideHit.getOpposite()); if(entity.world.isAirBlock(pos_) || entity.world.getBlockState(pos_).getBlock().isReplaceable(entity.world, pos_)) { IBlockState state = entity.world.getBlockState(pos.getBlockPos()); TileEntity tile = entity.world.getTileEntity(pos.getBlockPos()); if(state.getPushReaction() == EnumPushReaction.NORMAL && state.getBlock() != Blocks.OBSIDIAN && state.getBlockHardness(entity.world, pos_) >= 0 && tile == null) { entity.world.destroyBlock(pos.getBlockPos(), false); entity.world.setBlockState(pos_, state, 1 | 2); } } } return dead; }
RayTraceResult = new RayTraceResult(entity); if (RayTraceResult.typeOfHit == net.minecraft.util.math.RayTraceResult.Type.BLOCK && world.getBlockState(RayTraceResult.getBlockPos()).getBlock() == Blocks.PORTAL) setPortal(RayTraceResult.getBlockPos());
ImmutableList<BlockPos> extraBlocks = ((IAoeTool) tool.getItem()).getAOEBlocks(tool, world, player, mop.getBlockPos()); for(BlockPos pos : extraBlocks) { event.getContext().drawSelectionBox(player, new RayTraceResult(new Vec3d(0, 0, 0), null, pos), 0, event.getPartialTicks());
private float rayTraceResistance(Vector3 start, Vector3 end, float prevresistance) { RayTraceResult mop = world.rayTraceBlocks(start.toVec3D(), end.toVec3D()); if(mop == null) return prevresistance; if(mop.typeOfHit == RayTraceResult.Type.BLOCK) { Block block = world.getBlockState(mop.getBlockPos()).getBlock(); if(world.isAirBlock(mop.getBlockPos())) return prevresistance; return prevresistance + block.getExplosionResistance(null) + 0.3F; } else return prevresistance; }