mojira.dev
MC-7482

Witch Huts that generate partially in River biomes don't spawn Witches within their entire structure.

Witch Huts generate in Swamp biomes regardless of other biomes intersecting their structure - most commonly, a part of the Witch Hut is intersected by a River biome cutting through the swamp.

This is problematic because Witch Spawning is not only limited to the small area of the Hut, but can additionally only happen in the corresponding Swamp biome, which means that the blocks of the structure that are not inside a Swamp biome will not spawn Witches, but any other hostile mob that normally spawns if the block meets the conditions necessary.

This is especially annoying when trying to build a Witch Farm out of the Hut, since is greatly limits the number of Huts on a map that you can make a 100% efficient farm out of.

The screenshots attached show the problem with an example Witch Hut. The roof has been replaced with Wool, and the top view shows very well how many Blocks are actually able to spawn Witches (green) and how much potential spawning space is taken away by the River biome (red).

The problem is also very well explained in this video by docm77:

http://www.youtube.com/watch?v=KllWkdfOS3M

Starting at 1:25, he explains how small the actual spawning area of Witch hut is while he later elaborates on the River biome problem - and I have found many examples on the server I play on of Witch huts being more than 50% "ruined" by River biomes (or in one case, a Desert, which creates essentially the same problem).

Linked issues

Attachments

Comments

bugi74

Duplicate of MC-683, which is itself marked incorrectly as a duplicate of MC-72...
Though this issue description is much better.

Marius D

Yeah, I tried my best to make sure what I describe is 100% correct, and I think I nailed the problem. Mojang sees every singly bug report, right? My hopes are that this is an easy fix and might be fixed in 1.5. 🙂

bugi74

I took a look at the source code for this, and at first it seemed somewhat easy to search the nearby area for "best spot" and move the hut a bit when needed. However, for two reasons this was not a solution after all.

1. The higher level code is designed completely on the assumption that any such "small" structure (hut, temples) made is either made at its nominal location or not at all. (And the higher level code makes that test of existence in a quite simple way, only checking that the exact nominal location (if a size of block) is of the suitable biome. So it is enough that there is e.g. just one block of swamp at spot of witch hut, even though the rest of the hut would be forest/river/whatnot.)

2. When creating a chunk, possible structures in it need to be known somewhat soon; if a structure would be shifted a lot, the structure generator would need to scan for possibly quite a large extra range for the nominal generation spots (from where the structure would be shifted to the nearer chunk). I guess this is done for caves, mineshafts and villages, though, but sounds wasteful to do the same for a non-continuous relatively small structure.

So, as this requires a bit more extensive design changes, I leave this fix to the people who are paid for it 🙂

The higher level code should ask the specific generator first about what to put in a potential spot (or if nothing at all); such specific generator has the knowledge about what biomes can have which structures and can also delegate more accurate checks to the specific structure. E.g. temples do not have to be as strict about the environment as they do not spawn specific mobs, and are "old" enough for it to be more natural for them to be partially in the wrong biome. However witch huts are "inhabited", so the witch would probably only make them fully in swamp (so it can actually live/spawn in its home), and thus the specific generator code should probably check that high enough share of the location is of suitable biome, and not just the one block.

The latter change will reduce in some cases witch hut numbers quite a lot; for example, my current favorite world has 3 huts in range of less than 2000 blocks (iirc); 2 of those would vanish as they are mostly non-swamp. So there would probably need to be some compensating changes elsewhere. Gets messy.

Perhaps easiest would be to just allow the huts as they are now (they are at least near a swamp), and loosen up a bit with the witch spawning rules.

Marius D

Another important observation I made:
If a structure like a Jungle Temple or a Desert Pyramid spawns close to a Swamp Biome, the part of it that intersects the Swamp can also spawn Witches.
My assumption, therefore, would be that the game simply goes by the rule: "If a structure (any naturally generated structure) is (partially) in a Swamp biome, Witches can spawn on the blocks the structure consist of."
Markku somewhat comfirmed this with what he said, see above.
So my suggestion for a fix of the bug we're discussing here would be to simply loosen up with the Witch spawning rules a bit, also like Markku said. Maybe make the game do something like: "If a structure is (partially) in a Swamp biome or a River biome, Witches can spawn on the blocks the structure consist of."
I checked a few seeds because that would mean if there's a River in a Jungle or Desert biome near a structure, you'd get Witches spawning in there, but the cases of that happening pretty rare, in case that's a concern.

