neocturne/MinedMap

Nether support

saadbruno opened this issue · 3 comments

Recently I started experimenting with generating maps for other dimensions using MinedMap. It works perfectly and the software is able to generate the tiles for each dimension! I was surprised to see it.

Here's an example of a The End map:
image

The one issue tho, of course, is the Nether and the bedrock roof. Here's an example of what it looks like when generated:
image

You can see my gold farm, and the light grey area is bedrock, the dark grey area are chunks that have not been generated yet.

I was wondering how we could solve this problem, and be able to generate Nether maps.
Of course already being able to see which chunks have been explored, and which chunks hasn't is already a huge thing, especially for SMP servers, but I was thinking about a few options here. None of them are going to be perfect, but they should at least be something to work with.

The Nether

I was thinking if it would be possible to add a flag where we can manually select which map height we wanna start generating the map tiles from.
So, for example, if we ran MinedMap -h 60 /path/to/world /path/to/export, MinedMap would ignore any blocks above Y 60, and generate a map tile from anything that is Y 60 or below.

I think this would be a nice way to give users control of how they wanna generate Nether maps, considering every Nether is a bit different.

The other upside to this would be for other dimensions as well. Let's say I have a tunnel system underground, in the overworld, and I wanna generate a map of it. I should be able to use this option to do that.

--

Another option I can think of is to detect the first air block below the nether roof, and then ignore anything that's above it. I think it would be a little bit more complicated to code, but would be a bit more automated. and wouldn't require a special flag.

--

Overall I prefer option 1, but I'm open to hear other thoughts, and brainstorm some ideas.
I'm also open to trying implementing this function within MinedMap, I would just need some pointers where to start and so on.

Thanks a bunch for this neat piece of software!

EDIT:

So, i tried digging through the code, and i changed this line
https://github.com/NeoRaider/MinedMap/blob/5263538a29c9c6030ced078a509dff48f9c4451f/src/World/Chunk.cpp#L133

to

	int maxY = sections.size() -1;
	if (maxY > 4)
		maxY = 4;	

	for (ssize_t Y = maxY; Y >= 0; Y--) {

Of course this is hardcoded and whatnot, but I just wanted to see what it would look like. And it looks pretty neat:
image

Wow, that's looking amazing! I haven't given nether maps much thought after some initial attempts when I started writing MinedMap, but I like the idea of looking for the first air block (or the first transparent block), so that no configuration is necessary.

I run a multiplayer server where most "travel tunnels" in the Nether have been dug at a similar elevation. A command line switch to set a starting level (option 1 above) would work best in that case, since we are interested in what happens at mid-level, rather than closer to the roof.

Perhaps this could be integrated into the drop-down menu as well?