Jump to content

Recommended Posts

Posted

Simply divide x, y, z coords by 16 you will get chunk coords

 

int x = 1000, y = 64, z = 1000;
int chunkx = x >> 4;
int chunky = y >> 4;
int chunkz = z >> 4;

You do not need to calculate chunkY, as a chunk is from y=0 to y=255.

Don't PM me with questions. They will be ignored! Make a thread on the appropriate board for support.

 

1.12 -> 1.13 primer by williewillus.

 

1.7.10 and older versions of Minecraft are no longer supported due to it's age! Update to the latest version for support.

 

http://www.howoldisminecraft1710.today/

Posted

Thank you. I was expecting something similar to the biome name thing.

 

Anyways, if anyone wants the code for chunk information, here it is.

	int chunkX = GetXCoordinate() / 16;
int chunkY = GetYCoordinate() / 16;
int chunkZ = GetZCoordinate() / 16;
int inChunkX = GetXCoordinate() % 16;
int inChunkY = GetYCoordinate() % 16;
int inChunkZ = GetZCoordinate() % 16;
String daChunk = ("" + Integer.toString(inChunkX) + " " + Integer.toString(inChunkY) + " " + Integer.toString(inChunkZ) + " in " + Integer.toString(chunkX) + " " + Integer.toString(chunkY) + " " + Integer.toString(chunkZ)); 
mc.fontRendererObj.drawString("C: " + daChunk + "", 2, 32, 0xffffff);

	protected static Minecraft mc = Minecraft.getMinecraft();
/** Get Player Coordinates */
public static int GetXCoordinate()
{
	return (int) Math.floor(mc.thePlayer.posX);
}
public static int GetYCoordinate()
{
	return (int) Math.floor(mc.thePlayer.posY);
}
public static int GetZCoordinate()
{
	return (int) Math.floor(mc.thePlayer.posZ);
}

Posted

As an addendum: Those 2 may seem like magic (chunkX = x >> 4 and inChunkX = x & 15). The actual operations you want are

chunkX = x / 16

and

inChunk = x % 16

- Division and modulus. Those make much more sense. They are equivalent to the above bit-hacks which are just a performance optimization.

 

There's a little difference between

x >> 4

and

x / 16

if

x < 0

, since

(-1 >> 4) == -1

while

(-1 / 16) == 0

. The same thing occurs on

&

and

%

.

(-1 & 15) == 15

while

(-1 % 16) == -1

.

To get correct chunk coords efficiently,

>>

and

&

are necessary.

Author of Tao Land Mod.

width=200 height=69http://taoland.herbix.me/images/1/14/TaoLandLogo.png[/img]

Also, author of RenderTo

----

I'm not an English native speaker. I just try my best.

Posted

To get correct chunk coords efficiently,

>>

and

&

are necessary.

 

Yes, yes they are, as I discovered one night. :D

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.

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.