# Get World Height?

## Recommended Posts

So, this is one of those things I could find out with extensive testing, but it'll be hours until I get home and I'm also hoping somone else will be benefitted by this post.

Simple question, then: world.getHeightValue(x,z) will return what Y value, by definition? And more specifically, if I use this function in an area where there's a tree, will it get me the height of the leaves or the height of the ground under it?

##### Share on other sites

welll .. you could have looked at the code directly (unless you dont ahve access from where you are) but it will return the first opaque bloc (aka leaves no, wood yes)

how to debug 101:http://www.minecraftforge.net/wiki/Debug_101

-hydroflame, author of the forge revolution-

##### Share on other sites

I agree with that guy ^^.  THe first opaque block from the top of the sky.  However, I want to add that if you gen your stuff too early, trees might not be in place yet.  I had that problem once.

##### Share on other sites

Yea... actually no. I'm using that function to try and find trees for my worldGen. My problem, though, is not that the gen is made too early but:

a) This function returns the y value of the block just above the top most for given X and Z(i.e., it's an air block)

and b) It does not make any distinction between solid blocks or not. I got both water and leaves on the position just below that value.

Thanks for the prompt reply, guys, but you might be thinking of a different version of the code(I'm working with 1.5.2).

##### Share on other sites

why dont you simply do a loop ?

its not gonna kill anyone

how to debug 101:http://www.minecraftforge.net/wiki/Debug_101

-hydroflame, author of the forge revolution-

##### Share on other sites

```for(int i = 0; i < 256; i++){
if(world.getBlockID(x, i, z) == 0){
return i;
}
}```

and or check that the block id is part of those you want to be considered max

how to debug 101:http://www.minecraftforge.net/wiki/Debug_101

-hydroflame, author of the forge revolution-

##### Share on other sites

I am doing loops, but trying to reduce them. I already get some hiccups when generating new chunks as it is, I'd like my code to be minimally leaner.

Besides, I can use getHeightValue, I just need to check a few blocks down in these cases. I wanted to clarify because the documentation is vague and the code isn't much better either(it just takes this value from an array, but doesn't explain where this array is filled).

##### Share on other sites

but doesn't explain where this array is filled

well you can always follow the stack trace btw..............

how to debug 101:http://www.minecraftforge.net/wiki/Debug_101

-hydroflame, author of the forge revolution-

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

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 previous content has been restored.   Clear editor

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

• ### Recently Browsing

• No registered users viewing this page.
• ### Posts

• I already tried deleting Ender IO, it didn’t help
• помогите, пожалуйста, я не знаю, почему произошел сбой моего сервера https://pastebin.com/stYuSP5F  – отчет о сбое https://pastebin.com/cBCMarZ2 - fml log
• Simply don't add a recipe. It doesn't automatically generate one unless you put the tool/weapon's recipe in the datagen. The ingredient listed in the material type is just the repair ingredient.
• ---- Minecraft Crash Report ---- // Don't do that. Time: 2024-06-14 03:22:57 MSK Description: Initializing game java.lang.IllegalAccessError: tried to access class org.spongepowered.asm.mixin.transformer.MixinProcessor from class net.minecraftforge.fml.common.Loader     at net.minecraftforge.fml.common.Loader.handler\$zza000\$beforeConstructingMods(Loader.java:1141)     at net.minecraftforge.fml.common.Loader.loadMods(Loader.java:594)     at net.minecraftforge.fml.client.FMLClientHandler.beginMinecraftLoading(FMLClientHandler.java:232)     at net.minecraft.client.Minecraft.func_71384_a(Minecraft.java:467)     at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:3931)     at net.minecraft.client.main.Main.main(SourceFile:123)     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)     at java.lang.reflect.Method.invoke(Method.java:497)     at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)     at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
• Illegal packet received, terminating connection. net.minecraftforge.network.packets.ModVersions expected CLIENTBOUND CONFIGURATION but was CLIENTBOUND PLAY unable to join ANY multiplayer server when running 1.20.6 forge.

• ### Who's Online (See full list)

×

• #### Activity

×
• Create New...

## Important Information

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