Jump to content
View in the app

A better way to browse. Learn more.

Forge Forums

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Featured Replies

Posted

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

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.

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.

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.

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

Important Information

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

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.