From f88b5be079a987ed92934c873e8adcba4b018c65 Mon Sep 17 00:00:00 2001 From: Spahbod Date: Fri, 8 Nov 2013 08:02:32 +0000 Subject: [PATCH] Increasing the generation speed of the maps: Islands, Lake. This was SVN commit r14108. --- .../data/mods/public/maps/random/islands.js | 55 +++++------ binaries/data/mods/public/maps/random/lake.js | 93 +++++++++---------- .../mods/public/maps/random/rmgen/placer.js | 15 ++- .../public/maps/random/rmgen/randombiome.js | 2 +- .../public/maps/random/rmgen/tileclass.js | 4 +- 5 files changed, 83 insertions(+), 86 deletions(-) diff --git a/binaries/data/mods/public/maps/random/islands.js b/binaries/data/mods/public/maps/random/islands.js index ee538ff10e..afc423c2c8 100644 --- a/binaries/data/mods/public/maps/random/islands.js +++ b/binaries/data/mods/public/maps/random/islands.js @@ -1,6 +1,5 @@ RMS.LoadLibrary("rmgen"); -var nh = new Date(); -var ti = nh.getTime(); + TILE_CENTERED_HEIGHT_MAP = true; //random terrain textures var random_terrain = randomizeBiome(); @@ -346,7 +345,7 @@ createAreas( placer, [terrainPainter, elevationPainter, paintClass(clHill)], [avoidClasses(clPlayer, 2, clHill, 15), stayClasses(clLand, 0)], - scaleByMapSize(8, 25) + scaleByMapSize(4, 13) ); @@ -355,13 +354,13 @@ if (random_terrain == 6) { var MIN_TREES = 200; var MAX_TREES = 1250; - var P_FOREST = 0.02; + var P_FOREST = 0; } else if (random_terrain == 7) { var MIN_TREES = 1000; var MAX_TREES = 6000; - var P_FOREST = 0.6; + var P_FOREST = 0.52; } else { @@ -380,40 +379,36 @@ var types = [ [[tForestFloor1, tMainTerrain, pForest2], [tForestFloor1, pForest2]] ]; // some variation -if (random_terrain == 6) +if (random_terrain != 6) { - var size = numForest / (0.5 * scaleByMapSize(2,8) * numPlayers); -} -else -{ - var size = numForest / (scaleByMapSize(2,8) * numPlayers); -} -var num = floor(size / types.length); -for (var i = 0; i < types.length; ++i) -{ - placer = new ClumpPlacer(numForest / num, 0.1, 0.1, 1); - painter = new LayeredPainter( - types[i], // terrains - [2] // widths + var size = numForest / (scaleByMapSize(3,6) * numPlayers); + var num = floor(size / types.length); + for (var i = 0; i < types.length; ++i) + { + placer = new ChainPlacer(1, floor(scaleByMapSize(3, 5)), numForest / (num * floor(scaleByMapSize(2,5))), 0.5); + painter = new LayeredPainter( + types[i], // terrains + [2] // widths + ); + createAreas( + placer, + [painter, paintClass(clForest)], + [avoidClasses(clPlayer, 0, clForest, 10, clHill, 0), stayClasses(clLand, 6)], + num ); - createAreas( - placer, - [painter, paintClass(clForest)], - [avoidClasses(clPlayer, 0, clForest, 10, clHill, 0), stayClasses(clLand, 6)], - num - ); + } } RMS.SetProgress(50); // create dirt patches log("Creating dirt patches..."); -var sizes = [scaleByMapSize(3, 48), scaleByMapSize(5, 84), scaleByMapSize(8, 128)]; +var sizes = [scaleByMapSize(3, 6), scaleByMapSize(5, 10), scaleByMapSize(8, 21)]; var numb = 1; if (random_terrain == 6) numb = 3 for (var i = 0; i < sizes.length; i++) { - placer = new ClumpPlacer(sizes[i], 0.3, 0.06, 0.5); + placer = new ChainPlacer(1, floor(scaleByMapSize(3, 5)), sizes[i], 0.5); painter = new LayeredPainter( [[tMainTerrain,tTier1Terrain],[tTier1Terrain,tTier2Terrain], [tTier2Terrain,tTier3Terrain]], // terrains [1,1] // widths @@ -428,10 +423,10 @@ for (var i = 0; i < sizes.length; i++) // create grass patches log("Creating grass patches..."); -var sizes = [scaleByMapSize(2, 32), scaleByMapSize(3, 48), scaleByMapSize(5, 80)]; +var sizes = [scaleByMapSize(2, 4), scaleByMapSize(3, 7), scaleByMapSize(5, 15)]; for (var i = 0; i < sizes.length; i++) { - placer = new ClumpPlacer(sizes[i], 0.3, 0.06, 0.5); + placer = new ChainPlacer(1, floor(scaleByMapSize(3, 5)), sizes[i], 0.5); painter = new TerrainPainter(tTier4Terrain); createAreas( placer, @@ -612,7 +607,5 @@ else if (random_terrain ==3){ setSunRotation(randFloat(0, TWO_PI)); setSunElevation(randFloat(PI/ 5, PI / 3)); -nh = new Date(); -log (nh.getTime() - ti); // Export map data ExportMap(); diff --git a/binaries/data/mods/public/maps/random/lake.js b/binaries/data/mods/public/maps/random/lake.js index 37c6e4b3b1..8064b25fa3 100644 --- a/binaries/data/mods/public/maps/random/lake.js +++ b/binaries/data/mods/public/maps/random/lake.js @@ -124,12 +124,6 @@ for (var i = 0; i < numPlayers; i++) addToClass(ix-5, iz, clPlayer); addToClass(ix, iz-5, clPlayer); - // create the city patch - var cityRadius = radius/3; - var placer = new ClumpPlacer(PI*cityRadius*cityRadius, 0.6, 0.3, 10, ix, iz); - var painter = new LayeredPainter([tRoadWild, tRoad], [1]); - createArea(placer, painter, null); - // create starting units placeCivDefaultEntities(fx, fz, id, BUILDING_ANGlE); @@ -221,7 +215,7 @@ iz = round(fz); const lSize = sqrt(sqrt(sqrt(scaleByMapSize(1, 6)))); -var placer = new ClumpPlacer(mapArea * 0.09 * lSize, 0.7, 0.1, 10, ix, iz); +var placer = new ChainPlacer(2, floor(scaleByMapSize(5, 16)), floor(scaleByMapSize(35, 200)), 1, ix, iz, 0, [floor(mapSize * 0.17 * lSize)]); var terrainPainter = new LayeredPainter( [tShore, tWater, tWater, tWater], // terrains [1, 4, 2] // widths @@ -233,22 +227,11 @@ var elevationPainter = new SmoothElevationPainter( ); createArea(placer, [terrainPainter, elevationPainter, paintClass(clWater)], avoidClasses(clPlayer, 20)); -// create shore jaggedness -log("Creating shore jaggedness..."); -placer = new ClumpPlacer(scaleByMapSize(20, 150), 0.2, 0.1, 1); -terrainPainter = new LayeredPainter( - [tCliff, tHill], // terrains - [2] // widths -); -elevationPainter = new SmoothElevationPainter(ELEVATION_SET, -5, 4); -createAreas( - placer, - [terrainPainter, elevationPainter, paintClass(clWater)], - [avoidClasses(clPlayer, 20), borderClasses(clWater, 6, 4)], - scaleByMapSize(7, 130) * 2, 150 -); -placer = new ClumpPlacer(scaleByMapSize(15, 80), 0.2, 0.1, 1); +// create more shore jaggedness +log("Creating more shore jaggedness..."); + +placer = new ChainPlacer(2, floor(scaleByMapSize(4, 6)), 3, 1); terrainPainter = new LayeredPainter( [tCliff, tHill], // terrains [2] // widths @@ -261,12 +244,27 @@ createAreas( scaleByMapSize(12, 130) * 2, 150 ); + paintTerrainBasedOnHeight(2.4, 3.4, 3, tMainTerrain); paintTerrainBasedOnHeight(1, 2.4, 0, tShore); paintTerrainBasedOnHeight(-8, 1, 2, tWater); paintTileClassBasedOnHeight(-6, 0, 1, clWater) +for (var i = 0; i < numPlayers; ++i) +{ + var fx = fractionToTiles(playerX[i]); + var fz = fractionToTiles(playerZ[i]); + var ix = round(fx); + var iz = round(fz); + + // create the city patch + var cityRadius = radius/3; + var placer = new ClumpPlacer(PI*cityRadius*cityRadius, 0.6, 0.3, 10, ix, iz); + var painter = new LayeredPainter([tRoadWild, tRoad], [1]); + createArea(placer, painter, null); +} + // create bumps log("Creating bumps..."); placer = new ClumpPlacer(scaleByMapSize(20, 50), 0.3, 0.06, 1); @@ -280,7 +278,7 @@ createAreas( // create hills log("Creating hills..."); -placer = new ClumpPlacer(scaleByMapSize(20, 150), 0.2, 0.1, 1); +placer = new ChainPlacer(1, floor(scaleByMapSize(4, 6)), floor(scaleByMapSize(16, 40)), 1); terrainPainter = new LayeredPainter( [tMainTerrain, tCliff, tHill], // terrains [1, 2] // widths @@ -299,13 +297,13 @@ if (random_terrain == 6) { var MIN_TREES = 200; var MAX_TREES = 1250; - var P_FOREST = 0.02; + var P_FOREST = 0; } else if (random_terrain == 7) { var MIN_TREES = 1000; var MAX_TREES = 6000; - var P_FOREST = 0.6; + var P_FOREST = 0.52; } else { @@ -324,38 +322,33 @@ var types = [ [[tForestFloor1, tMainTerrain, pForest2], [tForestFloor1, pForest2]] ]; // some variation -if (random_terrain == 6) +if (random_terrain != 6) { - var size = numForest / (0.5 * scaleByMapSize(2,8) * numPlayers); -} -else -{ - var size = numForest / (scaleByMapSize(2,8) * numPlayers); -} -var num = floor(size / types.length); -for (var i = 0; i < types.length; ++i) -{ - placer = new ClumpPlacer(numForest / num, 0.1, 0.1, 1); - painter = new LayeredPainter( - types[i], // terrains - [2] // widths + var size = numForest / (scaleByMapSize(3,6) * numPlayers); + var num = floor(size / types.length); + for (var i = 0; i < types.length; ++i) + { + placer = new ChainPlacer(1, floor(scaleByMapSize(3, 5)), numForest / (num * floor(scaleByMapSize(2,5))), 0.5); + painter = new LayeredPainter( + types[i], // terrains + [2] // widths + ); + createAreas( + placer, + [painter, paintClass(clForest)], + avoidClasses(clPlayer, 20, clForest, 10, clHill, 0, clWater, 2), + num ); - createAreas( - placer, - [painter, paintClass(clForest)], - avoidClasses(clPlayer, 20, clForest, 10, clHill, 0, clWater, 2), - num - ); + } } - RMS.SetProgress(50); // create dirt patches log("Creating dirt patches..."); -var sizes = [scaleByMapSize(3, 48), scaleByMapSize(5, 84), scaleByMapSize(8, 128)]; +var sizes = [scaleByMapSize(3, 6), scaleByMapSize(5, 10), scaleByMapSize(8, 21)]; for (var i = 0; i < sizes.length; i++) { - placer = new ClumpPlacer(sizes[i], 0.3, 0.06, 0.5); + placer = new ChainPlacer(1, floor(scaleByMapSize(3, 5)), sizes[i], 0.5); painter = new LayeredPainter( [[tMainTerrain,tTier1Terrain],[tTier1Terrain,tTier2Terrain], [tTier2Terrain,tTier3Terrain]], // terrains [1,1] // widths @@ -370,10 +363,10 @@ for (var i = 0; i < sizes.length; i++) // create grass patches log("Creating grass patches..."); -var sizes = [scaleByMapSize(2, 32), scaleByMapSize(3, 48), scaleByMapSize(5, 80)]; +var sizes = [scaleByMapSize(2, 4), scaleByMapSize(3, 7), scaleByMapSize(5, 15)]; for (var i = 0; i < sizes.length; i++) { - placer = new ClumpPlacer(sizes[i], 0.3, 0.06, 0.5); + placer = new ChainPlacer(1, floor(scaleByMapSize(3, 5)), sizes[i], 0.5); painter = new TerrainPainter(tTie4Terrain); createAreas( placer, diff --git a/binaries/data/mods/public/maps/random/rmgen/placer.js b/binaries/data/mods/public/maps/random/rmgen/placer.js index 7108958e59..6a0237c595 100644 --- a/binaries/data/mods/public/maps/random/rmgen/placer.js +++ b/binaries/data/mods/public/maps/random/rmgen/placer.js @@ -130,10 +130,11 @@ ClumpPlacer.prototype.place = function(constraint) // failfraction: Percentage of place attempts allowed to fail (optional) // x, z: Tile coordinates of placer center (optional) // fcc: Farthest circle center (optional) +// q: a list containing numbers. each time if the list still contains values, pops one from the end and uses it as the radius (optional) // ///////////////////////////////////////////////////////////////////////////////////////// -function ChainPlacer(minRadius, maxRadius, numCircles, failFraction, x, z, fcc) +function ChainPlacer(minRadius, maxRadius, numCircles, failFraction, x, z, fcc, q) { this.minRadius = minRadius; this.maxRadius = maxRadius; @@ -142,6 +143,7 @@ function ChainPlacer(minRadius, maxRadius, numCircles, failFraction, x, z, fcc) this.x = (x !== undefined ? x : -1); this.z = (z !== undefined ? z : -1); this.fcc = (fcc !== undefined ? fcc : 0); + this.q = (q !== undefined ? q : []); } ChainPlacer.prototype.place = function(constraint) @@ -155,6 +157,7 @@ ChainPlacer.prototype.place = function(constraint) var retVec = []; var size = getMapSize(); var failed = 0, count = 0; + var queueEmpty = (this.q.length ? false : true); var gotRet = new Array(size); for (var i = 0; i < size; ++i) @@ -178,7 +181,15 @@ ChainPlacer.prototype.place = function(constraint) var point = edges[randInt(edges.length)]; var cx = point[0], cz = point[1]; - var radius = randInt(this.minRadius, this.maxRadius); + if (queueEmpty) + { + var radius = randInt(this.minRadius, this.maxRadius); + } + else + { + var radius = this.q.pop(); + queueEmpty = (this.q.length ? false : true); + } //log (edges); diff --git a/binaries/data/mods/public/maps/random/rmgen/randombiome.js b/binaries/data/mods/public/maps/random/rmgen/randombiome.js index 78b6898011..7ec31594fe 100644 --- a/binaries/data/mods/public/maps/random/rmgen/randombiome.js +++ b/binaries/data/mods/public/maps/random/rmgen/randombiome.js @@ -1 +1 @@ -///////////////////////////////////////////////////////////////////////////////////////////// // definitions ///////////////////////////////////////////////////////////////////////////////////////////// var biomeID = 1; var rbt1 = ["temp_grass_long_b"]; var rbt2 = "temp_forestfloor_pine"; var rbt3 = "temp_plants_bog"; var rbt4 = ["temp_cliff_a", "temp_cliff_b"]; var rbt5 = "temp_grass_d"; var rbt6 = "temp_grass_c"; var rbt7 = "temp_grass_clovers_2"; var rbt8 = ["temp_dirt_gravel", "temp_dirt_gravel_b"]; var rbt9 = ["temp_dirt_gravel", "temp_dirt_gravel_b"]; var rbt10 = "temp_road"; var rbt11 = "temp_road_overgrown"; var rbt12 = "temp_grass_plants"; var rbt13 = "temp_mud_plants"; var rbt14 = "sand_grass_25"; var rbt15 = "medit_sand_wet"; // gaia entities var rbe1 = "gaia/flora_tree_oak"; var rbe2 = "gaia/flora_tree_oak_large"; var rbe3 = "gaia/flora_tree_apple"; var rbe4 = "gaia/flora_tree_pine"; var rbe5 = "gaia/flora_tree_aleppo_pine"; var rbe6 = "gaia/flora_bush_berry"; var rbe7 = "gaia/fauna_chicken"; var rbe8 = "gaia/fauna_deer"; var rbe9 = "gaia/fauna_fish"; var rbe10 = "gaia/fauna_sheep"; var rbe11 = "gaia/geology_stonemine_medit_quarry"; var rbe12 = "gaia/geology_stone_mediterranean"; var rbe13 = "gaia/geology_metal_mediterranean_slabs"; // decorative props var rba1 = "actor|props/flora/grass_soft_large_tall.xml"; var rba2 = "actor|props/flora/grass_soft_large.xml"; var rba3 = "actor|props/flora/reeds_pond_lush_a.xml"; var rba4 = "actor|props/flora/pond_lillies_large.xml"; var rba5 = "actor|geology/stone_granite_large.xml"; var rba6 = "actor|geology/stone_granite_med.xml"; var rba7 = "actor|props/flora/bush_medit_me.xml"; var rba8 = "actor|props/flora/bush_medit_sm.xml"; var rba9 = "actor|flora/trees/oak.xml"; ///////////////////////////////////////////////////////////////////////////////////////////// // randomizeBiome: randomizes the biomeID and returns the value ///////////////////////////////////////////////////////////////////////////////////////////// function randomizeBiome() { biomeID = randInt(1,8); //temperate if (biomeID == 1){ // temperate ocean blue, a bit too deep and saturated perhaps but it looks nicer. // this assumes ocean settings, maps that aren't oceans should reset. setWaterColour(0.114, 0.192, 0.463); setWaterTint(0.255, 0.361, 0.651); setWaterReflectionTint(0.255, 0.361, 0.651); setWaterWaviness(5.5); setWaterMurkiness(0.83); setWaterReflectionTintStrength(0.05); rbt1 = ["temp_grass_long_b"]; rbt2 = "temp_forestfloor_pine"; rbt3 = "temp_plants_bog"; rbt4 = ["temp_cliff_a", "temp_cliff_b"]; rbt5 = "temp_grass_d"; rbt6 = "temp_grass_c"; rbt7 = "temp_grass_clovers_2"; rbt8 = ["temp_dirt_gravel", "temp_dirt_gravel_b"]; rbt9 = ["temp_dirt_gravel", "temp_dirt_gravel_b"]; rbt10 = "temp_road"; rbt11 = "temp_road_overgrown"; rbt12 = "temp_grass_plants"; rbt13 = "temp_mud_plants"; rbt14 = "sand_grass_25"; rbt15 = "medit_sand_wet"; // gaia entities if (randInt(1)) rbe1 = "gaia/flora_tree_oak"; else rbe1 = "gaia/flora_tree_euro_beech"; rbe2 = "gaia/flora_tree_oak_large"; rbe3 = "gaia/flora_tree_apple"; rbe4 = "gaia/flora_tree_pine"; rbe5 = "gaia/flora_tree_aleppo_pine"; rbe6 = "gaia/flora_bush_berry"; rbe7 = "gaia/fauna_chicken"; rbe8 = "gaia/fauna_deer"; rbe9 = "gaia/fauna_fish"; rbe10 = "gaia/fauna_sheep"; rbe11 = "gaia/geology_stonemine_medit_quarry"; rbe12 = "gaia/geology_stone_mediterranean"; rbe13 = "gaia/geology_metal_mediterranean_slabs"; // decorative props rba1 = "actor|props/flora/grass_soft_large_tall.xml"; rba2 = "actor|props/flora/grass_soft_large.xml"; rba3 = "actor|props/flora/reeds_pond_lush_a.xml"; rba4 = "actor|props/flora/water_lillies.xml"; rba5 = "actor|geology/stone_granite_large.xml"; rba6 = "actor|geology/stone_granite_med.xml"; rba7 = "actor|props/flora/bush_medit_me.xml"; rba8 = "actor|props/flora/bush_medit_sm.xml"; rba9 = "actor|flora/trees/oak.xml"; } //snowy else if (biomeID == 2) { setSunColour(0.550, 0.601, 0.644); // a little darker // Water is a semi-deep blue, fairly wavy, fairly murky for an ocean. // this assumes ocean settings, maps that aren't oceans should reset. setWaterColour(0.067, 0.212, 0.361); setWaterTint(0.4, 0.486, 0.765); setWaterReflectionTint(0.482, 0.824, 0.925); setWaterWaviness(5.5); setWaterMurkiness(0.83); setWaterReflectionTintStrength(0.15); rbt1 = ["polar_snow_b", "snow grass 75", "snow rocks", "snow forest"]; rbt2 = "polar_tundra_snow"; rbt3 = "polar_tundra_snow"; rbt4 = ["alpine_cliff_a", "alpine_cliff_b"]; rbt5 = "polar_snow_a"; rbt6 = "polar_ice_snow"; rbt7 = "polar_ice"; rbt8 = ["polar_snow_rocks", "polar_cliff_snow"]; rbt9 = "snow grass 2"; rbt10 = "new_alpine_citytile"; rbt11 = "polar_ice_cracked"; rbt12 = "snow grass 2"; rbt13 = "polar_ice"; rbt14 = "alpine_shore_rocks_icy"; rbt15 = "alpine_shore_rocks"; // gaia entities rbe1 = "gaia/flora_tree_pine_w"; rbe2 = "gaia/flora_tree_pine_w"; rbe3 = "gaia/flora_tree_pine_w"; rbe4 = "gaia/flora_tree_pine_w"; rbe5 = "gaia/flora_tree_pine"; rbe6 = "gaia/flora_bush_berry"; rbe7 = "gaia/fauna_chicken"; rbe8 = "gaia/fauna_muskox"; rbe9 = "gaia/fauna_fish_tuna"; rbe10 = "gaia/fauna_walrus"; rbe11 = "gaia/geology_stonemine_alpine_quarry"; rbe12 = "gaia/geology_stone_alpine_a"; rbe13 = "gaia/geology_metal_alpine_slabs"; // decorative props rba1 = "actor|props/flora/grass_soft_dry_small_tall.xml"; rba2 = "actor|props/flora/grass_soft_dry_large.xml"; rba3 = "actor|props/flora/reeds_pond_dry.xml"; rba4 = "actor|geology/stone_granite_large.xml"; rba5 = "actor|geology/stone_granite_large.xml"; rba6 = "actor|geology/stone_granite_med.xml"; rba7 = "actor|props/flora/bush_desert_dry_a.xml"; rba8 = "actor|props/flora/bush_desert_dry_a.xml"; rba9 = "actor|flora/trees/pine_w.xml"; } //desert else if (biomeID == 3) { setSunColour(0.733, 0.746, 0.574); // Went for a very clear, slightly blue-ish water in this case, basically no waves. setWaterColour(0, 0.227, 0.843); setWaterTint(0, 0.545, 0.859); setWaterReflectionTint(1, 1, 1); setWaterWaviness(1); setWaterMurkiness(0.22); setWaterReflectionTintStrength(0.0); rbt1 = ["desert_dirt_rough", "desert_dirt_rough_2", "desert_sand_dunes_50", "desert_sand_smooth"]; rbt2 = "forestfloor_dirty"; rbt3 = "desert_forestfloor_palms"; rbt4 = ["desert_cliff_1", "desert_cliff_2", "desert_cliff_3", "desert_cliff_4", "desert_cliff_5"]; rbt5 = "desert_dirt_rough"; rbt6 = "desert_dirt_rocks_1"; rbt7 = "desert_dirt_rocks_2"; rbt8 = ["desert_dirt_rocks_1", "desert_dirt_rocks_2", "desert_dirt_rocks_3"]; rbt9 = ["desert_lakebed_dry", "desert_lakebed_dry_b"]; rbt10 = "desert_city_tile"; rbt11 = "desert_city_tile"; rbt12 = "desert_dirt_rough"; rbt13 = "desert_shore_stones"; rbt14 = "desert_sand_smooth"; rbt15 = "desert_sand_wet"; // gaia entities rbe1 = "gaia/flora_tree_cretan_date_palm_short"; rbe2 = "gaia/flora_tree_cretan_date_palm_tall"; rbe3 = "gaia/flora_tree_fig"; rbe4 = "gaia/flora_tree_tamarix"; rbe5 = "gaia/flora_tree_date_palm"; rbe6 = "gaia/flora_bush_grapes"; rbe7 = "gaia/fauna_chicken"; rbe8 = "gaia/fauna_camel"; rbe9 = "gaia/fauna_fish"; rbe10 = "gaia/fauna_gazelle"; rbe11 = "gaia/geology_stonemine_desert_quarry"; rbe12 = "gaia/geology_stone_desert_small"; rbe13 = "gaia/geology_metal_desert_slabs"; // decorative props rba1 = "actor|props/flora/grass_soft_dry_small_tall.xml"; rba2 = "actor|props/flora/grass_soft_dry_large.xml"; rba3 = "actor|props/flora/reeds_pond_lush_a.xml"; rba4 = "actor|props/flora/reeds_pond_lush_b.xml"; rba5 = "actor|geology/stone_desert_med.xml"; rba6 = "actor|geology/stone_desert_med.xml"; rba7 = "actor|props/flora/bush_desert_dry_a.xml"; rba8 = "actor|props/flora/bush_desert_dry_a.xml"; rba9 = "actor|flora/trees/palm_date.xml"; } //alpine else if (biomeID == 4) { // simulates an alpine lake, fairly deep. // this is not intended for a clear running river, or even an ocean. setWaterColour(0.0, 0.047, 0.286); // dark majestic blue setWaterTint(0.471, 0.776, 0.863); // light blue setWaterReflectionTint(0.0, 0.047, 0.286); setWaterMurkiness(0.82); setWaterWaviness(2); setWaterReflectionTintStrength(0.15); rbt1 = ["alpine_dirt_grass_50"]; rbt2 = "alpine_forrestfloor"; rbt3 = "alpine_forrestfloor"; rbt4 = ["alpine_cliff_a", "alpine_cliff_b", "alpine_cliff_c"]; rbt5 = "alpine_dirt"; rbt6 = ["alpine_grass_snow_50", "alpine_dirt_snow", "alpine_dirt_snow"]; rbt7 = ["alpine_snow_a", "alpine_snow_b"]; rbt8 = "alpine_cliff_snow"; rbt9 = ["alpine_dirt", "alpine_grass_d"]; rbt10 = "new_alpine_citytile"; rbt11 = "new_alpine_citytile"; rbt12 = "new_alpine_grass_a"; rbt13 = "alpine_shore_rocks"; rbt14 = "alpine_shore_rocks_grass_50"; rbt15 = "alpine_shore_rocks"; // gaia entities rbe1 = "gaia/flora_tree_pine"; rbe2 = "gaia/flora_tree_pine"; rbe3 = "gaia/flora_tree_pine"; rbe4 = "gaia/flora_tree_pine"; rbe5 = "gaia/flora_tree_pine"; rbe6 = "gaia/flora_bush_berry"; rbe7 = "gaia/fauna_chicken"; rbe8 = "gaia/fauna_goat"; rbe9 = "gaia/fauna_fish_tuna"; rbe10 = "gaia/fauna_deer"; rbe11 = "gaia/geology_stonemine_alpine_quarry"; rbe12 = "gaia/geology_stone_alpine_a"; rbe13 = "gaia/geology_metal_alpine_slabs"; // decorative props rba1 = "actor|props/flora/grass_soft_small_tall.xml"; rba2 = "actor|props/flora/grass_soft_large.xml"; rba3 = "actor|props/flora/reeds_pond_dry.xml"; rba4 = "actor|geology/stone_granite_large.xml"; rba5 = "actor|geology/stone_granite_large.xml"; rba6 = "actor|geology/stone_granite_med.xml"; rba7 = "actor|props/flora/bush_desert_a.xml"; rba8 = "actor|props/flora/bush_desert_a.xml"; rba9 = "actor|flora/trees/pine.xml"; } //medit else if (biomeID == 5) { // Guess what, this is based on the colors of the mediterranean sea. setWaterColour(0.024,0.212,0.024); setWaterTint(0.133, 0.725,0.855); setWaterReflectionTint(0.31,0.769,0.894); setWaterWaviness(3); setWaterMurkiness(0.8); setWaterReflectionTintStrength(0.1); rbt1 = ["medit_grass_field_a", "medit_grass_field_b"]; rbt2 = "medit_grass_field"; rbt3 = "medit_grass_shrubs"; rbt4 = ["medit_cliff_grass", "medit_cliff_greek", "medit_cliff_greek_2", "medit_cliff_aegean", "medit_cliff_italia", "medit_cliff_italia_grass"]; rbt5 = "medit_grass_field_b"; rbt6 = "medit_grass_field_brown"; rbt7 = "medit_grass_field_dry"; rbt8 = ["medit_rocks_grass_shrubs", "medit_rocks_shrubs"]; rbt9 = ["medit_dirt", "medit_dirt_b"]; rbt10 = "medit_city_tile"; rbt11 = "medit_city_tile"; rbt12 = "medit_grass_wild"; rbt13 = "medit_sand"; rbt14 = "sand_grass_25"; rbt15 = "medit_sand_wet"; // gaia entities if (randInt(1)) rbe1 = "gaia/flora_tree_cretan_date_palm_short"; else rbe1 = "gaia/flora_tree_carob"; rbe2 = "gaia/flora_tree_medit_fan_palm"; rbe3 = "gaia/flora_tree_apple"; rbe4 = "gaia/flora_tree_cypress"; rbe5 = "gaia/flora_tree_aleppo_pine"; if (randInt(1)) rbe6 = "gaia/flora_bush_berry"; else rbe6 = "gaia/flora_bush_grapes"; rbe7 = "gaia/fauna_chicken"; rbe8 = "gaia/fauna_deer"; rbe9 = "gaia/fauna_fish"; rbe10 = "gaia/fauna_sheep"; rbe11 = "gaia/geology_stonemine_medit_quarry"; rbe12 = "gaia/geology_stone_mediterranean"; rbe13 = "gaia/geology_metal_mediterranean_slabs"; // decorative props rba1 = "actor|props/flora/grass_soft_large_tall.xml"; rba2 = "actor|props/flora/grass_soft_large.xml"; rba3 = "actor|props/flora/reeds_pond_lush_b.xml"; rba4 = "actor|props/flora/water_lillies.xml"; rba5 = "actor|geology/stone_granite_large.xml"; rba6 = "actor|geology/stone_granite_med.xml"; rba7 = "actor|props/flora/bush_medit_me.xml"; rba8 = "actor|props/flora/bush_medit_sm.xml"; rba9 = "actor|flora/trees/palm_cretan_date.xml"; } //savanah else if (biomeID == 6) { // Using the Malawi as a reference, in parts where it's not too murky from a river nearby. setWaterColour(0.055,0.176,0.431); setWaterTint(0.227,0.749,0.549); setWaterReflectionTint(1,1,1); setWaterWaviness(1.5); setWaterMurkiness(0.77); setWaterReflectionTintStrength(0.0); rbt1 = ["savanna_grass_a", "savanna_grass_b"]; rbt2 = "savanna_forestfloor_a"; rbt3 = "savanna_forestfloor_b"; rbt4 = ["savanna_cliff_a", "savanna_cliff_b"]; rbt5 = "savanna_shrubs_a"; rbt6 = "savanna_dirt_rocks_b"; rbt7 = "savanna_dirt_rocks_a"; rbt8 = ["savanna_grass_a", "savanna_grass_b"]; rbt9 = ["savanna_dirt_rocks_b", "dirt_brown_e"]; rbt10 = "savanna_tile_a"; rbt11 = "savanna_tile_a"; rbt12 = "savanna_grass_a"; rbt13 = "savanna_riparian"; rbt14 = "savanna_riparian_bank"; rbt15 = "savanna_riparian_wet"; // gaia entities rbe1 = "gaia/flora_tree_baobab"; rbe2 = "gaia/flora_tree_baobab"; rbe3 = "gaia/flora_tree_baobab"; rbe4 = "gaia/flora_tree_baobab"; rbe5 = "gaia/flora_tree_baobab"; rbe6 = "gaia/flora_bush_grapes"; rbe7 = "gaia/fauna_chicken"; var rts = randInt(1,4); if (rts==1){ rbe8 = "gaia/fauna_wildebeest"; } else if (rts==2) { rbe8 = "gaia/fauna_zebra"; } else if (rts==3) { rbe8 = "gaia/fauna_giraffe"; } else if (rts==4) { rbe8 = "gaia/fauna_elephant_african_bush"; } rbe9 = "gaia/fauna_fish"; rbe10 = "gaia/fauna_gazelle"; rbe11 = "gaia/geology_stonemine_desert_quarry"; rbe12 = "gaia/geology_stone_savanna_small"; rbe13 = "gaia/geology_metal_savanna_slabs"; // decorative props rba1 = "actor|props/flora/grass_savanna.xml"; rba2 = "actor|props/flora/grass_medit_field.xml"; rba3 = "actor|props/flora/reeds_pond_lush_a.xml"; rba4 = "actor|props/flora/reeds_pond_lush_b.xml"; rba5 = "actor|geology/stone_savanna_med.xml"; rba6 = "actor|geology/stone_savanna_med.xml"; rba7 = "actor|props/flora/bush_desert_dry_a.xml"; rba8 = "actor|props/flora/bush_dry_a.xml"; rba9 = "actor|flora/trees/baobab.xml"; } //tropic else if (biomeID == 7) { // Bora-Bora ish. Quite transparent, not wavy. // Mostly for shallow maps. Maps where the water level goes deeper should use a much darker Water Colour to simulate deep water holes. setWaterColour(0.584,0.824,0.929); setWaterTint(0.569,0.965,0.945); setWaterReflectionTint(1,1,1); setWaterWaviness(1.5); setWaterMurkiness(0.35); setWaterReflectionTintStrength(0.0); rbt1 = ["tropic_grass_c", "tropic_grass_c", "tropic_grass_c", "tropic_grass_c", "tropic_grass_plants", "tropic_plants", "tropic_plants_b"]; rbt2 = "tropic_plants_c"; rbt3 = "tropic_plants_c"; rbt4 = ["tropic_cliff_a", "tropic_cliff_a", "tropic_cliff_a", "tropic_cliff_a_plants"]; rbt5 = "tropic_grass_c"; rbt6 = "tropic_grass_plants"; rbt7 = "tropic_plants"; rbt8 = ["tropic_cliff_grass"]; rbt9 = ["tropic_dirt_a", "tropic_dirt_a_plants"]; rbt10 = "tropic_citytile_a"; rbt11 = "tropic_citytile_plants"; rbt12 = "tropic_plants_b"; rbt13 = "temp_mud_plants"; rbt14 = "tropic_beach_dry_plants"; rbt15 = "tropic_beach_dry"; // gaia entities rbe1 = "gaia/flora_tree_toona"; rbe2 = "gaia/flora_tree_toona"; rbe3 = "gaia/flora_tree_palm_tropic"; rbe4 = "gaia/flora_tree_palm_tropic"; rbe5 = "gaia/flora_tree_palm_tropic"; rbe6 = "gaia/flora_bush_berry"; rbe7 = "gaia/fauna_chicken"; rbe8 = "gaia/fauna_deer"; rbe9 = "gaia/fauna_fish"; rbe10 = "gaia/fauna_tiger"; rbe11 = "gaia/geology_stonemine_tropic_quarry"; rbe12 = "gaia/geology_stone_tropic_a"; rbe13 = "gaia/geology_metal_tropic_slabs"; // decorative props rba1 = "actor|props/flora/plant_tropic_a.xml"; rba2 = "actor|props/flora/plant_lg.xml"; rba3 = "actor|props/flora/reeds_pond_lush_b.xml"; rba4 = "actor|props/flora/water_lillies.xml"; rba5 = "actor|geology/stone_granite_large.xml"; rba6 = "actor|geology/stone_granite_med.xml"; rba7 = "actor|props/flora/plant_tropic_large.xml"; rba8 = "actor|props/flora/plant_tropic_large.xml"; rba9 = "actor|flora/trees/tree_tropic.xml"; } //autumn else if (biomeID == 8) { // basically temperate with a reddish twist in the reflection and the tint. Also less wavy. // this assumes ocean settings, maps that aren't oceans should reset. setWaterColour(0.157, 0.149, 0.443); setWaterTint(0.443,0.42,0.824); setWaterReflectionTint(0.863,0.667,0.608); setWaterWaviness(2.5); setWaterMurkiness(0.83); setWaterReflectionTintStrength(0.35); rbt1 = ["temp_grass_aut", "temp_grass_aut", "temp_grass_d_aut"]; rbt2 = "temp_forestfloor_aut"; rbt3 = "temp_plants_bog_aut"; rbt4 = ["temp_cliff_a", "temp_cliff_b"]; rbt5 = "temp_grass_plants_aut"; rbt6 = ["temp_grass_b_aut", "temp_grass_c_aut"]; rbt7 = ["temp_highlands_aut", "temp_grass_long_b_aut"]; rbt8 = ["temp_plants_bog_aut", "temp_mud_a"]; rbt9 = ["temp_cliff_a", "temp_cliff_b"]; rbt10 = "temp_road_aut"; rbt11 = "temp_road_overgrown_aut"; rbt12 = "temp_grass_plants_aut"; rbt13 = "temp_grass_plants_aut"; rbt14 = "temp_forestfloor_pine"; rbt15 = "medit_sand_wet"; // gaia entities rbe1 = "gaia/flora_tree_euro_beech_aut"; rbe2 = "gaia/flora_tree_oak_aut"; rbe3 = "gaia/flora_tree_pine"; rbe4 = "gaia/flora_tree_euro_beech_aut"; rbe5 = "gaia/flora_tree_euro_beech_aut"; rbe6 = "gaia/flora_bush_berry"; rbe7 = "gaia/fauna_chicken"; rbe8 = "gaia/fauna_deer"; rbe9 = "gaia/fauna_fish"; rbe10 = "gaia/fauna_rabbit"; rbe11 = "gaia/geology_stonemine_temperate_quarry"; rbe12 = "gaia/geology_stone_temperate"; rbe13 = "gaia/geology_metal_temperate_slabs"; // decorative props rba1 = "actor|props/flora/grass_soft_dry_small_tall.xml"; rba2 = "actor|props/flora/grass_soft_dry_large.xml"; rba3 = "actor|props/flora/reeds_pond_dry.xml"; rba4 = "actor|geology/stone_granite_large.xml"; rba5 = "actor|geology/stone_granite_large.xml"; rba6 = "actor|geology/stone_granite_med.xml"; rba7 = "actor|props/flora/bush_desert_dry_a.xml"; rba8 = "actor|props/flora/bush_desert_dry_a.xml"; rba9 = "actor|flora/trees/european_beech_aut.xml"; } return biomeID; } ///////////////////////////////////////////////////////////////////////////////////////////// // These functions return the values needed for a randomized biome ///////////////////////////////////////////////////////////////////////////////////////////// function rBiomeT1() { return rbt1; } function rBiomeT2() { return rbt2; } function rBiomeT3() { return rbt3; } function rBiomeT4() { return rbt4; } function rBiomeT5() { return rbt5; } function rBiomeT6() { return rbt6; } function rBiomeT7() { return rbt7; } function rBiomeT8() { return rbt8; } function rBiomeT9() { return rbt9; } function rBiomeT10() { return rbt10; } function rBiomeT11() { return rbt11; } function rBiomeT12() { return rbt12; } function rBiomeT13() { return rbt13; } function rBiomeT14() { return rbt14; } function rBiomeT15() { return rbt15; } function rBiomeE1() { return rbe1; } function rBiomeE2() { return rbe2; } function rBiomeE3() { return rbe3; } function rBiomeE4() { return rbe4; } function rBiomeE5() { return rbe5; } function rBiomeE6() { return rbe6; } function rBiomeE7() { return rbe7; } function rBiomeE8() { return rbe8; } function rBiomeE9() { return rbe9; } function rBiomeE10() { return rbe10; } function rBiomeE11() { return rbe11; } function rBiomeE12() { return rbe12; } function rBiomeE13() { return rbe13; } function rBiomeA1() { return rba1; } function rBiomeA2() { return rba2; } function rBiomeA3() { return rba3; } function rBiomeA4() { return rba4; } function rBiomeA5() { return rba5; } function rBiomeA6() { return rba6; } function rBiomeA7() { return rba7; } function rBiomeA8() { return rba8; } function rBiomeA9() { return rba9; } \ No newline at end of file +///////////////////////////////////////////////////////////////////////////////////////////// // definitions ///////////////////////////////////////////////////////////////////////////////////////////// var biomeID = 1; var rbt1 = ["temp_grass_long_b"]; var rbt2 = "temp_forestfloor_pine"; var rbt3 = "temp_plants_bog"; var rbt4 = ["temp_cliff_a", "temp_cliff_b"]; var rbt5 = "temp_grass_d"; var rbt6 = "temp_grass_c"; var rbt7 = "temp_grass_clovers_2"; var rbt8 = ["temp_dirt_gravel", "temp_dirt_gravel_b"]; var rbt9 = ["temp_dirt_gravel", "temp_dirt_gravel_b"]; var rbt10 = "temp_road"; var rbt11 = "temp_road_overgrown"; var rbt12 = "temp_grass_plants"; var rbt13 = "temp_mud_plants"; var rbt14 = "sand_grass_25"; var rbt15 = "medit_sand_wet"; // gaia entities var rbe1 = "gaia/flora_tree_oak"; var rbe2 = "gaia/flora_tree_oak_large"; var rbe3 = "gaia/flora_tree_apple"; var rbe4 = "gaia/flora_tree_pine"; var rbe5 = "gaia/flora_tree_aleppo_pine"; var rbe6 = "gaia/flora_bush_berry"; var rbe7 = "gaia/fauna_chicken"; var rbe8 = "gaia/fauna_deer"; var rbe9 = "gaia/fauna_fish"; var rbe10 = "gaia/fauna_sheep"; var rbe11 = "gaia/geology_stonemine_medit_quarry"; var rbe12 = "gaia/geology_stone_mediterranean"; var rbe13 = "gaia/geology_metal_mediterranean_slabs"; // decorative props var rba1 = "actor|props/flora/grass_soft_large_tall.xml"; var rba2 = "actor|props/flora/grass_soft_large.xml"; var rba3 = "actor|props/flora/reeds_pond_lush_a.xml"; var rba4 = "actor|props/flora/pond_lillies_large.xml"; var rba5 = "actor|geology/stone_granite_large.xml"; var rba6 = "actor|geology/stone_granite_med.xml"; var rba7 = "actor|props/flora/bush_medit_me.xml"; var rba8 = "actor|props/flora/bush_medit_sm.xml"; var rba9 = "actor|flora/trees/oak.xml"; ///////////////////////////////////////////////////////////////////////////////////////////// // randomizeBiome: randomizes the biomeID and returns the value ///////////////////////////////////////////////////////////////////////////////////////////// function randomizeBiome() { biomeID = randInt(1,8); //temperate if (biomeID == 1){ // temperate ocean blue, a bit too deep and saturated perhaps but it looks nicer. // this assumes ocean settings, maps that aren't oceans should reset. setWaterColour(0.114, 0.192, 0.463); setWaterTint(0.255, 0.361, 0.651); setWaterReflectionTint(0.255, 0.361, 0.651); setWaterWaviness(5.5); setWaterMurkiness(0.83); setWaterReflectionTintStrength(0.05); rbt1 = ["temp_grass_long_b"]; rbt2 = "temp_forestfloor_pine"; rbt3 = "temp_plants_bog"; rbt4 = ["temp_cliff_a", "temp_cliff_b"]; rbt5 = "temp_grass_d"; rbt6 = "temp_grass_c"; rbt7 = "temp_grass_clovers_2"; rbt8 = ["temp_dirt_gravel", "temp_dirt_gravel_b"]; rbt9 = ["temp_dirt_gravel", "temp_dirt_gravel_b"]; rbt10 = "temp_road"; rbt11 = "temp_road_overgrown"; rbt12 = "temp_grass_plants"; rbt13 = "temp_mud_plants"; rbt14 = "sand_grass_25"; rbt15 = "medit_sand_wet"; // gaia entities if (randInt(1)) rbe1 = "gaia/flora_tree_oak"; else rbe1 = "gaia/flora_tree_euro_beech"; rbe2 = "gaia/flora_tree_oak_large"; rbe3 = "gaia/flora_tree_apple"; rbe4 = "gaia/flora_tree_pine"; rbe5 = "gaia/flora_tree_aleppo_pine"; rbe6 = "gaia/flora_bush_berry"; rbe7 = "gaia/fauna_chicken"; rbe8 = "gaia/fauna_deer"; rbe9 = "gaia/fauna_fish"; rbe10 = "gaia/fauna_sheep"; rbe11 = "gaia/geology_stonemine_temperate_quarry"; rbe12 = "gaia/geology_stone_temperate"; rbe13 = "gaia/geology_metal_temperate_slabs"; // decorative props rba1 = "actor|props/flora/grass_soft_large_tall.xml"; rba2 = "actor|props/flora/grass_soft_large.xml"; rba3 = "actor|props/flora/reeds_pond_lush_a.xml"; rba4 = "actor|props/flora/water_lillies.xml"; rba5 = "actor|geology/stone_granite_large.xml"; rba6 = "actor|geology/stone_granite_med.xml"; rba7 = "actor|props/flora/bush_medit_me.xml"; rba8 = "actor|props/flora/bush_medit_sm.xml"; rba9 = "actor|flora/trees/oak.xml"; } //snowy else if (biomeID == 2) { setSunColour(0.550, 0.601, 0.644); // a little darker // Water is a semi-deep blue, fairly wavy, fairly murky for an ocean. // this assumes ocean settings, maps that aren't oceans should reset. setWaterColour(0.067, 0.212, 0.361); setWaterTint(0.4, 0.486, 0.765); setWaterReflectionTint(0.482, 0.824, 0.925); setWaterWaviness(5.5); setWaterMurkiness(0.83); setWaterReflectionTintStrength(0.15); rbt1 = ["polar_snow_b", "snow grass 75", "snow rocks", "snow forest"]; rbt2 = "polar_tundra_snow"; rbt3 = "polar_tundra_snow"; rbt4 = ["alpine_cliff_a", "alpine_cliff_b"]; rbt5 = "polar_snow_a"; rbt6 = "polar_ice_snow"; rbt7 = "polar_ice"; rbt8 = ["polar_snow_rocks", "polar_cliff_snow"]; rbt9 = "snow grass 2"; rbt10 = "new_alpine_citytile"; rbt11 = "polar_ice_cracked"; rbt12 = "snow grass 2"; rbt13 = "polar_ice"; rbt14 = "alpine_shore_rocks_icy"; rbt15 = "alpine_shore_rocks"; // gaia entities rbe1 = "gaia/flora_tree_pine_w"; rbe2 = "gaia/flora_tree_pine_w"; rbe3 = "gaia/flora_tree_pine_w"; rbe4 = "gaia/flora_tree_pine_w"; rbe5 = "gaia/flora_tree_pine"; rbe6 = "gaia/flora_bush_berry"; rbe7 = "gaia/fauna_chicken"; rbe8 = "gaia/fauna_muskox"; rbe9 = "gaia/fauna_fish_tuna"; rbe10 = "gaia/fauna_walrus"; rbe11 = "gaia/geology_stonemine_alpine_quarry"; rbe12 = "gaia/geology_stone_alpine_a"; rbe13 = "gaia/geology_metal_alpine_slabs"; // decorative props rba1 = "actor|props/flora/grass_soft_dry_small_tall.xml"; rba2 = "actor|props/flora/grass_soft_dry_large.xml"; rba3 = "actor|props/flora/reeds_pond_dry.xml"; rba4 = "actor|geology/stone_granite_large.xml"; rba5 = "actor|geology/stone_granite_large.xml"; rba6 = "actor|geology/stone_granite_med.xml"; rba7 = "actor|props/flora/bush_desert_dry_a.xml"; rba8 = "actor|props/flora/bush_desert_dry_a.xml"; rba9 = "actor|flora/trees/pine_w.xml"; } //desert else if (biomeID == 3) { setSunColour(0.733, 0.746, 0.574); // Went for a very clear, slightly blue-ish water in this case, basically no waves. setWaterColour(0, 0.227, 0.843); setWaterTint(0, 0.545, 0.859); setWaterReflectionTint(1, 1, 1); setWaterWaviness(1); setWaterMurkiness(0.22); setWaterReflectionTintStrength(0.0); rbt1 = ["desert_dirt_rough", "desert_dirt_rough_2", "desert_sand_dunes_50", "desert_sand_smooth"]; rbt2 = "forestfloor_dirty"; rbt3 = "desert_forestfloor_palms"; rbt4 = ["desert_cliff_1", "desert_cliff_2", "desert_cliff_3", "desert_cliff_4", "desert_cliff_5"]; rbt5 = "desert_dirt_rough"; rbt6 = "desert_dirt_rocks_1"; rbt7 = "desert_dirt_rocks_2"; rbt8 = ["desert_dirt_rocks_1", "desert_dirt_rocks_2", "desert_dirt_rocks_3"]; rbt9 = ["desert_lakebed_dry", "desert_lakebed_dry_b"]; rbt10 = "desert_city_tile"; rbt11 = "desert_city_tile"; rbt12 = "desert_dirt_rough"; rbt13 = "desert_shore_stones"; rbt14 = "desert_sand_smooth"; rbt15 = "desert_sand_wet"; // gaia entities rbe1 = "gaia/flora_tree_cretan_date_palm_short"; rbe2 = "gaia/flora_tree_cretan_date_palm_tall"; rbe3 = "gaia/flora_tree_fig"; rbe4 = "gaia/flora_tree_tamarix"; rbe5 = "gaia/flora_tree_date_palm"; rbe6 = "gaia/flora_bush_grapes"; rbe7 = "gaia/fauna_chicken"; rbe8 = "gaia/fauna_camel"; rbe9 = "gaia/fauna_fish"; rbe10 = "gaia/fauna_gazelle"; rbe11 = "gaia/geology_stonemine_desert_quarry"; rbe12 = "gaia/geology_stone_desert_small"; rbe13 = "gaia/geology_metal_desert_slabs"; // decorative props rba1 = "actor|props/flora/grass_soft_dry_small_tall.xml"; rba2 = "actor|props/flora/grass_soft_dry_large.xml"; rba3 = "actor|props/flora/reeds_pond_lush_a.xml"; rba4 = "actor|props/flora/reeds_pond_lush_b.xml"; rba5 = "actor|geology/stone_desert_med.xml"; rba6 = "actor|geology/stone_desert_med.xml"; rba7 = "actor|props/flora/bush_desert_dry_a.xml"; rba8 = "actor|props/flora/bush_desert_dry_a.xml"; rba9 = "actor|flora/trees/palm_date.xml"; } //alpine else if (biomeID == 4) { // simulates an alpine lake, fairly deep. // this is not intended for a clear running river, or even an ocean. setWaterColour(0.0, 0.047, 0.286); // dark majestic blue setWaterTint(0.471, 0.776, 0.863); // light blue setWaterReflectionTint(0.0, 0.047, 0.286); setWaterMurkiness(0.82); setWaterWaviness(2); setWaterReflectionTintStrength(0.15); rbt1 = ["alpine_dirt_grass_50"]; rbt2 = "alpine_forrestfloor"; rbt3 = "alpine_forrestfloor"; rbt4 = ["alpine_cliff_a", "alpine_cliff_b", "alpine_cliff_c"]; rbt5 = "alpine_dirt"; rbt6 = ["alpine_grass_snow_50", "alpine_dirt_snow", "alpine_dirt_snow"]; rbt7 = ["alpine_snow_a", "alpine_snow_b"]; rbt8 = "alpine_cliff_snow"; rbt9 = ["alpine_dirt", "alpine_grass_d"]; rbt10 = "new_alpine_citytile"; rbt11 = "new_alpine_citytile"; rbt12 = "new_alpine_grass_a"; rbt13 = "alpine_shore_rocks"; rbt14 = "alpine_shore_rocks_grass_50"; rbt15 = "alpine_shore_rocks"; // gaia entities rbe1 = "gaia/flora_tree_pine"; rbe2 = "gaia/flora_tree_pine"; rbe3 = "gaia/flora_tree_pine"; rbe4 = "gaia/flora_tree_pine"; rbe5 = "gaia/flora_tree_pine"; rbe6 = "gaia/flora_bush_berry"; rbe7 = "gaia/fauna_chicken"; rbe8 = "gaia/fauna_goat"; rbe9 = "gaia/fauna_fish_tuna"; rbe10 = "gaia/fauna_deer"; rbe11 = "gaia/geology_stonemine_alpine_quarry"; rbe12 = "gaia/geology_stone_alpine_a"; rbe13 = "gaia/geology_metal_alpine_slabs"; // decorative props rba1 = "actor|props/flora/grass_soft_small_tall.xml"; rba2 = "actor|props/flora/grass_soft_large.xml"; rba3 = "actor|props/flora/reeds_pond_dry.xml"; rba4 = "actor|geology/stone_granite_large.xml"; rba5 = "actor|geology/stone_granite_large.xml"; rba6 = "actor|geology/stone_granite_med.xml"; rba7 = "actor|props/flora/bush_desert_a.xml"; rba8 = "actor|props/flora/bush_desert_a.xml"; rba9 = "actor|flora/trees/pine.xml"; } //medit else if (biomeID == 5) { // Guess what, this is based on the colors of the mediterranean sea. setWaterColour(0.024,0.212,0.024); setWaterTint(0.133, 0.725,0.855); setWaterReflectionTint(0.31,0.769,0.894); setWaterWaviness(3); setWaterMurkiness(0.8); setWaterReflectionTintStrength(0.1); rbt1 = ["medit_grass_field_a", "medit_grass_field_b"]; rbt2 = "medit_grass_field"; rbt3 = "medit_grass_shrubs"; rbt4 = ["medit_cliff_grass", "medit_cliff_greek", "medit_cliff_greek_2", "medit_cliff_aegean", "medit_cliff_italia", "medit_cliff_italia_grass"]; rbt5 = "medit_grass_field_b"; rbt6 = "medit_grass_field_brown"; rbt7 = "medit_grass_field_dry"; rbt8 = ["medit_rocks_grass_shrubs", "medit_rocks_shrubs"]; rbt9 = ["medit_dirt", "medit_dirt_b"]; rbt10 = "medit_city_tile"; rbt11 = "medit_city_tile"; rbt12 = "medit_grass_wild"; rbt13 = "medit_sand"; rbt14 = "sand_grass_25"; rbt15 = "medit_sand_wet"; // gaia entities if (randInt(1)) rbe1 = "gaia/flora_tree_cretan_date_palm_short"; else rbe1 = "gaia/flora_tree_carob"; rbe2 = "gaia/flora_tree_medit_fan_palm"; rbe3 = "gaia/flora_tree_apple"; rbe4 = "gaia/flora_tree_cypress"; rbe5 = "gaia/flora_tree_aleppo_pine"; if (randInt(1)) rbe6 = "gaia/flora_bush_berry"; else rbe6 = "gaia/flora_bush_grapes"; rbe7 = "gaia/fauna_chicken"; rbe8 = "gaia/fauna_deer"; rbe9 = "gaia/fauna_fish"; rbe10 = "gaia/fauna_sheep"; rbe11 = "gaia/geology_stonemine_medit_quarry"; rbe12 = "gaia/geology_stone_mediterranean"; rbe13 = "gaia/geology_metal_mediterranean_slabs"; // decorative props rba1 = "actor|props/flora/grass_soft_large_tall.xml"; rba2 = "actor|props/flora/grass_soft_large.xml"; rba3 = "actor|props/flora/reeds_pond_lush_b.xml"; rba4 = "actor|props/flora/water_lillies.xml"; rba5 = "actor|geology/stone_granite_large.xml"; rba6 = "actor|geology/stone_granite_med.xml"; rba7 = "actor|props/flora/bush_medit_me.xml"; rba8 = "actor|props/flora/bush_medit_sm.xml"; rba9 = "actor|flora/trees/palm_cretan_date.xml"; } //savanah else if (biomeID == 6) { // Using the Malawi as a reference, in parts where it's not too murky from a river nearby. setWaterColour(0.055,0.176,0.431); setWaterTint(0.227,0.749,0.549); setWaterReflectionTint(1,1,1); setWaterWaviness(1.5); setWaterMurkiness(0.77); setWaterReflectionTintStrength(0.0); rbt1 = ["savanna_grass_a", "savanna_grass_b"]; rbt2 = "savanna_forestfloor_a"; rbt3 = "savanna_forestfloor_b"; rbt4 = ["savanna_cliff_a", "savanna_cliff_b"]; rbt5 = "savanna_shrubs_a"; rbt6 = "savanna_dirt_rocks_b"; rbt7 = "savanna_dirt_rocks_a"; rbt8 = ["savanna_grass_a", "savanna_grass_b"]; rbt9 = ["savanna_dirt_rocks_b", "dirt_brown_e"]; rbt10 = "savanna_tile_a"; rbt11 = "savanna_tile_a"; rbt12 = "savanna_grass_a"; rbt13 = "savanna_riparian"; rbt14 = "savanna_riparian_bank"; rbt15 = "savanna_riparian_wet"; // gaia entities rbe1 = "gaia/flora_tree_baobab"; rbe2 = "gaia/flora_tree_baobab"; rbe3 = "gaia/flora_tree_baobab"; rbe4 = "gaia/flora_tree_baobab"; rbe5 = "gaia/flora_tree_baobab"; rbe6 = "gaia/flora_bush_grapes"; rbe7 = "gaia/fauna_chicken"; var rts = randInt(1,4); if (rts==1){ rbe8 = "gaia/fauna_wildebeest"; } else if (rts==2) { rbe8 = "gaia/fauna_zebra"; } else if (rts==3) { rbe8 = "gaia/fauna_giraffe"; } else if (rts==4) { rbe8 = "gaia/fauna_elephant_african_bush"; } rbe9 = "gaia/fauna_fish"; rbe10 = "gaia/fauna_gazelle"; rbe11 = "gaia/geology_stonemine_desert_quarry"; rbe12 = "gaia/geology_stone_savanna_small"; rbe13 = "gaia/geology_metal_savanna_slabs"; // decorative props rba1 = "actor|props/flora/grass_savanna.xml"; rba2 = "actor|props/flora/grass_medit_field.xml"; rba3 = "actor|props/flora/reeds_pond_lush_a.xml"; rba4 = "actor|props/flora/reeds_pond_lush_b.xml"; rba5 = "actor|geology/stone_savanna_med.xml"; rba6 = "actor|geology/stone_savanna_med.xml"; rba7 = "actor|props/flora/bush_desert_dry_a.xml"; rba8 = "actor|props/flora/bush_dry_a.xml"; rba9 = "actor|flora/trees/baobab.xml"; } //tropic else if (biomeID == 7) { // Bora-Bora ish. Quite transparent, not wavy. // Mostly for shallow maps. Maps where the water level goes deeper should use a much darker Water Colour to simulate deep water holes. setWaterColour(0.584,0.824,0.929); setWaterTint(0.569,0.965,0.945); setWaterReflectionTint(1,1,1); setWaterWaviness(1.5); setWaterMurkiness(0.35); setWaterReflectionTintStrength(0.0); rbt1 = ["tropic_grass_c", "tropic_grass_c", "tropic_grass_c", "tropic_grass_c", "tropic_grass_plants", "tropic_plants", "tropic_plants_b"]; rbt2 = "tropic_plants_c"; rbt3 = "tropic_plants_c"; rbt4 = ["tropic_cliff_a", "tropic_cliff_a", "tropic_cliff_a", "tropic_cliff_a_plants"]; rbt5 = "tropic_grass_c"; rbt6 = "tropic_grass_plants"; rbt7 = "tropic_plants"; rbt8 = ["tropic_cliff_grass"]; rbt9 = ["tropic_dirt_a", "tropic_dirt_a_plants"]; rbt10 = "tropic_citytile_a"; rbt11 = "tropic_citytile_plants"; rbt12 = "tropic_plants_b"; rbt13 = "temp_mud_plants"; rbt14 = "tropic_beach_dry_plants"; rbt15 = "tropic_beach_dry"; // gaia entities rbe1 = "gaia/flora_tree_toona"; rbe2 = "gaia/flora_tree_toona"; rbe3 = "gaia/flora_tree_palm_tropic"; rbe4 = "gaia/flora_tree_palm_tropic"; rbe5 = "gaia/flora_tree_palm_tropic"; rbe6 = "gaia/flora_bush_berry"; rbe7 = "gaia/fauna_chicken"; rbe8 = "gaia/fauna_deer"; rbe9 = "gaia/fauna_fish"; rbe10 = "gaia/fauna_tiger"; rbe11 = "gaia/geology_stonemine_tropic_quarry"; rbe12 = "gaia/geology_stone_tropic_a"; rbe13 = "gaia/geology_metal_tropic_slabs"; // decorative props rba1 = "actor|props/flora/plant_tropic_a.xml"; rba2 = "actor|props/flora/plant_lg.xml"; rba3 = "actor|props/flora/reeds_pond_lush_b.xml"; rba4 = "actor|props/flora/water_lillies.xml"; rba5 = "actor|geology/stone_granite_large.xml"; rba6 = "actor|geology/stone_granite_med.xml"; rba7 = "actor|props/flora/plant_tropic_large.xml"; rba8 = "actor|props/flora/plant_tropic_large.xml"; rba9 = "actor|flora/trees/tree_tropic.xml"; } //autumn else if (biomeID == 8) { // basically temperate with a reddish twist in the reflection and the tint. Also less wavy. // this assumes ocean settings, maps that aren't oceans should reset. setWaterColour(0.157, 0.149, 0.443); setWaterTint(0.443,0.42,0.824); setWaterReflectionTint(0.863,0.667,0.608); setWaterWaviness(2.5); setWaterMurkiness(0.83); setWaterReflectionTintStrength(0.35); rbt1 = ["temp_grass_aut", "temp_grass_aut", "temp_grass_d_aut"]; rbt2 = "temp_forestfloor_aut"; rbt3 = "temp_plants_bog_aut"; rbt4 = ["temp_cliff_a", "temp_cliff_b"]; rbt5 = "temp_grass_plants_aut"; rbt6 = ["temp_grass_b_aut", "temp_grass_c_aut"]; rbt7 = ["temp_grass_b_aut", "temp_grass_long_b_aut"]; rbt8 = "temp_highlands_aut"; rbt9 = ["temp_cliff_a", "temp_cliff_b"]; rbt10 = "temp_road_aut"; rbt11 = "temp_road_overgrown_aut"; rbt12 = "temp_grass_plants_aut"; rbt13 = "temp_grass_plants_aut"; rbt14 = "temp_forestfloor_pine"; rbt15 = "medit_sand_wet"; // gaia entities rbe1 = "gaia/flora_tree_euro_beech_aut"; rbe2 = "gaia/flora_tree_oak_aut"; rbe3 = "gaia/flora_tree_pine"; rbe4 = "gaia/flora_tree_euro_beech_aut"; rbe5 = "gaia/flora_tree_euro_beech_aut"; rbe6 = "gaia/flora_bush_berry"; rbe7 = "gaia/fauna_chicken"; rbe8 = "gaia/fauna_deer"; rbe9 = "gaia/fauna_fish"; rbe10 = "gaia/fauna_rabbit"; rbe11 = "gaia/geology_stonemine_temperate_quarry"; rbe12 = "gaia/geology_stone_temperate"; rbe13 = "gaia/geology_metal_temperate_slabs"; // decorative props rba1 = "actor|props/flora/grass_soft_dry_small_tall.xml"; rba2 = "actor|props/flora/grass_soft_dry_large.xml"; rba3 = "actor|props/flora/reeds_pond_dry.xml"; rba4 = "actor|geology/stone_granite_large.xml"; rba5 = "actor|geology/stone_granite_large.xml"; rba6 = "actor|geology/stone_granite_med.xml"; rba7 = "actor|props/flora/bush_desert_dry_a.xml"; rba8 = "actor|props/flora/bush_desert_dry_a.xml"; rba9 = "actor|flora/trees/european_beech_aut.xml"; } return biomeID; } ///////////////////////////////////////////////////////////////////////////////////////////// // These functions return the values needed for a randomized biome ///////////////////////////////////////////////////////////////////////////////////////////// function rBiomeT1() { return rbt1; } function rBiomeT2() { return rbt2; } function rBiomeT3() { return rbt3; } function rBiomeT4() { return rbt4; } function rBiomeT5() { return rbt5; } function rBiomeT6() { return rbt6; } function rBiomeT7() { return rbt7; } function rBiomeT8() { return rbt8; } function rBiomeT9() { return rbt9; } function rBiomeT10() { return rbt10; } function rBiomeT11() { return rbt11; } function rBiomeT12() { return rbt12; } function rBiomeT13() { return rbt13; } function rBiomeT14() { return rbt14; } function rBiomeT15() { return rbt15; } function rBiomeE1() { return rbe1; } function rBiomeE2() { return rbe2; } function rBiomeE3() { return rbe3; } function rBiomeE4() { return rbe4; } function rBiomeE5() { return rbe5; } function rBiomeE6() { return rbe6; } function rBiomeE7() { return rbe7; } function rBiomeE8() { return rbe8; } function rBiomeE9() { return rbe9; } function rBiomeE10() { return rbe10; } function rBiomeE11() { return rbe11; } function rBiomeE12() { return rbe12; } function rBiomeE13() { return rbe13; } function rBiomeA1() { return rba1; } function rBiomeA2() { return rba2; } function rBiomeA3() { return rba3; } function rBiomeA4() { return rba4; } function rBiomeA5() { return rba5; } function rBiomeA6() { return rba6; } function rBiomeA7() { return rba7; } function rBiomeA8() { return rba8; } function rBiomeA9() { return rba9; } \ No newline at end of file diff --git a/binaries/data/mods/public/maps/random/rmgen/tileclass.js b/binaries/data/mods/public/maps/random/rmgen/tileclass.js index bb12372c90..7a4d8f6c1b 100644 --- a/binaries/data/mods/public/maps/random/rmgen/tileclass.js +++ b/binaries/data/mods/public/maps/random/rmgen/tileclass.js @@ -33,11 +33,11 @@ RangeOp.prototype.add = function(pos, amt) RangeOp.prototype.get = function(start, end) { var ret = 0; - var i = 1; + var i; var nn = this.nn; // Count from start to end by powers of 2 - for (; start+i <= end; i *= 2) + for (i = 1; start+i <= end; i *= 2) { if (start & i) { // For each bit in start