Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

How to get the coordinates of a block the player is looking at


Bobblacksmith
 Share

Recommended Posts

In case you also want to include liquids in your search, this would be one way to do it:

/**
*  This method is intended to be called right after an item was right-clicked, and no <i>'blockHit'</i> was found. <br>
*  It will search for the first occurrence of a block made of specific material in the direction where the player <br>
*  is looking, limiting the search with the specified range of item's reach.
*  
*  @param player EntityPlayer using the item <b>(unchecked)</b>
*  @param world Instance of the world the player and his item are in <b>(unchecked)</b>
*  @param material The material type to check if item is used on 
*  @param itemReach User defined reach of the item being used <i>(should be > 1)</i>
*  @return True if the block made from designated material has been found 
*  
*  @see EntityPlayer#rayTrace(double, float)
*  @throws java.lang.NullPointerException if EntityPlayer or World instances are <code>null</code>
*/
public static boolean willItemTouchMaterialOnUse(final EntityPlayer player, final World world, Material material, int itemReach)
{
final Vec3 vec3 = player.getPositionEyes(1.0F);
final Vec3 vec31 = player.getLook(1.0F); 
	     
for (int i = 1; i <= itemReach; i++)  // Manually traverse the vector
{
	Vec3 vec32 = vec3.addVector(vec31.xCoord * i, vec31.yCoord * i, vec31.zCoord * i);
	BlockPos blockpos = new BlockPos(vec32.xCoord, vec32.yCoord, vec32.zCoord);
	IBlockState iblockstate = world.getBlockState(blockpos);
	         
	if (iblockstate != null && iblockstate.getBlock().getMaterial() == material)
	    return true;
}

return false;
}

I still haven't published a mod because I can never get that in-dev version just right to warrant a public release. And yes, after two years of mod development I am still learning to speak Java.

 

Follow me on GitHub: https://github.com/yooksi

Contact me on Twitter: https://twitter.com/yooksi

