Spawning structures not well

Upvotes: 0
Issue description

Problem:

I try to spawn a lot of small structures in a biom and it sometimes has the wrong offset or is spawned on a tree.

 

I think, you should add a if statement somewhere to check if the block under the structure = grass X or leaves.if its leaves, don´t spawn. if it´s grass X (not the grassblock), spawn structure at offset - 1. is it possible to add a check like this?

I also want to add a feature request here:

add filters for biom spawn selection. Something like: by temperature, only land/water , no ice/snow , or by groups: all forests, all hill biomes.

Attachment Size
Test.mcr2.03 MB 2.03 MB
onTree.png990.06 KB 990.06 KB
WrongOffset.png233.25 KB 233.25 KB

Issue comments

Submitted by Klemen on Sun, 03/24/2019 - 18:51

Just set the offset to -1 and restrict spawning to grass blocks.

Submitted by Klemen on Sun, 03/24/2019 - 20:04

If you set too big offset structure might not spawn due to spawning height limitations.

I am pretty sure that I am not limited by the world height limitation. This already happens when I set offset to 1. I already found a workarround : adding some structure void blocks under my structure to get the space that way. However,  you should take a look at it. 

Submitted by Klemen on Mon, 03/25/2019 - 14:37

I will check if I can reproduce this bug and try to fix it.

Submitted by Klemen on Mon, 03/25/2019 - 14:39

Do you use any block or biome restrictions on the structure that does not spawn with offset?

Yes, I restricted it by only spawning on gras blocks and some biomes.

Submitted by Klemen on Mon, 03/25/2019 - 18:38

This is why it is not spawning because it is checking for the block at the offset location, which is air. We will fix this in 1.8.4 so even if the offset is set, the block and biome will be checked at the original location without the offset.

Submitted by Crayeights on Sun, 04/07/2019 - 15:25

if you set the cords right you can get it to center if your using structure block but the structure block at the middle under your structure add corner blocks then detect then the coordinates are right there for you almost on a sliver platter.

know for it spawning on top of things that are did not wont you should create a conditions block and set the procedure with conditions that you wont with detections then spawn if all conditions are met. know its harder to due with 1.8.3 witch I hope they understand and fix this in a new or more direct way also didnt need to worry if conditions are not met then self to air and it all happens so fast player wouldn't even know it happen unless they have less then 2 gigs of ram also some what depends on if your blocks are transparent or not in the case of a village you might have some windows with is fine allots its not like allot of glass like blocks.

correctly works best in 1.8.2 and 1.8.3 wont allow natural update tick so fare due to bugs they didn't think about.  I understand it it just the people the creator of there own mod needs to plan out there structures and add conditions for the spawning. if this was a problem.

ill try to find a work around in 1.8.3 but looking like I need to create more fake blocks to force the update tick for it but know it causes lag and before i had non.......... ill keep you updated if i figure this out.

 he said 1.8.4 will have some kind of fix i hope and pray o:)

yeah my mod has a giant cave and i am spawning stalactites structures so i need detection for the above and adding but the calculations so it can spawn at the right place so its not floating around and it works but not in update with the conditions created.

Submitted by Crayeights on Sun, 04/07/2019 - 21:48

ok its all working fine on this end know sorry if anything I said was confusing

Submitted by Crayeights on Sun, 04/07/2019 - 21:52

i added a structure in to mcreator then create the command structure block that turns self to air if non of the conditions are found set the tructure block to spawn in the world settings will have to be trile and error but its working greate know that I calmed down and thought it all through.

sorry Klemen for the trouble