ItemEmptyMap line 29
mapdata.dimension = (byte)par2World.provider.dimensionId;
A map's saved dimension ID is downcast from an int, to a byte, then saved back to an int. For no apparent reason, which causes unwanted effects when mods are installed.
Basically this limits maps to working in no more than 256 dimensions.
I have attached some screenshots (using Mystcraft to get a dimension 256). Both maps are treated as being overworld maps even though I created the one in the Mystcraft dimension.
(I attempted to search this issue, but "map" shows up in basically every crash report ever, which makes it very difficult).
Attachments
Comments 11
1) If vanilla wants the dimension ID to be a byte, then they can make it a byte, they chose not to, but they're downcasting anyway.
2) If vanilla wants to support mods (that whole API thing, yeah?) then they are going to have this problem eventually.
3) Just because it can't come up with the content vanilla supplies doesn't mean it's not a bug.
As I read this, I realize: I have never made a map in the nether. Never even thought of it.
Is a java byte an unsigned 0-255 integer? That's what I think of when I think of a byte; when I think "char" I think of -128 to +127.
If this is an unsigned, 0 to 255 integer, then what happens if you make a map in -1 / the nether?
Apparently magic. It renders out what looks like noise, but this does not occur in dim255. Which leads me to believe that (not-empty) maps are treated specially in the nether. Which would not surprise me in the slightest.
(I did not attempt to locate the code that handles this, just verified that -1 != 255)
3) Just because it can't come up with the content vanilla supplies doesn't mean it's not a bug.
Vanilla is vanilla, modded is modded. Mod API coming soon means nothing, it is not here yet, nor is it meant to fix the problems found with mods (which this would be), only make them work better with vanilla.
There are only three dimensions in vanilla, only the overworld can be mapped. This is intended (The End is too small and the Nether has a ceiling). New dimensions cannot be made without the use of mods, so I'd say invalid.
You can make a map in the Nether, it only shows the Bedrock on the top.
As long as you can't reproduce it in Vanilla Minecraft, what you simply can't, this is Invalid.
then you are fundamentally saying that a key point of the game will just not work in other dimensions
Correct.
That's like saying that a coal block can be placed in the overworld, or the nether, or the end, but any mod dimension where coal blocks won't stay on the ground, well, that's a mod, so that doesn't count.
Two for two, Mojang doesn't control mods. It's the mod's job to fix it's bugs. If a block or item doesn't work in a mod's dimension, that means it's the mod's fault.
You use mods, therefore invalid. It doesn't matter if "The cast to a byte does nothing to improve vanilla", it is how vanilla was designed.
Ask the mod creators to fix it. Mojang is not responsible for mods, and the bug tracker here is only for vanilla Minecraft, we cannot fix mod problems here. This problem cannot be replicated without mods, therefore it is a mod problem.
It's not a mod's bug. It's a bug in the vanilla item that makes the mod incompatible with Vanilla. Fixing it would require edits to Vanilla's ItemEmptyMap class, which is not the mod's responsibility.
"...when mods are installed..."
This is a bug tracker for Vanilla Minecraft.