Read my Minecraft blog: https://yooksidoesminecraft.blogspot.de/

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
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.

 Share



  • Recently Browsing

    No registered users viewing this page.

  • Posts

    • https://www.mediafire.com/file/hs6o5snxiwpk1j5/latest.log/file
    • Alright Thanks! So that's why alone what i wrote wasn't enough.
    • Hello,  So i was trying to run forge 1.18 with some mods but it just crashes and gives a -1 error code whenever I click Play World or Create New World. I tried to launch Forge alone without any mods and it worked, so there is some issue with the mod loading.  But in the crash report, it doesn't mention any issues with the mod loading at all, instead it says all mods have loaded. I've attached the crash log with this, it says there's an issue with the render thread? I hope that will help narrow down the issue.   Thanks   Crash file:  
    • How can i make the transparency of an block work just like the SlimeBlock, as shown in the image: By now i'm setting the RenderLayer of the block to RenderType.translucent() and also extending the HalfTransparentBlock in my block.
    • [11:22:34] [main/INFO]: ModLauncher running: args [--username, Amaru782, --version, forge-36.2.19, --gameDir, C:\Users\usuario\curseforge\minecraft\Instances\Better Minecraft [FORGE] - 1.16.5, --assetsDir, C:\Users\usuario\curseforge\minecraft\Install\assets, --assetIndex, 1.16, --uuid, dc27f25f4a0349eca32fbd0abdd36c7c, --accessToken, ????????, --userType, msa, --versionType, release, --width, 1366, --height, 768, --launchTarget, fmlclient, --fml.forgeVersion, 36.2.19, --fml.mcVersion, 1.16.5, --fml.forgeGroup, net.minecraftforge, --fml.mcpVersion, 20210115.111550] [11:22:34] [main/INFO]: ModLauncher 8.0.9+86+master.3cf110c starting: java version 1.8.0_51 by Oracle Corporation [11:22:35] [main/WARN]: LEGACY JDK DETECTED, SECURED JAR HANDLING DISABLED [11:22:36] [main/INFO]: Added Lets Encrypt root certificates as additional trust [11:22:36] [main/INFO]: SpongePowered MIXIN Subsystem Version=0.8.4 Source=file:/C:/Users/usuario/curseforge/minecraft/Install/libraries/org/spongepowered/mixin/0.8.4/mixin-0.8.4.jar Service=ModLauncher Env=CLIENT [11:22:36] [main/WARN]: Configuration file C:\Users\usuario\curseforge\minecraft\Instances\Better Minecraft [FORGE] - 1.16.5\config\fml.toml is not correct. Correcting [11:22:36] [main/WARN]: Incorrect key [defaultConfigPath] was corrected from null to defaultconfigs [11:22:37] [main/FATAL]: Failed to find Minecraft resource version 1.16.5-20210115.111550 at C:\Users\usuario\curseforge\minecraft\Install\libraries\net\minecraftforge\forge\1.16.5-36.2.19\forge-1.16.5-36.2.19-client.jar [11:22:37] [main/INFO]: [java.lang.ThreadGroup:uncaughtException:1052]: java.lang.RuntimeException: Missing minecraft resource! [11:22:37] [main/INFO]: [java.lang.ThreadGroup:uncaughtException:1052]:     at net.minecraftforge.fml.loading.FMLCommonLaunchHandler.lambda$validatePaths$4(FMLCommonLaunchHandler.java:124) [11:22:37] [main/INFO]: [java.lang.ThreadGroup:uncaughtException:1052]:     at net.minecraftforge.fml.loading.FMLCommonLaunchHandler$$Lambda$170/292641216.accept(Unknown Source) [11:22:37] [main/INFO]: [java.lang.ThreadGroup:uncaughtException:1052]:     at java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948) [11:22:37] [main/INFO]: [java.lang.ThreadGroup:uncaughtException:1052]:     at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:580) [11:22:37] [main/INFO]: [java.lang.ThreadGroup:uncaughtException:1052]:     at net.minecraftforge.fml.loading.FMLCommonLaunchHandler.validatePaths(FMLCommonLaunchHandler.java:121) [11:22:37] [main/INFO]: [java.lang.ThreadGroup:uncaughtException:1052]:     at net.minecraftforge.fml.loading.FMLLoader.setupLaunchHandler(FMLLoader.java:202) [11:22:37] [main/INFO]: [java.lang.ThreadGroup:uncaughtException:1052]:     at net.minecraftforge.fml.loading.FMLServiceProvider.initialize(FMLServiceProvider.java:94) [11:22:37] [main/INFO]: [java.lang.ThreadGroup:uncaughtException:1052]:     at cpw.mods.modlauncher.TransformationServiceDecorator.onInitialize(TransformationServiceDecorator.java:68) [11:22:37] [main/INFO]: [java.lang.ThreadGroup:uncaughtException:1052]:     at cpw.mods.modlauncher.TransformationServicesHandler.lambda$initialiseTransformationServices$7(TransformationServicesHandler.java:107) [11:22:37] [main/INFO]: [java.lang.ThreadGroup:uncaughtException:1052]:     at cpw.mods.modlauncher.TransformationServicesHandler$$Lambda$92/30578394.accept(Unknown Source) [11:22:37] [main/INFO]: [java.lang.ThreadGroup:uncaughtException:1052]:     at java.util.HashMap$Values.forEach(HashMap.java:972) [11:22:37] [main/INFO]: [java.lang.ThreadGroup:uncaughtException:1052]:     at cpw.mods.modlauncher.TransformationServicesHandler.initialiseTransformationServices(TransformationServicesHandler.java:107) [11:22:37] [main/INFO]: [java.lang.ThreadGroup:uncaughtException:1052]:     at cpw.mods.modlauncher.TransformationServicesHandler.initializeTransformationServices(TransformationServicesHandler.java:59) [11:22:37] [main/INFO]: [java.lang.ThreadGroup:uncaughtException:1052]:     at cpw.mods.modlauncher.Launcher.run(Launcher.java:76) [11:22:37] [main/INFO]: [java.lang.ThreadGroup:uncaughtException:1052]:     at cpw.mods.modlauncher.Launcher.main(Launcher.java:66)  
  • Topics

  • Who's Online (See full list)

×
×
  • Create New...

Important Information

By using this site, you agree to our Privacy Policy.