Jump to content

[1.9] How do I get position of a block that the player is looking at?


23kcarlson

Recommended Posts

I have tried searching, but everything is outdated, and I cannot figure out how to get it to work.

 

I think this is as close as I got:

public ActionResult<ItemStack> onItemRightClick(ItemStack itemStackIn, World worldIn, EntityPlayer playerIn,
		EnumHand hand) {
         Vec3d vec3 = playerIn.getPositionEyes(1.0F);
         Vec3d lookVec = playerIn.getLook(1.0F);
         Vec3d addedVector = vec3.addVector(lookVec.xCoord * 50.0D, lookVec.yCoord * 50.0D, lookVec.zCoord * 50.0D);
         RayTraceResult lookPos= new  RayTraceResult(playerIn, lookVec);
         int x =lookPos.getBlockPos().getX();
         int y =lookPos.getBlockPos().getY();
         int z =lookPos.getBlockPos().getX();

         EntityLightningBolt lightning = new EntityLightningBolt(worldIn, x,y,z, false);
	worldIn.addWeatherEffect(lightning);
	return new ActionResult(EnumActionResult.PASS, itemStackIn);
}

Link to comment
Share on other sites

1. I just modified the code from the Item class? What should I return? Nothing, and make it a void method?

 

2. I forgot about that, I'll fix that. Should it only be run on the server? or the client?

 

 

 

(I just started learning how to mod btw.)

Link to comment
Share on other sites

I have tried searching, but everything is outdated, and I cannot figure out how to get it to work.

 

I think this is as close as I got

 

Your code looks 1 block away from where the player is and goes "yep, spawn there. good enough."

 

You never attempt to raytrace farther out.

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Link to comment
Share on other sites

I got it to work

 

Here is what I have now:

public ActionResult<ItemStack> onItemRightClick(ItemStack itemStackIn, World worldIn, EntityPlayer playerIn,

EnumHand hand) {

if (worldIn.isRemote) {

 

RayTraceResult result = playerIn.rayTrace(100, 1F);

int x = result.getBlockPos().getX();

int y = result.getBlockPos().getY();

int z = result.getBlockPos().getZ();

 

EntityLightningBolt lightning = new EntityLightningBolt(worldIn, x, y, z, false);

worldIn.addWeatherEffect(lightning);

}

return new ActionResult(EnumActionResult.SUCCESS, itemStackIn);

}

 

If this can be improved, please let me know.

Link to comment
Share on other sites

isRemote should have been called isClient, but people like Lex think that people should instinctively know that "remote" means "relative to the server."  Or something, I don't recall the reasons only that it wasn't going to change.

 

There was an issue about it on the git, but I can't find it now.

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Link to comment
Share on other sites

The reason it is not changed is because everyone knows it now and it's so ubiquitously used.

 

That didn't stop some of the other name changes that occurred.

But whatever.

Apparently I'm a complete and utter jerk and come to this forum just like to make fun of people, be confrontational, and make your personal life miserable.  If you think this is the case, JUST REPORT ME.  Otherwise you're just going to get reported when you reply to my posts and point it out, because odds are, I was trying to be nice.

 

Exception: If you do not understand Java, I WILL NOT HELP YOU and your thread will get locked.

 

DO NOT PM ME WITH PROBLEMS. No help will be given.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Announcements



×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.