Jump to content

[Any Version] Village Well Height


Dylem

Recommended Posts

Hello, I was wondering how Minecraft spawns well on ground level, as it is just spawned with minY = 64 and maxY = 78

Source from StructureVillagePieces.Well :

this.boundingBox = new StructureBoundingBox(x, 64, z, x + 6 - 1, 78, z + 6 - 1);

 

Does anyone have any idea about it ?

Edited by Dylem
Link to comment
Share on other sites

Let me precise that my goal is to find the height without having access to world, because I need it in a function that doesn't take World as argument.

 

For now I do it like that (but as I said this does only work in functions that take World as parameter):

worldIn.getHeight(X, Z)

 

Edited by Dylem
Link to comment
Share on other sites

1 hour ago, diesieben07 said:

There is no way to get the height without having the world. How would you specify which dimension you want? What function are you talking about?

Well, if I could understand how it spawns, I could get it without world. I'm searching mostly for a function about villages (the well is the village start point but when i request start height it also tells me 64).. I found an other method to get it without world, with average ground level of village and then check for blocks but its a bit too tricky

Link to comment
Share on other sites

On 6/16/2017 at 0:06 PM, diesieben07 said:

I... what? What are you trying to achieve exactly?

I'm trying to embellish the well structure, and I didn't find an other way to achieve that than extending village to spawn my blocks on village spawn, then find the well and modify it.

This is how I get X and Z :

public static Welllus createPiece(StructureVillagePieces.Start start, int type, Random rand) {
        int x = start.getBoundingBox().minX;
        int z = start.getBoundingBox().minZ;
        
        EnumFacing facing = EnumFacing.EAST;
        
        StructureBoundingBox sbb = StructureBoundingBox.getComponentToAddBoundingBox(x, 64, z, 0, 0, 0, 4, 3, 4, facing);
        return new WellPlus(start, type, rand, sbb, facing);
    }

I hope it is more clear now. The problem is I can get the Y position in addComponentParts, but it means I need to modify the bounding box previously created and it's not working properly that way (and not optimized either).

 

I call createPiece from my handler there :

@Override
    public Village buildComponent(PieceWeight villagePiece, Start startPiece, List<StructureComponent> pieces, Random random, int p1, int p2, int p3, EnumFacing facing, int p5) {
        
        return WellPlus.createPiece(startPiece, p5, random);
    }

 

Note : Sorry if I'm not clear, english is my 3rd language

Edited by Dylem
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.



×
×
  • Create New...

Important Information

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