I really hope this gets fixed for 1.5. 🙂

_zombiehunter

I always find Witch Huts on biome borders, but I never found any witch spawning there so far. It's annoying 😞

Jeff Swisher

As far as I know this isn't fixed for 1.5.1. It works with all sorts of biomes, including extreme hills. Here is a thought: Can a constructed or expanded village eventually be recognized by the Witches? If so you could manually make one over time. I am pretty sure this wouldn't work because of the tie-ins with how the fractal code designates structures and can bind spawning to the location rather than the structure. This is why Wither Skeletons and Blazes can show up in Nethers generated before Nether Fortresses were added. (I am also still trying to figure out how the search function of the bug tracker often skips things.)

Ezekiel

Is this still a concern in the current Minecraft version? If so, please update the affected versions in order to best aid Mojang ensuring bugs are still valid in the latest releases/pre-releases.

Marcin Gil

Nothing has changed, on 1.6.1 witches still do not spawn. On my map all huts do not spawn witches because they are on water.

Marius D

Confirmed. And yes, this is still a concern in the current Minecraft version, as you can see by my list of affected Snapshots, Pre-Releases and Full Releases. I kept track of this bug during the development of 1.5 and now 1.6(.1). I added almost every snapshot that came out once I saw that this bug still was not fixed. I'm starting to think this bug has very low priority for Mojang, regardless of this ticket having a very detailed description and being almost half a year old now.

Jeff Swisher

Being over land or water is irrelevant. Proximity to other biomes seems to be the only thing that matters. Just having part of the structure on the same chunk as another biome is enough to cause problems. This seems to have a hair-trigger for denying you Witch fights. I found one that works and it is in the middle of the water with no other biome types touching the chunk it's in.

Marius D

I don't think this has anything to do with chunks and chunk borders.
Witches can only spawn in the 7 x 9 area of the hut itself (in the full height of the hut). As soon as any block in this 7 x 9 area is not within a swamp biome, Witches won't spawn on it, but any other normal hostile mobs will. The pictures I attached to this ticket show very well which parts of the Witch hut are unable to spawn Witches at all (red) and which will spawn Witches (green).

Matthew Campbell

I have found the other biomes could interfere with the hut generation, making most of the floor missing. The seed I have used is -4037391646054372363 and the coordinates are 132, 227. I attached a couple of screenshots of the hut and the biomes surrounding it.

Marius D

Jago, I think what you contributed has nothing to do with the bug described here, but is instead a different one: Your screenshots show a world generation issue where a Witch Hut is partially "overwritten" by a small lake (those also generate underground sometimes), resulting in the Witch Hut being incomplete. The same can happen when for example an Abandoned Mineshaft intersects a Dungeon, deleting the Dungeons chests and / or part of the Mossy Cobblestone it consist of.
You should consider opening a new ticket for this bug.

bugi74

No need to open a new ticket for that, there are already several..

Mojang has decided "Won't fix" for that particular issue. See MC-610.

It is because of a kinky/quirky interplay of the order in which various world features are generated and the order in which chunks are generated (latter affected by how player moves etc.).

galaxy_2alex

Is this still a concern in the current Minecraft version? If so, please update the affected versions in order to best aid Mojang ensuring bugs are still valid in the latest releases/pre-releases. If this has been done, we can reopen the issue.

Keep in mind that the "Resolved"-Status on this ticket just means "Answered", and that we are waiting for further information on whether this issue still exists or not. We will reopen it as soon as the requested information has been deliviered.

user-f2760

No response for over a year.

Marius D

(Unassigned)

Community Consensus

mob, world

Minecraft 1.4.6, Minecraft 1.4.7, Snapshot 13w02a, Snapshot 13w02b, Snapshot 13w06a, ..., Minecraft 13w36b, Minecraft 13w37a, Minecraft 13w37b, Minecraft 13w39a, Minecraft 13w39b

Retrieved