Three new random map scripts by _kali showing actual geographical regions: Amazon, Mediterranean and Red Sea.

Includes a water and skyset fix by niektb. Partially reviewed by FeXoR.
Like last time, commits can be found at
https://github.com/0ADMods/maps_random_by_kali

This was SVN commit r18523.
This commit is contained in:
elexis committed 2016-07-15 19:39:42 +00:00
1 parent a83f2a376b
commit 33e3e6c2ab
11 files changed
+1243

No files matched your search

@@ -0,0 +1,286 @@
// Coordinates: 0.138050, -50.466245
// Map Width: 200km
RMS.LoadLibrary("rmgen");
RMS.LoadLibrary("rmgen2");
InitMap();
log("Initializing tile classes...");
setBiome(7);
initMapSettings();
initTileClasses();
log("Initializing environment...");
setSunColor(0.733, 0.746, 0.574);
setWaterTint(0.576, 0.541, 0.322);
setWaterColor(0.521, 0.475, 0.322);
setWaterWaviness(8);
setWaterMurkiness(0.87);
setWaterType("lake");
setTerrainAmbientColor(0.521, 0.475, 0.322);
setSunRotation(-1 * PI);
setSunElevation(PI / 6.25);
setFogFactor(0);
setFogThickness(0);
setFogColor(0.69, 0.616, 0.541);
setPPEffect("hdr");
setPPContrast(0.67);
setPPSaturation(0.42);
setPPBloom(0.23);
log("Initializing biome...");
g_Terrains.mainTerrain = "tropic_dirt_a_plants";
g_Terrains.forestFloor1 = "tropic_grass_c";
g_Terrains.forestFloor2 = "tropic_grass_c";
g_Terrains.tier1Terrain = "tropic_dirt_a";
g_Terrains.tier2Terrain = "tropic_plants";
g_Terrains.tier3Terrain = "tropic_grass_plants";
g_Terrains.tier4Terrain = "tropic_dirt_a_plants";
g_Terrains.roadWild = "road_rome_a";
g_Terrains.road = "road_stones";
g_Gaia.mainHuntableAnimal = "gaia/fauna_peacock";
g_Gaia.secondaryHuntableAnimal = "gaia/fauna_crocodile";
g_Gaia.fish = "gaia/fauna_fish_tilapia";
g_Gaia.tree1 = "gaia/flora_tree_palm_tropical";
g_Gaia.tree2 = "gaia/flora_tree_date_palm";
g_Gaia.tree3 = "gaia/flora_tree_date_palm";
g_Gaia.tree4 = "gaia/flora_tree_palm_tropical";
g_Gaia.tree5 = "gaia/flora_tree_date_palm";
g_Gaia.fruitBush = "gaia/flora_bush_berry";
g_Decoratives.grass = "actor|props/flora/grass_tropical.xml";
g_Decoratives.grassShort = "actor|props/flora/grass_soft_tuft_a.xml";
g_Decoratives.rockLarge = "actor|geology/stone_savanna_med.xml";
g_Decoratives.rockMedium = "actor|geology/stone_savanna_med.xml";
g_Decoratives.bushMedium = "actor|props/flora/bush_tropic_a.xml";
g_Decoratives.bushSmall = "actor|props/flora/bush_tropic_b.xml";
initBiome();
RMS.SetProgress(5);
log("Resetting terrain...");
resetTerrain(g_Terrains.mainTerrain, g_TileClasses.land, 1);
RMS.SetProgress(10);
log("Copying heightmap...");
var scale = paintHeightmap(getHeightMap(), getTileMap(), getTilePallet());
RMS.SetProgress(30);
log("Paint tile classes...");
paintTileClassBasedOnHeight(-100, -1, 3, g_TileClasses.water);
RMS.SetProgress(40);
log("Playing players...");
//Coordinate system of the heightmap
var singleBases = [
[90, 115],
[240, 157],
[35, 155],
[140, 25],
[260, 75],
[160, 285],
[105, 220],
[185, 90]
];
var strongholdBases = [
[80, 240],
[190, 60]
];
randomPlayerPlacementAt(singleBases, strongholdBases, scale, 0.06);
RMS.SetProgress(50);
addElements([
{
"func": addLayeredPatches,
"avoid": [
g_TileClasses.bluff, 2,
g_TileClasses.dirt, 5,
g_TileClasses.forest, 2,
g_TileClasses.mountain, 2,
g_TileClasses.plateau, 2,
g_TileClasses.player, 12,
g_TileClasses.water, 3
],
"sizes": ["normal"],
"mixes": ["normal"],
"amounts": ["many"]
},
{
"func": addDecoration,
"avoid": [
g_TileClasses.bluff, 2,
g_TileClasses.forest, 2,
g_TileClasses.mountain, 2,
g_TileClasses.plateau, 2,
g_TileClasses.player, 12,
g_TileClasses.water, 3
],
"sizes": ["normal"],
"mixes": ["normal"],
"amounts": ["many"]
}
]);
RMS.SetProgress(60);
addElements(shuffleArray([
{
"func": addMetal,
"avoid": [
g_TileClasses.berries, 5,
g_TileClasses.bluff, 5,
g_TileClasses.forest, 3,
g_TileClasses.mountain, 2,
g_TileClasses.plateau, 2,
g_TileClasses.player, 30,
g_TileClasses.rock, 10,
g_TileClasses.metal, 20,
g_TileClasses.water, 3
],
"sizes": ["normal"],
"mixes": ["same"],
"amounts": ["normal", "many"]
},
{
"func": addStone,
"avoid": [
g_TileClasses.berries, 5,
g_TileClasses.bluff, 5,
g_TileClasses.forest, 3,
g_TileClasses.mountain, 2,
g_TileClasses.plateau, 2,
g_TileClasses.player, 30,
g_TileClasses.rock, 20,
g_TileClasses.metal, 10,
g_TileClasses.water, 3
],
"sizes": ["normal"],
"mixes": ["same"],
"amounts": ["normal", "many"]
},
{
"func": addForests,
"avoid": [
g_TileClasses.berries, 5,
g_TileClasses.bluff, 5,
g_TileClasses.forest, 18,
g_TileClasses.metal, 3,
g_TileClasses.mountain, 5,
g_TileClasses.plateau, 5,
g_TileClasses.player, 20,
g_TileClasses.rock, 3,
g_TileClasses.water, 2
],
"sizes": ["normal"],
"mixes": ["similar"],
"amounts": ["tons"]
}
]));
RMS.SetProgress(70);
addElements(shuffleArray([
{
"func": addBerries,
"avoid": [
g_TileClasses.berries, 30,
g_TileClasses.bluff, 5,
g_TileClasses.forest, 5,
g_TileClasses.metal, 10,
g_TileClasses.mountain, 2,
g_TileClasses.plateau, 2,
g_TileClasses.player, 20,
g_TileClasses.rock, 10,
g_TileClasses.water, 3
],
"sizes": ["normal"],
"mixes": ["same"],
"amounts": ["normal", "many"]
},
{
"func": addAnimals,
"avoid": [
g_TileClasses.animals, 20,
g_TileClasses.bluff, 5,
g_TileClasses.forest, 2,
g_TileClasses.metal, 2,
g_TileClasses.mountain, 1,
g_TileClasses.plateau, 2,
g_TileClasses.player, 20,
g_TileClasses.rock, 2,
g_TileClasses.water, 3
],
"sizes": ["normal"],
"mixes": ["same"],
"amounts": ["many"]
},
{
"func": addFish,
"avoid": [
g_TileClasses.fish, 12,
g_TileClasses.player, 8
],
"stay": [g_TileClasses.water, 4],
"sizes": ["normal"],
"mixes": ["same"],
"amounts": ["many"]
},
{
"func": addStragglerTrees,
"avoid": [
g_TileClasses.berries, 5,
g_TileClasses.bluff, 5,
g_TileClasses.forest, 7,
g_TileClasses.metal, 2,
g_TileClasses.mountain, 1,
g_TileClasses.plateau, 2,
g_TileClasses.player, 12,
g_TileClasses.rock, 2,
g_TileClasses.water, 5
],
"sizes": ["normal"],
"mixes": ["same"],
"amounts": ["many"]
}
]));
RMS.SetProgress(80);
log("Adding lillies...");
createObjectGroups(
new SimpleGroup(
[
new SimpleObject(g_Decoratives.lillies, 5, 12, 1, 4),
new SimpleObject(g_Decoratives.rockMedium, 1, 2, 1, 5)
],
true,
g_TileClasses.dirt
),
0,
[
stayClasses(g_TileClasses.water, 1),
borderClasses(g_TileClasses.water, scaleByMapSize(2,8), scaleByMapSize(2,5))
],
scaleByMapSize(100, 5000),
500
);
RMS.SetProgress(90);
ExportMap();
function getHeightMap()
{
return [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-2,-1,1,1,0,0,0,0,0,1,-1,-1,-2,-2,-1,1,1,1,1,1,1,0,0,0,0,1,-1,-2,-2,-3,-3,-3,-3,-3,-3,-1,-1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,2,2,3,2,2,2,2,2,2,2,2,2,2,3,3,3,3,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,5,4,4,4,4,5,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,-1,-1,-1,-1,1,0,0,0,0,0,1,1,-1,-2,-1.90,-0.88,0.75,0.75,0.96,0.99,1,1,0,0,0,0,1,-1,-1,-2,-3,-3,-3,-3,-3,-2,-1,1,1,-1,1,1,0.87,0.75,0.87,0.87,0.75,0.10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,2,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,4,4,4,4,4,5,5,5,5,5,5,5,5,5,5,5,5,6,5,5,5,5,5,5,5,5,5,4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0.75,-0.63,-1.50,-0.50,0.50,0.21,0,0,0,0,0,1,-0.68,-1.63,-1.54,-1.15,-0.67,0.62,0.87,0.97,1,1,0,0,0,0,1,1,-1,-1,-2,-3,-1,-1,-1,-1,-1,1,1,-1,-1,-1.50,-1.38,1.09,0.25,0.25,0.37,0.37,0.37,0.22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,2,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,4,4,5,4,4,4,5,7,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,5,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0.50,-0.38,-0.63,-0.29,0.35,0.25,0,0,0,0,0,0.63,-0.25,-0.92,-1.50,-1.67,-0.75,0.62,0.71,0.95,1,1,0,0,0,0,0,1,1,-1,-2,-2,-1,1,1,1,1,1,1,1,-1,-1.53,-1.40,-1.30,-0.42,-0.40,-0.25,-0.02,0.12,0.12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,2,2,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,4,4,4,5,5,6,6,6,5,5,5,5,5,5,5,5,5,5,4,5,5,5,6,5,5,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.33,0.25,-0.13,-0.29,-0.14,0.09,0.21,0.07,0,0,0,0,0.62,0.25,-0.63,-1.50,-1.67,-1.13,-0.63,0.62,0.87,1,1,0,0,0,0,0,0,1,-1,-1,-2,-1,-1,1,0,0,0,0,1,1,1.45,-1.28,-1.25,-0.88,-0.88,-0.67,-0.50,-0.14,0.12,0.10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,2,2,2,2,2,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,4,4,4,4,5,5,5,5,5,5,5,4,4,4,5,5,5,4,4,4,4,4,5,6,5,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.25,0.21,-0.13,-0.14,-0.13,0.07,0.12,0.12,0,0,0,0,0.32,0.58,-0.38,-1.26,-1.50,-1.50,-0.75,0.62,0.75,1,1,0,0,0,0,0,0,1,1,-1,-1,-1,-1,1,1,1,0,0,0,0,1,0.75,-0.68,-0.42,-0.63,-0.88,-0.65,-0.40,-0.14,0.12,0.32,0.12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,2,1,1,1,1,0,0,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,4,4,4,4,4,4,5,4,4,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0.34,0.33,0,-0.13,-0.13,0,0.21,0.12,0,0,0,0,0,0.87,-0.40,-1,-1.50,-3.18,-2.77,-0.75,0.87,1,1,0,0,0,0,0,0,0,1,1,-1,1,-1,-1,-1,1,1,0,0,0,0,0.87,0.75,0.12,-0.27,-0.66,-0.75,-0.64,-0.50,-0.14,0.12,0.25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,2,2,2,2,3,2,3,2,2,2,2,2,2,2,3,3,3,3,3,4,4,4,4,4,4,4,4,4,4,4,4,4,Line truncated
}
function getTileMap()
{
return [0,1,2,3,2,3,3,2,1,2,2,2,2,1,1,1,1,0,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,2,3,5,5,5,5,5,5,2,2,1,4,4,4,4,4,4,4,4,4,4,5,5,5,5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,2,6,6,6,6,6,6,6,6,6,6,4,4,6,4,4,4,6,4,4,4,4,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,6,6,6,6,6,6,6,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,6,6,4,4,4,4,4,4,4,6,6,6,6,6,4,4,4,4,4,6,6,6,6,6,4,4,4,4,4,4,6,6,6,6,6,4,4,4,4,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,4,4,2,0,3,2,3,3,3,3,4,4,4,4,1,1,1,1,1,1,6,6,4,4,4,4,4,4,4,6,6,6,6,6,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,1,2,2,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,4,4,4,4,6,4,6,4,6,4,6,4,6,4,4,4,6,4,4,4,4,6,4,4,4,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,6,6,4,4,4,4,4,6,4,4,6,6,6,6,6,6,4,4,4,4,6,6,6,6,6,6,6,4,4,4,6,6,6,6,6,6,6,6,6,6,4,6,6,6,6,6,6,6,6,4,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,4,4,4,6,6,6,6,6,4,4,2,2,2,3,4,3,3,3,4,6,6,1,1,1,1,1,1,1,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,4,4,4,4,4,4,4,4,4,4,4,4,4,6,6,4,4,1,2,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,0,0,6,6,6,6,6,6,0,0,0,0,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,4,4,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,6,6,6,4,4,6,6,6,6,6,6,6,6,6,6,6,6,4,4,4,6,6,6,6,6,6,6,4,4,4,6,6,6,6,6,6,0,6,0,6,0,0,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,6,6,6,6,2,2,4,4,4,4,3,3,6,6,6,6,1,1,1,1,1,1,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,4,4,4,4,4,4,4,4,4,4,4,4,6,6,6,6,6,4,4,4,4,4,4,4,4,4,4,4,6,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,6,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,0,0,0,0,0,6,0,0,0,0,0,0,0,0,0,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,4,4,4,4,4,4,4,4,4,4,6,6,4,6,6,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,4,4,6,6,6,6,6,6,6,6,6,4,6,6,6,6,0,0,0,0,0,0,0,0,0,0,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,4,4,4,4,4,4,4,4,4,4,6,4,4,4,4,6,6,6,2,4,3,3,4,3,3,3,3,6,6,6,6,1,1,1,1,6,6,6,6,6,6,3,3,3,6,6,6,6,6,6,6,6,4,4,4,4,4,4,4,4,4,4,4,4,6,6,6,6,6,6,6,4,4,4,4,4,4,4,4,4,6,6,6,6,6,4,4,4,4,4,4,4,4,4,4,4,6,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,3,3,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,4,4,4,4,4,4,4,4,4,4,4,4,4,6,6,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,4,4,4,6,6,0,0,0,0,0,6,0,0,0,0,0,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,4,4,4,4,4,4,4,4,4,6,6,6,4,4,4,4,4,4,4,4,3,3,3,3,3,3,6,6,6,6,6,6,6,6,6,0,6,6,6,6,3,3,3,3,3,6,6,6,6,6,6,6,4,4,4,4,4,4,4,4,4,4,4,4,6,6,6,6,6,6,6,4,4,4,4,4,4,4,4,4,4,6,6,6,6,4,4,4,4,4,4,4,4,4,4,4,4,6,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,0,0,0,0,0,6,0,0,0,0,0,0,0,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,3,3,3,3,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,6,4,4,4,4,4,4,4,4,4,4,4,4,4,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,4,6,6,6,6,0,0,0,6,6,0,0,0,0,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,4,4,4,4,4,4,4,4,4,4,6,6,6,4,6,4,4,4,4,4,6,3,3,3,3,3,6,6,6,6,6,6,6,6,6,0,0,0,6,6,6,6,3,3,3,3,3,6,6,6,6,6,6,4,4,4,4,4,4,4,4,4,4,4,4,6,6,6,4,4,6,6,4,4,4,7,7,4,4,4,4,4,4,6,6,6,4,4,4,4,4,4,4,4,4,4,4,4,6,6,6,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,0,0,3,3,3,0,0,0,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,3,3,3,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,4,4,4,4,6,4,6,6,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,4,6,6,6,6,6,6,6,6,6,0,0,0,0,6,6,6,6,4,4,4,4,4,4,4,4,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,4,4,4,4,4,4,4,4,4,4,4,6,6,6,6,6,6,4,4,4,6,3,3,3,3,6,6,6,6,6,6,6,6,6,6,6,0,6,6,6,6,6,6,3,3,3,3,6,6,6,6,6,6,6,4,4,4,4,4,4,4,4,4,4,4,4,6,6,6,6,6,6,4,4,4,4,7,4,4,4,4,4,4,6,6,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,6,6,6,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,3,3,3,3,3,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,3,3,3,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,4,4,4,4,4,4,4,4,4,4,4,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,Line truncated
}
function getTilePallet()
{
return ["tropic_cliff_grass","tropic_plants","tropic_grass_c","tropic_grass_plants","tropic_dirt_a","tropic_beach_dry","tropic_dirt_a_plants","tropic_cliff_a",];
}
@@ -0,0 +1,11 @@
{
"settings" : {
"Name" : "Amazon",
"Script" : "amazon.js",
"Description" : "The Amazon River in South America is the largest river by discharge of water in the world, and the longest in length. The Amazon basin is the largest drainage basin in the world, with an area of approximately 7,050,000 square kilometers, and accounts for roughly one-fifth of the world's total river flow.",
"BaseTerrain" : ["medit_sea_depths"],
"BaseHeight" : 1,
"Preview" : "amazon.png",
"CircularMap" : false
}
}
@@ -0,0 +1,523 @@
// Coordinates: 49.665548, 10.541500
// Map Width: 5000km
RMS.LoadLibrary("rmgen");
RMS.LoadLibrary("rmgen2");
InitMap();
log("Initializing environment...");
setBiome(1);
initMapSettings();
initTileClasses(["autumn", "desert", "medit", "polar", "steppe", "temp"]);
setSunColor(0.733, 0.746, 0.574);
setWindAngle(-0.589049);
setWaterTint(0.556863, 0.615686, 0.643137);
setWaterColor(0.494118, 0.639216, 0.713726);
setWaterWaviness(8);
setWaterMurkiness(0.87);
setWaterType("ocean");
setTerrainAmbientColor(0.72, 0.72, 0.82);
setSunRotation(PI * 0.95);
setSunElevation(PI / 6);
setSkySet("cumulus");
setFogFactor(0);
setFogThickness(0);
setFogColor(0.69, 0.616, 0.541);
setPPEffect("hdr");
setPPContrast(0.67);
setPPSaturation(0.42);
setPPBloom(0.23);
log("Resetting terrain...");
resetTerrain(g_Terrains.mainTerrain, g_TileClasses.land, 1);
RMS.SetProgress(10);
var biomes = {
"autumn": {
// terrains
"mainTerrain": "temp_grass_d_aut",
"forestFloor1": "temp_grass_long_b_aut",
"forestFloor2": "temp_grass_long_b_aut",
"roadWild": "temp_overgrown_road_autumn",
"road": "temp_road_autumn",
// gaia
"tree1": "gaia/flora_tree_oak_aut_new",
"tree2": "gaia/flora_tree_oak_dead",
"tree3": "gaia/flora_tree_apple",
"tree4": "gaia/flora_tree_euro_beech_aut",
"tree5": "gaia/flora_tree_pine",
"fruitBush": "gaia/flora_bush_berry",
"mainHuntableAnimal": "gaia/fauna_sheep",
"secondaryHuntableAnimal": "gaia/fauna_wolf",
"stoneLarge": "gaia/geology_stonemine_temperate_quarry",
"stoneSmall": "gaia/geology_stone_temperate",
"metalLarge": "gaia/geology_metal_temperate_slabs",
"metalSmall": "gaia/geology_metal_temperate",
// decoratives
"grass": "actor|props/flora/grass_soft_dry_small.xml",
"grassShort": "actor|props/flora/grass_soft_dry_tuft_a.xml",
"rockLarge": "actor|geology/stone_granite_med.xml",
"rockMedium": "actor|geology/stone_granite_small.xml",
"bushMedium": "actor|props/flora/bush_medit_me_dry.xml",
"bushSmall": "actor|props/flora/bush_medit_sm_dry.xml",
},
"desert": {
// terrains
"mainTerrain": "sand_scrub_100",
"forestFloor1": "sand_scrub_25",
"forestFloor2": "sand_scrub_25",
"roadWild": "desert_city_tile_pers",
"road": "desert_city_tile_pers_dirt",
// gaia
"tree1": "gaia/flora_tree_cretan_date_palm_short",
"tree2": "gaia/flora_tree_senegal_date_palm",
"tree3": "gaia/flora_tree_date_palm",
"tree4": "gaia/flora_tree_cretan_date_palm_tall",
"tree5": "gaia/flora_tree_date_palm",
"fruitBush": "gaia/flora_bush_grapes",
"mainHuntableAnimal": "gaia/fauna_camel",
"secondaryHuntableAnimal": "gaia/fauna_gazelle",
"stoneLarge": "gaia/geology_stonemine_desert_quarry",
"stoneSmall": "gaia/geology_stone_desert_small",
"metalLarge": "gaia/geology_metal_desert_slabs",
"metalSmall": "gaia/geology_metal_desert_small",
// decoratives
"grass": "actor|props/flora/grass_field_parched_tall.xml",
"grassShort": "actor|props/flora/grass_soft_dry_tuft_a.xml",
"rockLarge": "actor|structures/gravestone.xml",
"rockMedium": "actor|geology/stone_desert_med.xml",
"bushMedium": "actor|props/flora/bush_desert_dry_a.xml",
"bushSmall": "actor|props/flora/plant_desert_a.xml",
},
"medit": {
// terrains
"mainTerrain": "medit_grass_field_a",
"forestFloor1": "medit_grass_wild",
"forestFloor2": "medit_grass_wild",
"roadWild": "road_rome_a",
"road": "road_muddy",
// gaia
"tree1": "gaia/flora_tree_poplar_lombardy",
"tree2": "gaia/flora_tree_cypress",
"tree3": "gaia/flora_tree_olive",
"tree4": "gaia/flora_tree_carob",
"tree5": "gaia/flora_tree_tamarix",
"fruitBush": "gaia/flora_bush_grapes",
"mainHuntableAnimal": "gaia/fauna_deer",
"secondaryHuntableAnimal": "gaia/fauna_goat",
"stoneLarge": "gaia/geology_stonemine_medit_quarry",
"stoneSmall": "gaia/geology_stone_mediterranean",
"metalLarge": "gaia/geology_metal_mediterranean_slabs",
"metalSmall": "gaia/geology_metal_greek",
// decoratives
"grass": "actor|props/flora/grass_soft_small_tall.xml",
"grassShort": "actor|props/flora/grass_soft_small.xml",
"rockLarge": "actor|geology/stone_granite_greek_large.xml",
"rockMedium": "actor|geology/stone_granite_greek_med.xml",
"bushMedium": "actor|props/flora/bush_medit_underbrush.xml",
"bushSmall": "actor|props/flora/bush_medit_me_lush.xml",
},
"polar": {
// terrains
"mainTerrain": "polar_tundra_snow",
"forestFloor1": "ice_dirt",
"forestFloor2": "ice_dirt",
"roadWild": "road_flat",
"road": "road1",
// gaia
"tree1": "gaia/flora_tree_pine_w",
"tree2": "gaia/flora_tree_dead",
"tree3": "gaia/flora_tree_dead",
"tree4": "gaia/flora_tree_pine_w",
"tree5": "gaia/flora_tree_pine_w",
"fruitBush": "gaia/fauna_wolf_snow",
"mainHuntableAnimal": "gaia/fauna_muskox",
"secondaryHuntableAnimal": "gaia/fauna_wolf",
"stoneLarge": "gaia/geology_stonemine_alpine_quarry",
"stoneSmall": "gaia/geology_stone_alpine_a",
"metalLarge": "gaia/geology_metal_alpine_slabs",
"metalSmall": "gaia/geology_metal_alpine",
// decoratives
"grass": "actor|props/flora/grass_field_parched_short.xml",
"grassShort": "actor|props/flora/grass_soft_dry_tuft_a.xml",
"rockLarge": "actor|geology/stone_granite_med.xml",
"rockMedium": "actor|geology/stone_granite_small.xml",
"bushMedium": "actor|props/flora/bush_highlands.xml",
"bushSmall": "actor|props/flora/bush_medit_sm.xml",
},
"steppe": {
// terrains
"mainTerrain": "steppe_grass_a",
"forestFloor1": "steppe_grass_c",
"forestFloor2": "steppe_grass_c",
"roadWild": "road2",
"road": "medit_city_tile_dirt",
// gaia
"tree1": "gaia/flora_tree_poplar",
"tree2": "gaia/flora_tree_toona",
"tree3": "gaia/flora_tree_dead",
"tree4": "gaia/flora_tree_acacia",
"tree5": "gaia/flora_tree_poplar_lombardy",
"fruitBush": "gaia/flora_bush_grapes",
"mainHuntableAnimal": "gaia/fauna_deer",
"secondaryHuntableAnimal": "gaia/fauna_horse",
"stoneLarge": "gaia/geology_stonemine_alpine_quarry",
"stoneSmall": "gaia/geology_stone_alpine_a",
"metalLarge": "gaia/geology_metal_alpine_slabs",
"metalSmall": "gaia/geology_metal_alpine",
// decoratives
"grass": "actor|props/flora/grass_medit_flowering_tall.xml",
"grassShort": "actor|props/flora/grass_field_bloom_short.xml",
"rockLarge": "actor|geology/stone_granite_greek_med.xml",
"rockMedium": "actor|geology/stone_granite_greek_small.xml",
"bushMedium": "actor|props/flora/bush_dry_a.xml",
"bushSmall": "actor|props/flora/bush_highlands.xml",
},
"temp": {
// terrains
"mainTerrain": "temp_grass_long",
"forestFloor1": "temp_grass_clovers_2",
"forestFloor2": "temp_grass_clovers_2",
"roadWild": "temp_road_overgrown",
"road": "temp_road",
// gaia
"tree1": "gaia/flora_tree_oak_new",
"tree2": "gaia/flora_tree_oak_dead",
"tree3": "gaia/flora_tree_apple",
"tree4": "gaia/flora_tree_euro_beech",
"tree5": "gaia/flora_tree_oak_large",
"fruitBush": "gaia/flora_bush_berry",
"mainHuntableAnimal": "gaia/fauna_pig",
"secondaryHuntableAnimal": "gaia/fauna_boar",
"stoneLarge": "gaia/geology_stonemine_temperate_quarry",
"stoneSmall": "gaia/geology_stone_temperate",
"metalLarge": "gaia/geology_metal_temperate_slabs",
"metalSmall": "gaia/geology_metal_temperate",
// decoratives
"grass": "actor|props/flora/grass_soft_large_tall.xml",
"grassShort": "actor|props/flora/grass_soft_large.xml",
"rockLarge": "actor|geology/stone_granite_large.xml",
"rockMedium": "actor|geology/stone_granite_med.xml",
"bushMedium": "actor|props/flora/bush_tempe_b.xml",
"bushSmall": "actor|props/flora/bush_tempe_underbrush.xml",
}
};
log("Copying heightmap...");
var scale = paintHeightmap(getHeightMap(), getTileMap(), getTilePallet(), (tile, x, y) => {
if (tile.indexOf("cliff") >= 0)
addToClass(x, y, g_TileClasses.mountain);
if (tile.indexOf("desert") >= 0)
addToClass(x, y, g_TileClasses.desert);
if (tile.indexOf("medit") >= 0 && tile.indexOf("sand") < 0)
addToClass(x, y, g_TileClasses.medit);
if (tile.indexOf("polar") >= 0)
addToClass(x, y, g_TileClasses.polar);
if (tile.indexOf("steppe") >= 0)
addToClass(x, y, g_TileClasses.steppe);
if (tile.indexOf("temp") >= 0)
addToClass(x, y, g_TileClasses.temp);
if (tile.indexOf("aut") >= 0)
addToClass(x, y, g_TileClasses.autumn);
});
RMS.SetProgress(30);
log("Rendering water...");
paintTileClassBasedOnHeight(-100, -1, 3, g_TileClasses.water);
RMS.SetProgress(40);
log("Placing player bases...");
// Coordinate system of the heightmap
var singleBases = [
[70,30],
[90,180],
[270,75],
[240,280],
[160,180]
];
if (g_MapInfo.mapSize >= 320 || g_MapInfo.numPlayers > singleBases.length)
singleBases.push(
[140,60],
[170,250],
[210, 35],
[300,155],
[50,105]
);
var strongholdBases = [
[110,50],
[180,260],
[260,55]
];
randomPlayerPlacementAt(singleBases, strongholdBases, scale, 0.06, (singleBase) => {
for (let biome in biomes)
{
let classTiles = checkIfInClass(
Math.floor(singleBase[0] / scale),
Math.floor(singleBase[1] / scale),
g_TileClasses[biome]
);
if (classTiles > 0)
setLocalBiome(biomes[biome]);
}
});
RMS.SetProgress(50);
function setLocalBiome(b)
{
g_Terrains.mainTerrain = b.mainTerrain;
g_Terrains.forestFloor1 = b.forestFloor1;
g_Terrains.forestFloor2 = b.forestFloor2;
g_Terrains.roadWild = b.roadWild;
g_Terrains.road = b.road;
g_Gaia.tree1 = b.tree1;
g_Gaia.tree2 = b.tree2;
g_Gaia.tree3 = b.tree3;
g_Gaia.tree4 = b.tree4;
g_Gaia.tree5 = b.tree5;
g_Gaia.fruitBush = b.fruitBush;
g_Gaia.mainHuntableAnimal = b.mainHuntableAnimal;
g_Gaia.secondaryHuntableAnimal = b.secondaryHuntableAnimal;
g_Gaia.stoneLarge = b.stoneLarge;
g_Gaia.stoneSmall = b.stoneSmall;
g_Gaia.metalLarge = b.metalLarge;
g_Gaia.metalSmall = b.metalSmall;
g_Decoratives.grass = b.grass;
g_Decoratives.grassShort = b.grassShort;
g_Decoratives.rockLarge = b.rockLarge;
g_Decoratives.rockMedium = b.rockMedium;
g_Decoratives.bushMedium = b.bushMedium;
g_Decoratives.bushSmall = b.bushSmall;
initBiome();
}
log("Placing fish...");
g_Gaia.fish = "gaia/fauna_fish";
addElements([
{
"func": addFish,
"avoid": [
g_TileClasses.fish, 10,
],
"stay": [g_TileClasses.water, 4],
"sizes": ["normal"],
"mixes": ["similar"],
"amounts": ["many"]
}
]);
RMS.SetProgress(60);
log("Placing whale...");
g_Gaia.fish = "gaia/fauna_whale_fin";
addElements([
{
"func": addFish,
"avoid": [
g_TileClasses.fish, 2,
g_TileClasses.desert, 50,
g_TileClasses.steppe, 50
],
"stay": [g_TileClasses.water, 7],
"sizes": ["normal"],
"mixes": ["same"],
"amounts": ["scarce"]
}
]);
RMS.SetProgress(70);
log("Rendering local biomes...");
for (let biome in biomes)
{
setLocalBiome(biomes[biome]);
let localAvoid = g_TileClasses[biome == "temp" ? "plateau" : "autumn"];
let treeCount = biome == "desert" ? "normal" : "tons";
addElements([
{
"func": addMetal,
"avoid": [
g_TileClasses.berries, 5,
g_TileClasses.forest, 3,
g_TileClasses.mountain, 2,
g_TileClasses.player, 30,
g_TileClasses.rock, 10,
g_TileClasses.metal, 20,
g_TileClasses.water, 4,
localAvoid, 2
],
"stay": [g_TileClasses[biome], 0],
"sizes": ["normal"],
"mixes": ["same"],
"amounts": ["many"]
},
{
"func": addStone,
"avoid": [
g_TileClasses.berries, 5,
g_TileClasses.forest, 3,
g_TileClasses.mountain, 2,
g_TileClasses.player, 30,
g_TileClasses.rock, 20,
g_TileClasses.metal, 10,
g_TileClasses.water, 4,
localAvoid, 2
],
"stay": [g_TileClasses[biome], 0],
"sizes": ["normal"],
"mixes": ["same"],
"amounts": ["many"]
},
{
"func": addForests,
"avoid": [
g_TileClasses.berries, 5,
g_TileClasses.forest, 5,
g_TileClasses.metal, 3,
g_TileClasses.mountain, 3,
g_TileClasses.player, 20,
g_TileClasses.rock, 3,
g_TileClasses.water, 3,
localAvoid, 2
],
"stay": [g_TileClasses[biome], 0],
"sizes": ["normal"],
"mixes": ["normal"],
"amounts": [treeCount]
},
{
"func": addSmallMetal,
"avoid": [
g_TileClasses.berries, 5,
g_TileClasses.forest, 3,
g_TileClasses.mountain, 2,
g_TileClasses.player, 30,
g_TileClasses.rock, 10,
g_TileClasses.metal, 15,
g_TileClasses.water, 4,
localAvoid, 2
],
"stay": [g_TileClasses[biome], 0],
"sizes": ["normal"],
"mixes": ["same"],
"amounts": ["few", "normal", "many"]
},
{
"func": addBerries,
"avoid": [
g_TileClasses.berries, 30,
g_TileClasses.forest, 2,
g_TileClasses.metal, 4,
g_TileClasses.mountain, 2,
g_TileClasses.player, 20,
g_TileClasses.rock, 4,
g_TileClasses.water, 2,
localAvoid, 2
],
"stay": [g_TileClasses[biome], 0],
"sizes": ["normal"],
"mixes": ["normal"],
"amounts": ["tons"]
},
{
"func": addAnimals,
"avoid": [
g_TileClasses.animals, 10,
g_TileClasses.forest, 1,
g_TileClasses.metal, 2,
g_TileClasses.mountain, 1,
g_TileClasses.player, 15,
g_TileClasses.rock, 2,
g_TileClasses.water, 1,
localAvoid, 2
],
"stay": [g_TileClasses[biome], 0],
"sizes": ["normal"],
"mixes": ["normal"],
"amounts": ["tons"]
},
{
"func": addAnimals,
"avoid": [
g_TileClasses.animals, 10,
g_TileClasses.forest, 1,
g_TileClasses.metal, 2,
g_TileClasses.mountain, 1,
g_TileClasses.player, 15,
g_TileClasses.rock, 2,
g_TileClasses.water, 1,
localAvoid, 2
],
"stay": [g_TileClasses[biome], 0],
"sizes": ["small"],
"mixes": ["normal"],
"amounts": ["tons"]
},
{
"func": addStragglerTrees,
"avoid": [
g_TileClasses.berries, 5,
g_TileClasses.forest, 5,
g_TileClasses.metal, 2,
g_TileClasses.mountain, 1,
g_TileClasses.player, 12,
g_TileClasses.rock, 2,
g_TileClasses.water, 3,
localAvoid, 2
],
"stay": [g_TileClasses[biome], 0],
"sizes": ["normal"],
"mixes": ["normal"],
"amounts": [treeCount]
},
{
"func": addDecoration,
"avoid": [
g_TileClasses.forest, 2,
g_TileClasses.mountain, 2,
g_TileClasses.player, 12,
g_TileClasses.water, 4,
localAvoid, 2
],
"stay": [g_TileClasses[biome], 0],
"sizes": ["small"],
"mixes": ["same"],
"amounts": ["normal"]
}
]);
}
RMS.SetProgress(90);
ExportMap();
function getHeightMap()
{
return [4,4,4,4,4,4,4,3,2,1,-0.89,-1.78,-2.25,-2.75,-3,-3,-3,-3.09,-3.22,-3.40,-3.58,-3.58,-2.75,-5.17,-5.58,-6.89,-7.49,-8.04,-9.64,-10,-10,-10,-11,-11,-11,-11,-11,-11,-11,-11,-11,-10,-9.72,-8.76,-7.72,-6.92,-6.54,-6.23,-6.40,-6.39,-6.38,-6.37,-6.40,-6.54,-6.80,-7.14,-7.53,-7.85,-8.08,-8.24,-8.33,-8.35,-8.28,-8.43,-8.49,-8.41,-8.26,-7.97,-7.55,-7.03,-6.67,-6.54,-7.33,-7.96,-8.37,-8.60,-8.89,-9.17,-9.37,-9.68,-10,-10,-10,-10,-10,-10,-9.86,-9.59,-9.14,-8.53,-7.76,-6.98,-6.62,-6.28,-5.97,-5.63,-5.22,-4.98,-5.02,-5.38,-5.76,-6.03,-6.60,-7.35,-7.96,-8.39,-8.72,-8.98,-9.42,-10,-10,-10,-11,-11,-11,-10,-10,-10,-10,-9.42,-8.98,-8.68,-8.39,-7.93,-7.64,-7.50,-7.54,-7.51,-7.38,-7.09,-6.73,-6.26,-6.02,-5.96,-5.84,-5.83,-5.78,-5.63,-5.34,-5.10,-5.10,-5.35,-5.74,-6.11,-6.41,-6.71,-6.88,-6.93,-6.90,-6.79,-6.65,-6.83,-6.98,-7.35,-7.72,-7.89,-8.22,-8.58,-8.85,-9.02,-9.04,-8.88,-8.75,-8.61,-8.34,-8.10,-8,-8.10,-8.24,-8.26,-8.16,-8.04,-7.97,-7.91,-8,-8.25,-8.63,-8.88,-8.88,-8.50,-8.33,-8.11,-8.05,-8.21,-8.39,-8.68,-9.05,-9.74,-10,-11,-11,-11,-11,-11,-10,-10,-10,-10,-10,-10,-10,-9.99,-9.85,-9.63,-9.65,-9.72,-9.76,-9.66,-9.63,-9.78,-10,-10,-10,-10,-11,-11,-12,-12,-12,-13,-13,-14,-14,-15,-15,-15,-15,-14,-14,-13,-13,-13,-13,-13,-13,-13,-12,-11,-10,-9.83,-8.90,-7.87,-6.75,-5.75,-5.49,-5.22,-5.13,-5.50,-5.90,-6.23,-6.37,-6.42,-6.54,-6.66,-6.75,-6.74,-6.66,-7.11,-7.39,-7.68,-8.04,-8.50,-8.87,-9.05,-9.47,-9.89,-10,-10,-10,-10,-9.75,-9.68,-10,-10,-11,-11,-12,-12,-12,-13,-13,-12,-11,-12,-13,-13,-13,-13,-13,-13,-13,-14,-14,-13,-12,-10,-9.43,-8.26,-7.42,-6.58,-6.09,-5.89,-6.03,-6.67,-7.18,-7.63,-7.90,-8.22,-8.48,-8.59,-8.54,-8.62,-8.66,-8.63,-8.50,-8.27,-7.93,-7.51,-6.99,-6.35,4,4,4,4,4,4,3,3,2,1,-0.78,-1.25,-2.04,-2.63,-2.93,-3,-3,-3.16,-3.42,-3.76,-4.21,-4.64,-5.53,-6.49,-7.74,-7.84,-7.85,-8.59,-9.23,-10,-10,-11,-11,-11,-12,-12,-12,-12,-12,-11,-11,-10,-10,-9.51,-8.46,-7.64,-7.24,-7.08,-7.26,-7.33,-7.37,-7.38,-7.28,-7.54,-7.67,-7.75,-7.89,-8.11,-8.33,-8.48,-8.55,-8.59,-8.67,-8.84,-8.88,-8.80,-8.63,-8.36,-7.96,-7.59,-7.38,-7.63,-8.27,-8.88,-9.27,-9.52,-9.66,-9.93,-10,-10,-11,-11,-11,-11,-11,-11,-11,-10,-10,-9.71,-9.14,-8.52,-7.93,-7.62,-7.17,-6.85,-6.38,-6.14,-6.26,-6.39,-6.62,-7.01,-7.67,-8.25,-8.74,-9.18,-9.62,-9.97,-10,-10,-11,-11,-11,-11,-11,-11,-11,-11,-11,-10,-9.87,-9.33,-9.03,-8.58,-8.28,-8.15,-8.18,-8.12,-7.97,-7.72,-7.35,-6.97,-6.67,-6.71,-6.61,-6.59,-6.53,-6.36,-6.29,-6.23,-6.01,-6.28,-6.73,-7.03,-7.22,-7.43,-7.61,-7.67,-7.64,-7.66,-7.72,-7.89,-7.93,-8.36,-8.74,-8.88,-9.21,-9.53,-9.85,-10,-10,-9.89,-9.61,-9.43,-9.16,-8.77,-8.71,-8.85,-9,-9,-8.90,-8.85,-8.76,-9.21,-9.17,-9.90,-10,-10,-10,-9.90,-9.10,-8.83,-8.27,-8.38,-8.60,-8.93,-9.75,-10,-10,-11,-12,-12,-12,-11,-11,-10,-10,-10,-10,-10,-9.98,-9.92,-9.75,-9.59,-9.54,-9.64,-9.73,-9.63,-9.53,-9.75,-10,-10,-10,-10,-11,-11,-12,-12,-13,-13,-14,-14,-15,-15,-15,-15,-15,-15,-14,-14,-15,-16,-16,-16,-15,-15,-14,-14,-13,-12,-11,-10,-9.27,-8.40,-7.50,-6.90,-6.79,-6.99,-7.38,-7.71,-7.88,-7.78,-7.55,-7.27,-7.24,-7.17,-7.39,-7.87,-8.17,-8.63,-9.17,-9.51,-9.73,-10,-10,-10,-11,-11,-11,-10,-10,-10,-11,-11,-12,-13,-13,-14,-14,-14,-15,-13,-14,-13,-14,-14,-15,-15,-15,-15,-16,-16,-15,-15,-13,-12,-10,-9.73,-8.77,-7.88,-6.88,-6.15,-6.50,-7.09,-7.63,-8.02,-8.48,-8.88,-9.10,-9.25,-9.22,-9.12,-9.17,-9.14,-9.01,-8.78,-8.49,-8.05,-7.52,-6.88,4,4,4,4,4,4,3,3,2,1,0.73,-0.79,-1.75,-2.63,-2.80,-3,-3,-3.18,-3.53,-4.03,-4.71,-5.55,-6.59,-7.75,-8.60,-9.13,-8.49,-8.75,-9.02,-9.55,-10,-11,-11,-11,-12,-12,-12,-12,-12,-12,-11,-11,-10,-10,-9,-8.21,-7.83,-7.90,-8.27,-8.35,-8.40,-8.42,-8.38,-8.55,-8.68,-8.64,-8.64,-8.60,-8.50,-8.64,-8.73,-8.75,-8.97,-9.12,-9.14,-9.09,-8.92,-8.63,-8.24,-8.12,-8.25,-8.53,-9.03,-9.65,-10,-10,-10,-10,-11,-11,-12,-12,-13,-13,-12,-12,-12,-11,-11,-10,-10,-9.96,-9.22,-8.73,-8.24,-7.88,-7.48,-7.27,-7.38,-7.34,-7.43,-7.88,-8.62,-9.14,-9.53,-9.97,-10,-10,-11,-11,-12,-12,-12,-12,-12,-12,-12,-12,-12,-11,-10,-10,-9.64,-9.37,-9.14,-9.03,-9,-8.92,-8.68,-8.35,-7.88,-7.63,-7.51,-7.50,-7.41,-7.22,-7.28,-7.36,-7.46,-7.40,-7.38,-7.83,-8.18,-8.52,-8.62,-8.53,-8.40,-8.28,-8.41,-8.53,-8.63,-8.80,-9,-9.42,-9.75,-9.99,-10,-10,-10,-10,-10,-10,-10,-10,-9.88,-9.83,-9.77,-9.75,-9.71,-9.61,-9.50,-9.42,-9.66,-10,-10,-10,-11,-11,-11,-10,-10,-9.72,-9.15,-8.79,-8.67,-9.28,-10,-10,-11,-12,-12,-12,-12,-11,-11,-10,-10,-9.99,-10,-9.89,-9.77,-9.74,-9.53,-9.41,-9.36,-9.49,-9.51,-9.46,-9.30,-9.54,-9.88,-10,-10,-10,-11,-11,-12,-12,-13,-13,-14,-15,-15,-15,-15,-15,-15,-15,-15,-16,-17,-18,-18,-18,-17,-17,-17,-16,-15,-14,-13,-12,-11,-11,-10,-9.66,-9.21,-9.29,-9.49,-9.72,-9.84,-9.76,-9.47,-9,-8.36,-8,-8.16,-8.49,-8.92,-9.50,-10,-10,-10,-10,-11,-11,-11,-11,-11,-11,-11,-11,-12,-12,-13,-14,-15,-15,-15,-16,-16,-17,-15,-16,-17,-15,-16,-18,-16,-18,-18,-18,-18,-17,-15,-13,-12,-11,-10,-9.15,-8.13,-7.18,-7.09,-7.43,-7.92,-8.48,-8.99,-9.37,-9.63,-9.75,-9.72,-9.58,-9.60,-9.54,-9.43,-9.23,-8.89,-8.49,-7.97,-7.35,4,4,4,4,4,4,3,3,2,2,0.75,-0.63,-1.17,-1.93,-2.63,-2.88,-3,-3.04,-3.47,-4.08,-4.90,-5.93,-7.17,-8.37,-9.35,-10,-9.55,-8.91,-8.87,-9.05,-Line truncated
}
function getTileMap()
{
return [0,0,0,1,0,1,0,0,2,2,2,2,2,3,3,2,2,2,2,2,2,2,2,2,3,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,0,0,1,1,0,1,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,0,1,1,1,4,4,4,2,2,2,2,2,2,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,0,3,3,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,1,4,4,5,4,4,4,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,0,4,4,5,5,5,4,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,4,4,4,5,5,5,5,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,4,4,4,6,4,7,5,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,4,4,4,4,6,4,5,5,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,4,4,4,4,4,4,7,5,5,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,Line truncated
}
function getTilePallet()
{
return ["medit_grass_field_a","medit_grass_field_b","desert_sand_wet","medit_river_rocks_wet","dirtc","desert_dirt_rocks_3","desert_dirt_rocks_1","desert_dirt_rocks_2","desert_rough","temp_cliff_c","temp_sea_weed","temp_grass_wet","temp_sea_rocks","temp_dirt_gravel_plants","temp_grass_mossy","temp_grass_clovers","temp_grass_d","temp_grass_clovers_2","temp_grass_3","temp_mud_plants","temp_grass_long_b","desert_cliff_egypt_2","temp_grass_plants","temp_grass_long","temp_grass_2","medit_grass_field","temp_grass","temp_grass_4","temp_grass_c","desert_dirt_rough","desert_grass_a_sand","medit_grass_field_dry","medit_grass_shrubs","desert_grass_a","temp_plants_bog","steppe_dirt_b","medit_cliff_italia","temp_dirt_gravel_b","medit_shrubs","alpine_cliff_a","desert_sahara","steppe_dirt_rocks_a","medit_rocks_grass","sand_dune_a","alpine_dirt","steppe_dirt_a","medit_grass_field_brown","alpine_cliff_c","medit_shrubs_golden","medit_grass_wild_2","temp_grass_b","alpine_shore_rocks","medit_cliff_greek_2","alpine_shore_rocks_icy","alpine_dirt_grass_50","polar_snow_glacial","alpine_grass_snow_50","polar_ice_snow","polar_tundra_snow","polar_cliff_snow","medit_grass_flowers","alpine_dirt_snow","medit_grass_wild","beach_scrub_50_","beach_cliff_a_50","polar_snow_a","grass_underwater_b","ice_dirt","medit_forestfloor_a","beach_scrub_75","alpine_cliff_b","alpine_forrestfloor_snow","sand","alpine_snow_rocky","medit_cliff_grass","medit_cliff_greek","medit_rocks_shrubs","medit_rocks_grass_shrubs","sand_d","medit_plants_dirt","alpine_grass_rocky","alpine_cliff_snow","medit_cliff_italia_grass","temp_dirt_gravel","medit_cliff_aegean","medit_cliff_aegean_shrubs","beach_cliff_a_75","alpine_grass_c","alpine_grass_b","new_alpine_grass_b","new_alpine_grass_e","polar_ice_cracked","LavaTest05","steppe_grass_c","steppe_grass_a","temp_grass_c_aut","alpine_forrestfloor","rock_metamorphic","temp_forestfloor_pine","alpine_grass_d","LavaTest06","steppe_grass_dirt_33","temp_grass_plants_aut","temp_grass_aut","medit_shrubs_dry","alpine_grass","alpine_grass_a","steppe_grass_b","temp_grass_d_aut","temp_grass_b_aut","steppe_grass_d","temp_cliff_a","temp_cliff_b","temp_grass_long_b_aut","steppe_grass_green_a","steppe_grass_dirt_66","steppe_river_rocks","steppe_river_rocks_dirt","steppe_river_rocks_wet","alpine_shore_rocks_grass_50","desert_cliff_persia_crumbling","desert_grass_a_stones","desert_sand_scrub","desert_dirt_rocks_3_scrub","desert_dirt_persia_rocks","desert_lakebed_dry","desert_sand_stones","desert_sand_dunes_rocks","desert_pebbles_rough","desert_sand_dunes_stones","desert_pebbles_rough_wet","desert_dirt_persia_2",];
}
@@ -0,0 +1,11 @@
{
"settings" : {
"Name" : "Mediterranean",
"Script" : "mediterranean.js",
"Description" : "The Mediterranean Sea is a sea connected to the Atlantic Ocean surrounded by the Mediterranean Basin and almost completely enclosed by land: on the north by Southern Europe and Anatolia, on the south by North Africa, and on the east by the Levant. The name Mediterranean is derived from the Latin mediterraneus, meaning 'inland' or 'in the middle of land'.",
"BaseTerrain" : ["medit_sea_depths"],
"BaseHeight" : 1,
"Preview" : "mediterranean.png",
"CircularMap" : false
}
}
@@ -0,0 +1,273 @@
// Coordinates: 21.824205, 40.289810
// Map Width: 2900km
RMS.LoadLibrary("rmgen");
RMS.LoadLibrary("rmgen2");
InitMap();
log("Initializing biome...");
setBiome(3);
initMapSettings();
initTileClasses();
setSunColor(0.733, 0.746, 0.574);
setWindAngle(-0.43);
setWaterTint(0.161, 0.286, 0.353);
setWaterColor(0.129, 0.176, 0.259);
setWaterWaviness(8);
setWaterMurkiness(0.87);
setWaterType("lake");
setTerrainAmbientColor(0.58, 0.443, 0.353);
setSunRotation(PI * 1.1);
setSunElevation(PI / 7);
setFogFactor(0);
setFogThickness(0);
setFogColor(0.69, 0.616, 0.541);
setPPEffect("hdr");
setPPContrast(0.67);
setPPSaturation(0.42);
setPPBloom(0.23);
g_Terrains.mainTerrain = "desert_dirt_rocks_2";
g_Terrains.forestFloor1 = "desert_grass_a_sand";
g_Terrains.forestFloor2 = "desert_grass_a_sand";
g_Terrains.tier1Terrain = "desert_dirt_rocks_2";
g_Terrains.tier2Terrain = "desert_dirt_rough";
g_Terrains.tier3Terrain = "desert_dirt_rough";
g_Terrains.tier4Terrain = "desert_sand_stones";
g_Terrains.roadWild = "road2";
g_Terrains.road = "road2";
g_Gaia.tree1 = "gaia/flora_tree_date_palm";
g_Gaia.tree2 = "gaia/flora_tree_senegal_date_palm";
g_Gaia.tree3 = "gaia/flora_tree_fig";
g_Gaia.tree4 = "gaia/flora_tree_cretan_date_palm_tall";
g_Gaia.tree5 = "gaia/flora_tree_cretan_date_palm_short";
g_Gaia.fruitBush = "gaia/flora_bush_grapes";
g_Decoratives.grass = "actor|props/flora/grass_field_dry_tall_b.xml";
g_Decoratives.grassShort = "actor|props/flora/grass_field_parched_short.xml";
g_Decoratives.rockLarge = "actor|geology/stone_desert_med.xml";
g_Decoratives.rockMedium = "actor|geology/stone_savanna_med.xml";
g_Decoratives.bushMedium = "actor|props/flora/bush_desert_dry_a.xml";
g_Decoratives.bushSmall = "actor|props/flora/bush_medit_sm_dry.xml";
initBiome();
log("Resetting terrain...");
resetTerrain(g_Terrains.mainTerrain, g_TileClasses.land, 1);
RMS.SetProgress(10);
log("Copying heightmap...");
var scale = paintHeightmap(getHeightMap(), getTileMap(), getTilePallet(), (tile, x, y) => {
if (tile.indexOf("cliff") >= 0)
addToClass(x, y, g_TileClasses.mountain);
});
RMS.SetProgress(30);
log("Rendering water...");
paintTileClassBasedOnHeight(-100, -1, 3, g_TileClasses.water);
RMS.SetProgress(40);
log("Placing players...");
// Coordinate system of the heightmap
var singleBases = [
[175, 30],
[45, 210],
[280, 180],
[180, 180],
[230, 115],
[130, 280],
[200, 253],
[90, 115],
[45, 45]
];
var strongholdBases = [
[50, 160],
[100, 50],
[170, 260],
[260, 160]
];
randomPlayerPlacementAt(singleBases, strongholdBases, scale, 0.04);
RMS.SetProgress(50);
log("Adding mines and forests...");
addElements(shuffleArray([
{
"func": addMetal,
"avoid": [
g_TileClasses.berries, 5,
g_TileClasses.forest, 3,
g_TileClasses.mountain, 2,
g_TileClasses.player, 30,
g_TileClasses.rock, 10,
g_TileClasses.metal, 20,
g_TileClasses.water, 3
],
"sizes": ["normal"],
"mixes": ["same"],
"amounts": ["normal", "many"]
},
{
"func": addStone,
"avoid": [
g_TileClasses.berries, 5,
g_TileClasses.forest, 3,
g_TileClasses.mountain, 2,
g_TileClasses.player, 30,
g_TileClasses.rock, 20,
g_TileClasses.metal, 10,
g_TileClasses.water, 3
],
"sizes": ["normal"],
"mixes": ["same"],
"amounts": ["normal", "many"]
},
{
"func": addForests,
"avoid": [
g_TileClasses.berries, 5,
g_TileClasses.forest, 18,
g_TileClasses.metal, 3,
g_TileClasses.mountain, 5,
g_TileClasses.player, 20,
g_TileClasses.rock, 3,
g_TileClasses.water, 2
],
"sizes": ["big"],
"mixes": ["similar"],
"amounts": ["few"]
}
]));
RMS.SetProgress(60);
log("Adding berries and animals...");
addElements(shuffleArray([
{
"func": addBerries,
"avoid": [
g_TileClasses.berries, 30,
g_TileClasses.forest, 5,
g_TileClasses.metal, 10,
g_TileClasses.mountain, 2,
g_TileClasses.player, 20,
g_TileClasses.rock, 10,
g_TileClasses.water, 3
],
"sizes": ["normal"],
"mixes": ["same"],
"amounts": ["normal", "many"]
},
{
"func": addAnimals,
"avoid": [
g_TileClasses.animals, 20,
g_TileClasses.forest, 2,
g_TileClasses.metal, 2,
g_TileClasses.mountain, 1,
g_TileClasses.player, 20,
g_TileClasses.rock, 2,
g_TileClasses.water, 3
],
"sizes": ["normal"],
"mixes": ["same"],
"amounts": ["many"]
},
{
"func": addFish,
"avoid": [
g_TileClasses.fish, 12,
g_TileClasses.player, 8
],
"stay": [g_TileClasses.water, 4],
"sizes": ["normal"],
"mixes": ["same"],
"amounts": ["many"]
},
{
"func": addStragglerTrees,
"avoid": [
g_TileClasses.berries, 5,
g_TileClasses.forest, 7,
g_TileClasses.metal, 2,
g_TileClasses.mountain, 1,
g_TileClasses.player, 12,
g_TileClasses.rock, 2,
g_TileClasses.water, 5
],
"sizes": ["big"],
"mixes": ["same"],
"amounts": ["many"]
}
]));
RMS.SetProgress(70);
log("Adding decoration...");
addElements([
{
"func": addLayeredPatches,
"avoid": [
g_TileClasses.dirt, 5,
g_TileClasses.forest, 2,
g_TileClasses.mountain, 2,
g_TileClasses.player, 12,
g_TileClasses.water, 3
],
"sizes": ["normal"],
"mixes": ["normal"],
"amounts": ["many"]
},
{
"func": addDecoration,
"avoid": [
g_TileClasses.forest, 2,
g_TileClasses.mountain, 2,
g_TileClasses.player, 12,
g_TileClasses.water, 3
],
"sizes": ["normal"],
"mixes": ["similar"],
"amounts": ["many"]
}
]);
RMS.SetProgress(80);
log("Adding reeds...");
createObjectGroups(
new SimpleGroup(
[
new SimpleObject(g_Decoratives.reeds, 5, 12, 1, 4),
new SimpleObject(g_Decoratives.rockMedium, 1, 2, 1, 5)
],
true,
g_TileClasses.dirt
),
0,
[
stayClasses(g_TileClasses.water, 1),
borderClasses(g_TileClasses.water, scaleByMapSize(2,8), scaleByMapSize(2,5))
],
scaleByMapSize(100, 1000),
500
);
RMS.SetProgress(90);
ExportMap();
function getHeightMap()
{
return [7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,7,7,8,8,8,8,8,8,8,9,9,9,9,8,8,8,8,8,8,8,8,8,9,9,9,8,8,8,8,8,8,7.98,7.97,7,7,7,7,7,7,7,6.99,6.99,6.99,6.99,6.99,7,7.12,7.87,7.87,7.97,7.87,7.87,7.08,7,7,7,7,8,7,7,7,7,7,8,7,7,7,7,7,7,7,7,7,7,7,7,7,7,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,7,7,7,7,7,7,7,7,6,6,6,7,7,7,8,8,7,7,7,6,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,3.99,3.98,3.97,3.97,3.97,3,3,2.99,2.99,2.99,2.99,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,2.99,2.98,2.87,2.83,2.61,2.12,1.12,0.12,-1,-1.88,-2.42,-2.78,-3,-3,-3.02,-3.09,-3.23,-3.50,-4,-4.88,-5.73,-6.48,-7.02,-7.37,-7.49,-7.47,-7.36,-7.24,-7.16,-7.10,-6.88,-6.04,-5.86,-5.62,-5.17,-4.60,-4.21,-4.15,-4.28,-4.24,-4.25,-4.30,-4.37,-4.28,-4.05,-3.89,-3.67,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,7,7,7,7,8,8,8,8,8,8,9,9,9,8,8,8,8,8,8,8,8,8,8,8,9,8,8,8,8,8,8,7.97,7.96,7.07,7.08,7,6.99,6.99,6.99,6.99,6.99,6.99,6.99,6.99,6.99,6.98,6.99,7.12,7.12,7.86,7.87,7.87,7.12,7.11,7,7,7,7,7,7,7,8,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,7,7,7,7,7,7,6,6,6,6,6,7,7,7,7,7,7,6,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,3.99,3.99,3.97,3.87,3.75,3.62,3.37,3.20,3,2.99,2.98,2.97,2.97,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3,2.99,2.97,2.87,2.74,2.37,2.10,0.86,-0.25,-1.16,-2,-2.50,-2.80,-3,-3,-3.03,-3.13,-3.36,-3.78,-4.40,-5.35,-6.13,-6.80,-7.34,-7.67,-7.88,-7.88,-7.86,-7.85,-7.89,-7.84,-7.62,-7.36,-7.05,-6.76,-6.40,-5.99,-5.51,-5.11,-5.42,-5.49,-5.51,-5.52,-5.47,-5.29,-5.02,-4.62,-3.75,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,9,9,8,8,8,8,8,8,8,9,8,8,8,8,8,8,7.99,7.98,7.98,7.98,7.95,7.87,7.10,7.10,7,7,6.99,6.99,6.99,6.99,6.99,6.99,6.98,6.98,6.97,6.96,6.97,6.99,7.12,7.21,7.84,7.12,7.12,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,7,7,7,7,6,6,6,6,6,6,6,7,7,7,7,6,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,3.99,3.99,3.87,3.75,3.61,3.37,3.23,3.10,3,2.98,2.96,2.87,2.84,2.12,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,2.99,2.95,2.82,2.50,2.11,1.25,0.34,-0.65,-1.50,-2.14,-2.63,-2.88,-3,-3,-3.13,-3.36,-3.75,-4.36,-5.11,-5.86,-6.61,-7.25,-7.76,-8.13,-8.37,-8.51,-8.62,-8.62,-8.63,-8.63,-8.52,-8.38,-8.17,-7.92,-7.62,-7.25,-6.90,-6.65,-6.63,-6.67,-6.71,-6.67,-6.55,-6.33,-5.96,-5.37,-4.05,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,9,8,8,8,9,9,9,8,8,9,8,8,7.99,7.98,7.97,7.86,7.75,7.72,7.70,7.62,7.37,7.33,7.12,7,7,6.99,6.99,6.99,6.98,6.98,6.98,6.98,6.97,6.96,6.87,6.87,6.87,6.87,6.95,7.09,7.12,7.12,7,6.99,6.99,6.98,6.99,6.99,6.99,6.99,6.99,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,7,7,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,3.99,3.98,3.87,3.62,3.37,3.23,3.11,3,3,2.97,2.87,2.84,2.62,2.35,2.11,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,3,3,2.99,2.98,2.87,2.74,2.32,1.57,0.62,-0.30,-1.13,-1.88,-2.38,-2.75,-2.90,-3,-3.08,-3.23,-3.54,-4.10,-4.86,-5.60,-6.35,-7.04,-7.67,-8.17,-8.55,-8.88,-9.13,-9.22,-9.28,-9.36,-9.38,-9.36,-9.26,-9.13,-8.96,-8.72,-8.42,-8.15,-7.96,-7.85,-7.84,-7.79,-7.73,-7.53,-7.24,-6.78,-6.05,-4.33,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,9,9,9,9,9,8,8,8.09,7.99,7.96,7.96,7.85,7.62,7.45,7.37,7.36,7.25,7.21,7.12,7.07,7,7,6.99,6.99,6.98,6.98,6.98,6.97,6.97,6.95,6.87,6.87,6.82,6.75,6.74,6.75,6.86,6.87,6.98,6.98,6.98,6.87,6.86,6.87,6.87,6.87,6.87,6.95,6.97,7,7,7,7,6,6,6,6,6,6,7,7,7,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,3.99,3.99,3.87,3.84,3.37,3.24,3.11,3,3,2.99,2.96,2.87,2.75,2.61,2.36,2.12,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,3,3,3,2.99,2.99,2.98,2.87,2.70,2.12,1.23,-0.02,-0.79,-1.53,-2.13,-2.54,-2.80,-3,-3.01,-3.11,-3.33,-3.75,-4.49,-5.25,-6.02,-6.78,-7.50,-8.11,-8.60,-8.96,-9.29,-9.61,-9.66,-9.79,-9.89,-9.98,-10,-9.99,-9.91,-9.79,-9.64,-9.43,-9.23,-9.03,-8.93,-8.88,-8.78,-8.65,-8.39,-8,-7.48,-6.61,-4.77,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,8,8,8,8,8,8,8,8,8,8,8,8,8,9,9,9,8.99,8.08,8,7.96,7.96,7.84,7.73,7.50,7.36,7.12,7.09,7.10,7.11,7.07,7,7,7,7,6.99,6.99,6.98,6.98,6.97,6.96,6.87,6.87,6.86,6.75,6.62,6.60,6.50,6.58,6.6Line truncated
}
function getTileMap()
{
return [0,0,1,1,1,1,1,1,1,1,2,0,1,2,0,0,0,1,0,1,0,1,2,0,1,0,0,0,0,1,0,2,0,0,0,0,0,0,0,0,2,0,1,0,1,0,2,1,0,2,0,2,2,1,0,2,0,2,2,2,0,0,1,2,0,2,0,0,2,2,2,1,0,2,0,1,0,2,0,2,1,0,2,1,2,2,0,2,0,0,0,1,1,2,0,0,0,1,0,1,0,0,2,0,0,1,0,0,0,1,1,1,1,2,0,1,0,1,0,0,0,1,0,2,0,0,0,0,2,0,1,1,0,1,0,1,0,0,0,0,2,1,0,1,2,2,0,0,0,0,2,0,2,0,2,0,0,0,0,0,1,0,1,0,0,1,2,0,2,1,2,1,0,0,0,0,0,1,1,0,0,0,1,1,0,2,1,0,2,1,0,0,1,2,2,1,0,2,2,0,0,0,2,0,0,2,1,2,0,2,0,0,1,0,0,2,0,1,0,0,0,0,2,1,1,1,0,0,2,0,0,0,2,0,0,0,2,1,0,0,1,1,0,0,0,0,1,0,0,1,0,2,0,1,2,2,2,0,0,0,0,0,0,2,1,0,1,0,1,1,0,1,1,0,0,1,1,2,0,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,1,1,1,1,1,1,1,0,0,0,1,0,0,0,0,2,0,0,0,1,2,0,0,0,2,1,0,2,2,1,2,2,1,0,0,2,0,1,2,2,0,2,2,0,2,2,2,1,0,0,0,1,0,0,2,1,0,1,2,2,2,1,0,1,2,0,0,2,1,1,0,2,0,2,0,0,2,0,0,1,0,0,0,0,1,0,0,0,0,2,1,2,0,0,1,0,2,0,0,0,0,0,0,0,0,0,2,0,1,1,0,0,0,2,0,0,2,0,2,2,0,0,1,1,0,2,2,0,2,0,0,0,0,2,2,0,2,1,2,0,0,0,0,1,0,0,0,2,2,0,0,2,2,0,2,1,1,1,0,0,1,0,0,0,0,0,1,1,0,0,0,2,0,0,1,0,0,2,0,0,0,0,0,0,2,0,1,1,2,0,0,2,0,0,0,0,1,0,0,1,0,0,0,0,0,1,1,0,0,0,0,2,0,0,0,0,0,2,1,0,0,2,1,0,0,2,2,1,0,0,1,0,2,0,0,2,0,0,1,1,1,0,2,0,0,2,0,0,0,0,1,2,1,0,1,2,1,0,1,0,1,1,2,0,0,0,0,2,2,1,2,2,0,0,2,0,1,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,0,2,0,0,2,2,1,2,0,0,0,0,0,2,2,0,1,2,1,0,2,0,1,0,0,2,1,0,1,0,1,0,2,0,1,1,0,2,2,0,0,0,1,2,0,0,0,2,0,0,1,2,2,2,1,0,0,0,0,0,2,0,2,1,0,2,0,0,0,1,1,2,0,0,1,0,0,0,0,1,0,2,0,2,1,0,0,1,0,2,1,0,2,2,1,0,2,2,0,0,2,1,0,2,2,1,2,0,0,1,0,0,1,1,0,1,1,0,2,0,0,0,0,0,1,1,2,0,1,0,1,0,1,0,0,0,1,0,0,0,1,1,1,1,0,1,0,0,0,1,0,0,0,2,0,2,0,2,0,0,0,0,2,1,2,0,1,0,1,2,0,2,1,2,1,2,1,2,1,0,0,0,0,0,0,0,1,2,0,0,2,0,2,2,1,0,0,0,2,0,0,0,0,1,0,1,1,0,2,0,0,0,2,0,0,1,2,0,1,0,0,0,2,0,0,2,1,0,2,0,0,0,1,0,1,0,1,0,0,0,0,0,0,2,0,2,0,0,2,2,1,0,0,0,0,2,1,1,2,2,0,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,2,2,1,0,0,1,1,1,1,0,0,2,1,1,0,1,1,0,2,0,2,2,2,0,2,0,1,0,0,0,2,2,0,2,0,0,1,1,1,1,2,0,1,2,1,0,0,1,0,0,2,2,1,2,2,1,2,2,1,0,1,1,0,1,2,0,1,1,0,0,2,1,1,2,0,0,0,2,0,0,1,2,1,1,0,0,1,2,1,0,0,1,0,1,0,0,0,0,2,0,1,0,2,0,1,0,1,2,0,2,1,2,1,2,0,0,0,0,2,0,0,0,0,1,1,0,2,0,0,0,2,0,0,2,1,0,2,2,2,0,0,0,2,1,2,1,1,2,0,2,0,1,1,0,1,1,1,0,2,0,1,0,0,2,1,1,0,0,0,1,2,1,0,1,2,0,2,0,1,0,1,2,2,1,2,2,0,0,0,0,2,0,2,1,2,0,2,0,0,0,0,2,0,2,1,0,2,2,0,0,2,2,0,0,0,1,0,0,2,0,1,1,0,0,0,0,1,0,0,2,1,1,2,2,0,0,2,0,0,1,0,0,2,2,1,0,0,2,1,0,0,0,1,1,0,0,2,1,0,2,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,0,0,0,0,0,1,0,1,1,0,0,1,1,0,0,0,1,1,0,2,1,0,2,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,2,1,0,2,0,0,0,1,0,1,0,2,2,1,1,0,1,0,2,1,0,0,2,0,1,0,1,0,0,0,0,0,1,0,1,2,2,0,0,0,0,1,2,0,1,0,1,2,2,2,0,1,1,1,0,2,0,0,1,0,2,0,2,1,0,2,0,2,2,2,0,0,2,2,1,1,0,1,0,2,2,1,0,0,1,0,0,1,2,0,1,0,0,0,1,1,2,0,0,2,0,0,0,2,0,0,2,1,0,1,0,0,1,1,0,1,1,0,1,0,2,2,1,0,1,2,2,1,1,1,0,1,0,1,0,0,0,0,2,2,0,2,2,0,2,0,0,1,2,0,2,0,0,2,1,0,1,0,2,1,0,0,1,0,0,2,0,1,0,2,0,2,1,2,0,0,0,1,0,1,2,0,0,2,2,0,1,2,0,0,0,2,0,1,0,1,2,0,1,1,2,1,0,2,0,0,0,1,1,0,0,1,2,0,0,1,1,2,0,0,0,2,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,0,0,0,0,0,1,0,1,2,0,0,1,2,1,0,1,2,0,0,0,0,0,2,2,1,0,0,0,0,0,2,1,1,1,0,0,0,0,0,0,1,2,2,1,0,1,0,0,0,2,0,1,0,2,0,1,1,0,1,1,2,0,0,0,1,2,2,1,2,0,0,0,2,0,2,2,0,0,0,0,0,0,0,1,0,2,2,2,0,0,2,2,0,2,1,2,1,1,0,1,1,0,2,1,2,0,2,1,0,0,0,1,2,1,0,2,2,0,2,0,0,0,0,0,1,0,0,0,0,1,0,1,1,2,1,0,0,0,2,0,0,0,2,0,1,2,2,2,1,2,1,2,1,0,1,2,0,1,1,2,0,1,2,0,0,0,2,0,1,1,0,2,1,0,0,1,1,2,2,0,0,1,2,0,0,0,1,0,0,1,0,2,2,0,2,0,2,0,1,2,1,1,1,0,0,0,2,1,2,1,0,1,0,0,2,1,2,2,0,1,0,0,0,2,2,0,2,2,1,0,1,0,2,0,0,2,1,1,0,0,2,2,0,0,2,2,2,2,0,0,0,2,2,1,2,0,2,0,2,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,2,1,0,0,1,2,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,2,0,2,0,0,0,2,0,0,0,2,0,2,1,0,0,0,0,2,1,1,1,2,2,0,0,2,1,0,0,0,0,2,0,0,2,0,1,0,2,2,0,0,2,0,0,2,1,1,1,2,0,0,2,0,0,1,1,2,0,0,1,0,0,2,2,0,0,2,2,2,1,2,2,0,0,0,1,0,2,0,1,1,0,0,1,0,0,0,2,2,0,0,2,1,1,2,0,2,0,0,0,0,1,1,2,2,1,0,1,1,0,0,0,2,0,2,0,0,1,2,0,0,0,1,2,0,1,1,1,0,0,2,0,2,2,1,0,0,0,0,2,0,0,0,2,0,0,2,2,1,0,2,2,1,2,1,2,0,1,0,0,0,0,0,0,2,1,2,1,0,0,0,0,0,0,1,1,1,0,0,2,2,1,2,1,1,0,0,0,0,1,0,2,2,2,0,1,0,0,2,0,1,0,2,2,0,2,1,1,0,1,0,0,0,0,0,1,2,0,0,1,0,2,1,1,0,2,2,0,2,0,1,0,2,0,0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,0,0,1,0,1,0,0,1,2,0,2,1,0,2,2,1,0,1,2,0,0,0,2,0,1,0,1,0,0,0,2,2,1,0,0,1,2,1,1,0,0,2,2,2,1,1,2,0,2,2,2,0,1,1,0,0,1,2,1,1,1,1,1,1,0,0,1,1,0,0,0,0,2,0,0,0,2,0,0,2,0,0,1,0,2,0,0,1,1,1,1,0,0,2,1,1,1,0,0,0,0,1,0,2,2,1,0,2,1,0,1,0,0,0,2,2,0,0,2,2,2,0,1,0,2,0,2,0,0,1,1,2,0,0,1,0,1,1,2,0,2,1,2,0,0,0,1,2,2,1,0,0,0,0,1,1,0,0,0,1,1,0,2,0,0,2,2,2,0,0,0,0,0,0,0,0,0,1,1,0,2,2,1,1,0,0,0,0,0,1,0,0,1,0,0,1,1,1,0,0,1,0,1,2,0,1,1,0,2,1,0,2,1,0,2,2,0,1,0,2,0,1,2,1,0,2,2,0,2,0,0,1,0,0,0,1,0,2,0,1,Line truncated
}
function getTilePallet()
{
return ["desert_dirt_rough_2","desert_dirt_rough","desert_sand_dunes_50","desert_sand_wet","desert_dirt_persia_1","desert_dirt_persia_rocks","desert_dirt_rocks_1","desert_sand_stones","desert_dirt_rocks_2","desert_dirt_rocks_3","desert_sand_scrub","desert_plants_b","desert_dirt_rocks_3_scrub","desert_cliff_3_dirty","desert_cliff_4","forestfloor_dirty","desert_cliff_2","desert_cliff_1","desert_cliff_5","desert_sand_dunes_rocks","desert_cliff_3","desert_cliff_egypt_2"];
}
@@ -0,0 +1,11 @@
{
"settings" : {
"Name" : "Red Sea",
"Script" : "red_sea.js",
"Description" : "The Red Sea is a seawater inlet of the Indian Ocean, lying between Africa and Asia and the world's northernmost tropical sea.",
"BaseTerrain" : ["medit_sea_depths"],
"BaseHeight" : 1,
"Preview" : "red_sea.png",
"CircularMap" : false
}
}
@@ -872,6 +872,19 @@ function addMetal(constraint, size, deviation, fill)
}
}
function addSmallMetal(constraint, size, mixes, amounts)
{
let deviation = getRandomDeviation(size || 1, mixes || g_DefaultDeviation);
let count = 1 + scaleByMapSize(20, 20) * (amounts || 1);
let mines = [[new SimpleObject(g_Gaia.metalSmall, 2 * deviation, 5 * deviation, 1 * deviation, 3 * deviation)]];
for (let i = 0; i < mines.length; ++i)
{
let group = new SimpleGroup(mines[i], true, g_TileClasses.metal);
createObjectGroups(group, 0, constraint, count, 100);
}
}
/**
* Create stone mines.
*/
@@ -1253,3 +1266,52 @@ function getRandomDeviation(base, deviation)
deviation = base + randInt(20 * deviation) / 10 - deviation;
return deviation.toFixed(2);
}
/**
* Import a given digital elevation model.
* Scale it to the mapsize and paint the textures specified by coordinate on it.
*
* @param heightmap - An array with a square number of heights
* @param tilemap - The IDs of the palletmap to be painted for each heightmap tile
* @param pallet - The tile texture names used by the tilemap.
* @returns the ratio of heightmap tiles per map size tiles
*/
function paintHeightmap(heightmap, tilemap, pallet, func = undefined)
{
let lastI = -1;
let mapSize = getMapSize();
let hmSize = Math.sqrt(heightmap.length);
let scale = hmSize / mapSize;
for (let y = 0; y < mapSize; ++y)
for (let x = 0; x < mapSize; ++x)
{
let i = Math.floor(x * scale) * hmSize + Math.floor(y * scale);
let height = heightmap[i];
let tile = pallet[tilemap[i]];
if (i == lastI)
{
let nearby = [i];
if (i + hmSize < heightmap.length)
nearby.push(i + hmSize);
tile = pallet[tilemap[nearby[randInt(0, nearby.length - 1)]]];
// Average
height = nearby.reduce((sum, value) => sum + value) / nearby.length;
}
setHeight(x, y, height);
placeTerrain(x, y, tile);
if (func)
func(tile, x, y);
lastI = i;
}
return Math.sqrt(heightmap.length) / g_MapInfo.mapSize;
}
@@ -524,6 +524,63 @@ function placeStronghold(playerIDs, distance, groupedDistance)
return players;
}
/**
* Places players either randomly or in a stronghold-pattern at a set of given heightmap coordinates.
*
* @param singleBases - pair of coordinates of the heightmap to place isolated bases.
* @param singleBases - pair of coordinates of the heightmap to place team bases.
* @param groupedDistance - distance between neighboring players.
* @param singleBaseFunction - A function called for every singlebase placed.
*/
function randomPlayerPlacementAt(singleBases, strongholdBases, heightmapScale, groupedDistance, singleBaseFunction)
{
let strongholdBasesRandom = shuffleArray(strongholdBases);
let singleBasesRandom = shuffleArray(singleBases);
if (randInt(2) == 1 &&
g_MapInfo.mapSize >= 256 &&
g_MapInfo.teams.length >= 2 &&
g_MapInfo.teams.length < g_MapInfo.numPlayers &&
g_MapInfo.teams.length <= strongholdBasesRandom.length)
{
for (let t = 0; t < g_MapInfo.teams.length; ++t)
{
let team = g_MapInfo.teams[t].map(playerID => ({ "id": playerID }));
let x = Math.floor(strongholdBasesRandom[t][0] / heightmapScale) / g_MapInfo.mapSize;
let z = Math.floor(strongholdBasesRandom[t][1] / heightmapScale) / g_MapInfo.mapSize;
let players = [];
for (let p = 0; p < team.length; ++p)
{
let angle = g_MapInfo.startAngle + (p + 1) * TWO_PI / team.length;
players[p] = {
"id": team[p].id,
"angle": angle,
"x": x + groupedDistance * cos(angle),
"z": z + groupedDistance * sin(angle)
};
createBase(players[p], false);
}
}
}
else
{
let players = randomizePlayers();
for (let p = 0; p < players.length; ++p)
{
if (singleBaseFunction)
singleBaseFunction(singleBasesRandom[p]);
createBase({
"id": players[p],
"x": Math.floor(singleBasesRandom[p][0] / heightmapScale) / g_MapInfo.mapSize,
"z": Math.floor(singleBasesRandom[p][1] / heightmapScale) / g_MapInfo.mapSize
});
}
}
}
/**
* Creates tileClass for the default classes and every class given.
*