Index: binaries/data/mods/public/maps/random/african_plains.js =================================================================== --- binaries/data/mods/public/maps/random/african_plains.js +++ binaries/data/mods/public/maps/random/african_plains.js @@ -36,7 +36,7 @@ var aBush = "actor|props/flora/bush_medit_sm_dry.xml"; var aRock = "actor|geology/stone_savanna_med.xml"; -const pForest = [tForestFloor + TERRAIN_SEPARATOR + oPalm, tForestFloor]; +const pForest = [{"texture": tForestFloor, "entity": oPalm}, tForestFloor]; var heightSeaGround = -5; var heightLand = 2; Index: binaries/data/mods/public/maps/random/rmgen/library.js =================================================================== --- binaries/data/mods/public/maps/random/rmgen/library.js +++ binaries/data/mods/public/maps/random/rmgen/library.js @@ -17,7 +17,6 @@ */ Engine.LoadLibrary("rmgen/painter"); -const TERRAIN_SEPARATOR = "|"; const SEA_LEVEL = 20.0; const HEIGHT_UNITS_PER_METRE = 92; @@ -191,9 +190,10 @@ function createTerrain(terrain) { - return typeof terrain == "string" ? - new SimpleTerrain(...terrain.split(TERRAIN_SEPARATOR)) : - new RandomTerrain(terrain.map(t => createTerrain(t))); + if (typeof terrain == "object") + return Array.isArray(terrain) ? new RandomTerrain(terrain.map(t => createTerrain(t))) : new SimpleTerrain(terrain.texture, terrain.entity); + else if (typeof terrain == "string") + return new SimpleTerrain(terrain); } /** Index: binaries/data/mods/public/maps/random/rmgen/painter/TerrainPainter.js =================================================================== --- binaries/data/mods/public/maps/random/rmgen/painter/TerrainPainter.js +++ binaries/data/mods/public/maps/random/rmgen/painter/TerrainPainter.js @@ -1,6 +1,6 @@ /** * The TerrainPainter draws a given terrain texture over the given area. - * When used with TERRAIN_SEPARATOR, an entity is placed on each tile. + * When used as an object {"texture": texture, "entity": entity}, an entity is placed on each tile. */ function TerrainPainter(terrain) {