Skip to content

rushgun/World-of-MapCraft

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

World-of-MapCraft - World of Warcraft Slippy Maps

To see the maps in action: http://worldofmapcraft.com/

For an explanation of how it all works: http://www.iamcal.com/world-of-mapcraft/

Generating the map tiles

This code will help you to generate your own set of map tiles. It wont work immediately out of the box - there's some fiddling involved. There are many more maps included in WoW than are used on the website - try extracting some different ones!

Preparation

  • Make sure you have at least 10 GB of space!
  • Install ImageMagick
  • Install MPQExtractor & BLPConverter
  • Both of these tools require cmake to build
  • Create some folders:
  • mpqs - base MPQ files will go here
  • blps - extracedt BLP files will go here
  • pngs - PNGs converted from BLPs will go here
  • maps - Preview maps will go here
  • built - Final built tilesets will go here
  • It is very helpful for these folders to be accessible in a browser.
  • Modify build/config.php with the paths and URLs to these folders
  • Copy MPQ files from your WoW install, specifically:
  • art.MPQ
  • world.MPQ
  • wow-update-nnnnn.MPQ (multiple files)
  • wow-update-base-nnnnn.MPQ (multiple files)
  • You'll find them all inside the Data subfolder of your WoW installation

Generation

  • Extract the BLP and WMO files from the MPQs:

  • ./extract.sh is a good starting point

  • This will take a few minutes!

  • Run build/0_rename.php to fix path casing.

  • You don't need to do this if you have the -c option in MPQExtractor

  • Run build/1_convert.php to convert all of the BLP files to PNGs

  • This takes a while!

  • You should now have lots of sub-folders in the pngs folder

  • Run build/2_combine.php to make HTML previews or all the maps

  • You can now browse the maps subfolder and view everything you extracted

  • The files ending --16 use lower-resolution files so are good for quick previews

  • Once you know the tiles you want, modify the code at the top of build/3_build.php

  • The defaults are set for patch 4.3, extracting a few different maps - you may want more or less

  • They include combining multiple maps and patching over unused parts of tiles

  • This script builds the most-zoomed level of tiles for the final maps

  • The background colors specified here need to match build/colors.php

  • Run build/4_recombine.php to preview your creaed tilesets

  • The $size setting at the top lets you change the preview output size

  • Choose 16 or smaller to load the quick preview images

  • Run build/5_resize.php to build the other zoom levels

  • This will take a long time for big maps

  • You should now be able to view your slippy maps!

  • Modify www/index.php to point to the tiles

  • Also add the zoom levels & dimensions here

  • If you want to put the tiles on S3, use build/6_sync.php

  • To compress the PNGs for faster serving, use build/7_crush.php

  • If you want to make WMO maps, you'll need some extra tools:

  • build/wmo_build.php to assemble a flat image from a WMO group

  • build/wmo_assemble.php to assemble multiple flats into a tileset

  • From there, you can use build/5_resize.php to build the other zoom levels

Changes in MoP

  • art.MPQ has been renamed textures.MPQ
  • Expansion minimap textures have been moved to exspansionX.MPQ files
  • world2.MPQ is gone, with contents moved into a bunch of new MPQs
  • All patch MPQs have no prefix (this changed in cata in March 2012)

To find new WMOs to build and preview for MoP, I used the following commands:

find dungeon | grep pa_ | grep .blp | perl -pi -e's!_\d\d\d_\d\d_\d\d.blp!!' | \
    sort | uniq | perl -pi -e's/(.*)\/(.*?)$/$1!!$2/' >> wmos.txt
find pandaria | grep .blp | perl -pi -e's!_\d\d\d_\d\d_\d\d.blp!!' | \
    sort | uniq | perl -pi -e's/(.*)\/(.*?)$/$1!!$2/' >> wmos.txt

This found all WMO groups under either the pandaria folder, or inside the dungeons folder with a prefix of pa_. I then used this list to make a bunch of calls to build_wmo_map() in wmo_build.php.

About

World of Warcraft Slippy Maps

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • PHP 78.4%
  • JavaScript 19.1%
  • Shell 1.3%
  • CSS 1.1%
  • ApacheConf 0.1%