Jump to content

[1.8] Get chunk Coords [SOLVED]


JoelGodOfWar

Recommended Posts

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/

Link to comment
Share on other sites

You can get the using

blockPositionX & 15

, the same for Z;

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/

Link to comment
Share on other sites

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);
}

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

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.

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



  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • Hi, how can I get the coordinates of the player's spawn point? I want to do this in the onLivingHurt event. This is what I have now:   @SubscribeEvent public static void onLivingHurt(LivingHurtEvent event){ if(event.getEntity() instanceof Player player){ player.getCapability(PlayerZonesProvider.PLAYER_ZONES).ifPresent(zones->{ if(event.getSource()!=player.damageSources().fall()){ double distanceFromSpawn=Math.sqrt(Math.pow(player.getX(),2)+Math.pow(player.getZ(),2));//i want to replace this with the true respawn position BlockPos spawnPosition=((ServerPlayer) player).getRespawnPosition();//this always ends up being null //if(spawnPosition != null) player.sendSystemMessage(Component.literal(Integer.toString(spawnPosition.getX()))); int currentZone=zones.getCurrentZone(distanceFromSpawn); player.hurt(player.damageSources().fall(),event.getAmount()*(currentZone+1)); } }); } } However, it always crashes immediately because spawnPosition is null: Caused by: java.lang.NullPointerException: Cannot invoke "net.minecraft.core.BlockPos.getX()" because "spawnPosition" is null What am I doing wrong?
    • I'm trying to start up a 1.16.5 server with a kitchensink modpack that I made, but it won't work and the server keeps crashing. https://paste.ee/p/yBk8L  
    • BITCOIN RECOVERY; The Expertise of Captain WebGenesis in Retrieving scammed Cryptocurrency. I was involved in a bitcoin trading scam, I came across a company website that promised a big return on investment. I was completely sold. The website was excellent, and after much coaxing, I opted to invest 278,000 USD, which unfortunately ended up in the wrong hands. I was frustrated until I sought the counsel of a Crypto Expert  CAPTAIN WEBGENESIS. I had no notion there were techniques for reclaiming stolen funds. I emailed the highly rated expert. I explained my case to Expert and provided all the required information and to my amazement, CAPTAIN WEBGENESIS refunded 90% of my BITCOIN to my wallet within a few working days, which I didn't think was possible. I was startled as well as relieved. With folks like CAPTAIN WEBGENESIS on your side, Crypto recovery is possible
    • I can’t see what the problem is since there seem to be no errors. Are you sure that was everything? The last log seems to be about the graphics library. Maybe that is the issue.  [20:26:39] [main/INFO]: Incorrect key [earlyWindowSkipGLVersions] was corrected from null to [] …… [20:26:41] [main/INFO]: Trying GL version 4.6 looks sus, but it might not be the issue
    • setDeltaMovement only works on the client. this makes the animations smoother. The reason sendSystemMessage works is because you don’t have to constantly send messages from the server to the client, and a little bit of lag is ok. This is a core minecraft mechanism, but you can send custom packets over to the client to set its deltaMovement. The client has to have a way to receive the packets too.
  • Topics

×
×
  • Create New...

Important Information

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