Author Topic: When Creating Custom Maps  (Read 1544 times)

BLOODWOLF

  • Warrant Officer
  • *
  • Posts: 695
When Creating Custom Maps
« on: 13 April 2017, 11:47:10 »
This is not direct at any one person, we have a few boards that fail the validator so, am going to explain the tilesets and what MegaMek needs to create an image on the board and what is considered illegal to minimize some of our problems.  Also am going to explain the tilesets which is what MM looks at when matching a terrain on the board to its correct image.

Atmospheric Tileset
Quote
# suggested hex tileset
#
# format is:
# base/super <elevation> <terrains> <theme> <image>

Example: super * "woods:1" "snow" "snow/snow_lf.png"

-Super images will draw OVER base images and many times multiple super images can be drawn into one hex but, only one base image is allowed per hex.

-* is the elevation value where * means any elevation

-"woods:1" is the terrain.  MM only recognizes woods:1, 2, and 3 for woods terrain. 1 is light, 2 is heavy, and 3 is ultra heavy.  There is no image defined in the tilesets or the rules for woods:0 or 4+ Megamek will have no idea what to do if you add an invalid woods terrain on the board that doesnt have an image nor any rules defined for it in the code.

-"snow" is the theme.  So when you change your tileset theme to snow these snow themed woods will be used instead of the normal green woods:1 and 2.  The drawing order in the tilesets are important which is why the themed woods are written above the default no theme woods.
Quote
super * "woods:1" "tropical" "jungle/light_jungle1.png;jungle/light_jungle2.png;jungle/light_jungle3.png;jungle/light_jungle4.png"
super * "woods:2" "tropical" "jungle/heavy_jungle1.png;jungle/heavy_jungle2.png;jungle/heavy_jungle3.png"
super * "woods:3" "tropical" "jungle/ultra_heavy_jungle1.png"

super * "woods:1" "snow" "snow/snow_lf.png"
super * "woods:2" "snow" "snow/snow_hf.png"

super * "woods:1" "volcano" "snow/snow_lf.png"
super * "woods:2" "volcano" "snow/snow_hf.png"

super * "woods:1;fluff:12" "" "boring/orchard.png"
super * "woods:1" "" "boring/lf0.gif;boring/lf1.gif;boring/lf2.gif;boring/lf3.gif;boring/lf4.gif"
#hf2.gif has been taken out because it looks too much like ultra heavy
super * "woods:2" "" "boring/hf0.gif;boring/hf1.gif;boring/hf3.gif"
super * "woods:3" "" "boring/uhf.gif"

-base images always draw under super images.  But the descending order that the super or base images are written in the tileset also determines with super or base images draw over other super/base images.
Quote
super * "water:*" "" "transparent/blue_water_4.png"

super * "rapids:1" "" "transparent/rapids.png"
super * "rapids:2" "" "transparent/rapids.png"

super * "ice:1" "" "transparent/ice.png"

-The terrain written under the terrain above it will draw OVER that terrain.  So here rapids will always draw over any water depth hex (*).  And Ice will draw over all water and all rapids terrains because it is written under those super images.

-"snow/snow_lf.png" Lists the address for the image to be used for the specified terrain.  The folder starts in data/images/hexes which does not need to be defined.  In the hexes folder you then do need to define what folder of hexes the image is in and then the image.  The "woods:1" "snow" trees are in the snow folder inside of data/images/hexes/ and then points to snow_lf.png.  Pay attention to whether the image is a .png or gif or jpeg.  The program will only do what it is told.

-If you want MM to randomly choose between multiple images for the same terrain you separate the defined images with a ;
Example: super * "woods:1" "" "boring/lf0.gif;boring/lf1.gif;boring/lf2.gif;boring/lf3.gif;boring/lf4.gif"

-You have to redefine the folder inside hexes that the image is in and then the name of the image after each ; and then enclose the whole image portion in " ".

-To save space the tilesets also can import other tilesets into themselves.  These other tilesets will be sets that define images for buildings as an example that will be used by all tilesets to cut down on repetition.
Quote
include "StandardIncludes/StandardThemes.tileinc"

include "StandardIncludes/StandardSpace.tileinc"

-These includes lines are written into the tileset specifically to maintain correct drawing order (height-wise).  And you must define the folder inside hexes where these .tileInc's are located.
Quote
# The Standard MM themes

include "mars/ThemeMars.tileinc"
include "lunar/ThemeLunar.tileinc"
include "volcano/ThemeVolcano.tileinc"
include "grass/ThemeGrass.tileinc"
include "snow/ThemeSnow.tileinc"
include "jungle/ThemeTropical.tileinc"
include "volcano/ThemeVolcano.tileinc"

-StandardThemes.tileinc includes more tilesets that contain the unique images for all of MM's themes like grass, snow, jungle, volcano, etc. These Theme.tileinc sets only define the base images(the ground) for the different map themes.  The actual tilesets include all the theme-specific super images like woods for example.

Quote
include "StandardIncludes/BuildingsNonSClassArmor.tileinc"
include "StandardIncludes/BuildingsNonSClassNoArmor.tileinc"
include "StandardIncludes/BuildingsSClassArmor.tileinc"
include "StandardIncludes/BuildingsSClassNoArmor.tileinc"
-These are your buildings .tileinc lines in the tilesets and define every image for every LEGAL combination of buildings that you can create in MM.

Quote
super * "building:1;bldg_elev:*;bldg_cf:*;fluff:3"     "" "singlehex/light_3.gif"
super * "building:1;bldg_elev:*;bldg_cf:*;fluff:1"     "" "singlehex/light_5.gif"
super * "building:1;bldg_elev:1;bldg_cf:*" "" "singlehex/light_6.gif"
super * "building:1;bldg_elev:2;bldg_cf:*" "" "singlehex/light_1.gif"
super * "building:1;bldg_elev:3;bldg_cf:*" "" "singlehex/light_4.gif"
super * "building:1;bldg_elev:4;bldg_cf:*" "" "singlehex/light_2.gif"
-Buildings are always supers they draw over things.
-super * means the elevation of the HEX will be this image that follows.  A buildings image should not change depending on the terrain elevation that it sits in so always leave it at super * (* means any).
-MegaMek requires any building to have a minimum defined of building:1-4, bldg_elev:1-*, and bldg_cf:1-*.  Or MegaMek will not draw a correct image for the building if you do not have at least those three values defined in the board editor.  All MM does is use the tilesets like a chart, it sees that it has a building:1; bldg_elev:2, bldg_cf: 45, looks in the tileset to match those values and then draws the image the tileset tells it to.

Quote
super * "building:1:00;bldg_elev:*;bldg_cf:*" "" "light/light_roof00.gif"
super * "building:1:01;bldg_elev:*;bldg_cf:*" "" "light/light_roof01.gif"
super * "building:1:02;bldg_elev:*;bldg_cf:*" "" "light/light_roof02.gif"
...
-These are the images used to when MM links buildings together.  The building:1:01; is when you define exits(orientation) for terrain and these lines then tell MM what image to use.  You never need to define exits (....:1:01;) for elevation or cf, there is no reason for that and no where in the tilesets are there specific images define for a building that has a : after it elevation or it's cf value.
« Last Edit: 13 April 2017, 11:59:43 by BLOODWOLF »

 

Register