Jump to content

[1.10] Specific spawn areas for custom world generator?


drok0920

Recommended Posts

Hello again,

I am making a custom world generator that has large pillars and I find that i spawn on them more than on normal terrain.  This is an issue because they are around 100 blocks away from the ground.  These pillars are one whole chunk in size so my question is: is there a way to blacklist this chunks so i dont spawn in them.  I know that this is a strange question but any help would be apreiciated

Link to comment
Share on other sites

I find that i spawn on them more than on normal terrain

 

...What?

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

World#getSpawnPoint gives you a BlockPos of the world's spawn-point. Of course, the WorldProvider gives a "spawnfuzz" meaning players spawn randomly around that BlockPos provided by World#getSpawnPoint. Not much, but about anywhere within ~10 blocks out from the BlockPos.

 

Make sure that your worldGenerator does not spawn in a chunk that is within the world-generators range of the world#getSpawnPoint, and your issue should be solved.

Also previously known as eAndPi.

"Pi, is there a station coming up where we can board your train of thought?" -Kronnn

Published Mods: Underworld

Handy links: Vic_'s Forge events Own WIP Tutorials.

Link to comment
Share on other sites

As you have not given any source code to go over, I will presume your "world generator" implements IWorldGenerator, and it not based on the decorate event.

 

You need to add a check before spawning the pillar.

Using the world.getSpawnPoint(); you get access to a BlockPos. Where the spawn-point is.

Before anything is placed, get the chunk you are currently in. The generate method supplemented by IWorldGenerator provides the chunkX & chunkZ coordinate.

 

Of course, as your pillars seem to be quite big, you need to check if your pillar generator is placing near the spawn-point. This can be done by having two for-loops (x-axis & z-axis), that each let's say start at negative 5, and end at positive 5, meaning you would check a 11x11 chunk area, centered on the spawn-chunk, if you modify the chunkX & chunkZ variable. It would be something akin to this:

for(int dx = min; dx < max; dx++){
for(int dz = min; dz < max; dz++){
	if(world.getChunkFromBlockCoords(world.getSpawnPoint()) == world.getChunkFromChunkCoords(chunkX+dx, chunkZ+dz)){
		return;
	}
}
}

Let's say the min variable is indeed -5, and max is 5. This means: if pillar generator tries to place a pillar in a chunk that is 5 or less chunks away from the spawn-chunk, then do not generate the pillar.

Also previously known as eAndPi.

"Pi, is there a station coming up where we can board your train of thought?" -Kronnn

Published Mods: Underworld

Handy links: Vic_'s Forge events Own WIP Tutorials.

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.