Jump to content

[Any Version] Village Well Height


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 :

    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.

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.


  • Recently Browsing

    • No registered users viewing this page.
  • Posts

    • This is my first time making a pack and i just wanted to add mods that i know or that look interesting. So When making the pack i get this error with Refined Storage https://pastebin.com/DxtTbVZW
    • Hello! When I'm trying to get items by tag during the recipe serialization, I'm getting an empty list. I have a guess that item tags're not loaded by the time minecraft loads my recipes. Here's my code: Class that saves information about ingredient's count Recipe serializer with some aux methods: Registry: Example of the json recipe file:  
    • I tried to install client forge on my linux desktop. But after "installation" it's missing forge[version].jar file in .minecraft/versions. I tried java 11 and 8 environment with same result. Here link to log file from installation: https://drive.google.com/file/d/1vtg9NT-WX5ilb1aNUvZlOv54gKWJuaT1/view?usp=share_link. I don't know what to do. I give for every directory permissions that I don't think that is issue. I will try check older versions if universal file work. Debian 11 (kernel 5.10)
    • I recently got error 1 in the launcher, so I restarted the .minecraft. After restarting it, I can't get the Forge 1.19.2 - 43.1.1 installer to run, I tried other versions and I get the same result, it opens a black box that closes instantly and nothing happens. I already tried to restart my pc, minecraft, update and reinstall java, run vanilla 1.19.2 and more recent versions of the game, disable Windows Firewall and antivirus and I still haven't solved it. Many times I installed forge and never ran into this problem. If I could receive assistance I would be very grateful.  
    • Here's the default loot table for gravel block: { "type": "minecraft:block", "pools": [ { "rolls": 1.0, "bonus_rolls": 0.0, "entries": [ { "type": "minecraft:alternatives", "children": [ { "type": "minecraft:item", "conditions": [ { "condition": "minecraft:match_tool", "predicate": { "enchantments": [ { "enchantment": "minecraft:silk_touch", "levels": { "min": 1 } } ] } } ], "name": "minecraft:gravel" }, { "type": "minecraft:alternatives", "conditions": [ { "condition": "minecraft:survives_explosion" } ], "children": [ { "type": "minecraft:item", "conditions": [ { "condition": "minecraft:table_bonus", "enchantment": "minecraft:fortune", "chances": [ 0.1, 0.14285715, 0.25, 1.0 ] } ], "name": "minecraft:flint" }, { "type": "minecraft:item", "name": "minecraft:gravel" } ] } ] } ] } ] } This is a finicky loot table. If I add anything to it, nothing drops. I've added pools, entries, children ... you name it. Does anyone know the particulars about this table? I mean, periodically gravel drops flint instead of a gravel block. I understand the condition that could drop flint if the block survives an explosion. Otherwise, it drops the gravel block itself. I would like to further understand why the use of `children` and the set of `chance` values given in the explosion child entry. What I do understand is that `"type" : "minecraft:alternatives"` means that if this child/entry is successful, then it stops generating loot for this entry/pool. How often does the flint drop and is that taken care of in another location? Is that in a `"condition" : "minecraft:table_bonus"` loot table? Hmmm... I'll have to go take a look and see if there is something called table_bonus.json.
  • Topics

  • Create New...

Important Information

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