public void writeToNBTv2(AtlasData atlasdata, NBTTagCompound compound) {
compound.setInteger(AtlasData.TAG_VERSION, 2);
NBTTagList dimensionMapList = new NBTTagList();
int dimension = 0;
int key;
Iterator<Integer> dimensionEntryKey = atlasdata.getVisitedDimensions().iterator();
for (dimension = 0; dimension<atlasdata.getVisitedDimensions().size(); dimension++) {
NBTTagCompound dimTag = new NBTTagCompound();
key = dimensionEntryKey.next().intValue();
dimTag.setInteger(AtlasData.TAG_DIMENSION_ID, key);
DimensionData dimData = atlasdata.getDimensionData(key);
Map<ShortVec2, Tile> seenChunks = dimData.getSeenChunks();
int[] intArray = new int[seenChunks.size()*3];
int i = 0;
for (Entry<ShortVec2, Tile> entry : seenChunks.entrySet()) {
intArray[i++] = entry.getKey().x;
intArray[i++] = entry.getKey().y;
intArray[i++] = entry.getValue().biomeID;
}
dimTag.setIntArray(AtlasData.TAG_VISITED_CHUNKS, intArray);
dimTag.setInteger(AtlasData.TAG_BROWSING_X, dimData.getBrowsingX());
dimTag.setInteger(AtlasData.TAG_BROWSING_Y, dimData.getBrowsingY());
dimTag.setInteger(AtlasData.TAG_BROWSING_ZOOM, (int)Math.round(dimData.getBrowsingZoom() * BrowsingPositionPacket.ZOOM_SCALE_FACTOR));
dimensionMapList.appendTag(dimTag);
}
compound.setTag(AtlasData.TAG_DIMENSION_MAP_LIST, dimensionMapList);
}