1
0
forked from 0ad/0ad

Move biome definitions to JSON and JS files, so that mods can easily remove or add new biomes, refs cc0d4f25da.

Move environment biome constants from JS to JSON.

This was SVN commit r20129.
This commit is contained in:
elexis 2017-09-08 02:15:54 +00:00
parent b4cf5d0a73
commit 871ed04521
16 changed files with 876 additions and 680 deletions

View File

@ -0,0 +1,81 @@
{
"Environment": {
"Water": {
"WaterBody": {
"Color": { "r": 0.0, "g": 0.047, "b": 0.286 },
"Tint": { "r": 0.471, "g": 0.776, "b": 0.863 },
"Murkiness": 0.82,
"Waviness": 2
}
},
"Fog": {
"FogThickness": 0.26,
"FogFactor": 0.4
},
"Postproc": {
"PostprocEffect": "hdr",
"Saturation": 0.48,
"Contrast": 0.53,
"Bloom": 0.12
}
},
"Terrains": {
"mainTerrain": [
"alpine_dirt_grass_50"
],
"forestFloor1": "alpine_forrestfloor",
"forestFloor2": "alpine_forrestfloor",
"cliff": [
"alpine_cliff_a",
"alpine_cliff_b",
"alpine_cliff_c"
],
"tier1Terrain": "alpine_dirt",
"tier2Terrain": [
"alpine_grass_snow_50",
"alpine_dirt_snow",
"alpine_dirt_snow"
],
"tier3Terrain": [
"alpine_snow_a",
"alpine_snow_b"
],
"tier4Terrain": "new_alpine_grass_a",
"hill": "alpine_cliff_snow",
"dirt": [
"alpine_dirt",
"alpine_grass_d"
],
"road": "new_alpine_citytile",
"roadWild": "new_alpine_citytile",
"shoreBlend": "alpine_shore_rocks",
"shore": "alpine_shore_rocks_grass_50",
"water": "alpine_shore_rocks"
},
"Gaia": {
"tree1": "gaia/flora_tree_pine",
"tree2": "gaia/flora_tree_pine",
"tree3": "gaia/flora_tree_pine",
"tree4": "gaia/flora_tree_pine",
"tree5": "gaia/flora_tree_pine",
"fruitBush": "gaia/flora_bush_berry",
"chicken": "gaia/fauna_chicken",
"mainHuntableAnimal": "gaia/fauna_goat",
"fish": "gaia/fauna_fish_tuna",
"secondaryHuntableAnimal": "gaia/fauna_deer",
"stoneLarge": "gaia/geology_stonemine_alpine_quarry",
"stoneSmall": "gaia/geology_stone_alpine_a",
"metalLarge": "gaia/geology_metal_alpine_slabs"
},
"Decoratives": {
"grass": "actor|props/flora/grass_soft_small_tall.xml",
"grassShort": "actor|props/flora/grass_soft_large.xml",
"reeds": "actor|props/flora/reeds_pond_dry.xml",
"lillies": "actor|geology/stone_granite_large.xml",
"rockLarge": "actor|geology/stone_granite_large.xml",
"rockMedium": "actor|geology/stone_granite_med.xml",
"bushMedium": "actor|props/flora/bush_desert_a.xml",
"bushSmall": "actor|props/flora/bush_desert_a.xml",
"tree": "actor|flora/trees/pine.xml"
}
}

View File

@ -0,0 +1,82 @@
{
"Environment": {
"Water": {
"WaterBody": {
"Color": { "r": 0.157, "g": 0.149, "b": 0.443 },
"Tint": { "r": 0.443, "g": 0.42, "b": 0.824 },
"Murkiness": 0.83,
"Waviness": 2.5
}
},
"Fog": {
"FogThickness": 0.22,
"FogFactor": 0.35,
"FogColor": { "r": 0.82, "g": 0.82, "b": 0.73 }
},
"Postproc": {
"PostprocEffect": "hdr",
"Saturation": 0.56,
"Contrast": 0.56,
"Bloom": 0.38
}
},
"Terrains": {
"mainTerrain": [
"temp_grass_aut",
"temp_grass_aut",
"temp_grass_d_aut"
],
"forestFloor1": "temp_plants_bog_aut",
"forestFloor2": "temp_forestfloor_aut",
"cliff": [
"temp_cliff_a",
"temp_cliff_b"
],
"tier1Terrain": "temp_grass_plants_aut",
"tier2Terrain": [
"temp_grass_b_aut",
"temp_grass_c_aut"
],
"tier3Terrain": [
"temp_grass_b_aut",
"temp_grass_long_b_aut"
],
"tier4Terrain": "temp_grass_plants_aut",
"hill": "temp_highlands_aut",
"dirt": [
"temp_cliff_a",
"temp_cliff_b"
],
"road": "temp_road_aut",
"roadWild": "temp_road_overgrown_aut",
"shoreBlend": "temp_grass_plants_aut",
"shore": "temp_forestfloor_pine",
"water": "medit_sand_wet"
},
"Gaia": {
"tree1": "gaia/flora_tree_euro_beech_aut",
"tree2": "gaia/flora_tree_euro_beech_aut",
"tree3": "gaia/flora_tree_pine",
"tree4": "gaia/flora_tree_oak_aut",
"tree5": "gaia/flora_tree_oak_aut",
"fruitBush": "gaia/flora_bush_berry",
"chicken": "gaia/fauna_chicken",
"mainHuntableAnimal": "gaia/fauna_deer",
"fish": "gaia/fauna_fish",
"secondaryHuntableAnimal": "gaia/fauna_rabbit",
"stoneLarge": "gaia/geology_stonemine_temperate_quarry",
"stoneSmall": "gaia/geology_stone_temperate",
"metalLarge": "gaia/geology_metal_temperate_slabs"
},
"Decoratives": {
"grass": "actor|props/flora/grass_soft_dry_small_tall.xml",
"grassShort": "actor|props/flora/grass_soft_dry_large.xml",
"reeds": "actor|props/flora/reeds_pond_dry.xml",
"lillies": "actor|geology/stone_granite_large.xml",
"rockLarge": "actor|geology/stone_granite_large.xml",
"rockMedium": "actor|geology/stone_granite_med.xml",
"bushMedium": "actor|props/flora/bush_desert_dry_a.xml",
"bushSmall": "actor|props/flora/bush_desert_dry_a.xml",
"tree": "actor|flora/trees/european_beech_aut.xml"
}
}

View File

@ -0,0 +1,18 @@
function setupBiome_desert()
{
[g_Gaia.tree1, g_Gaia.tree2] = pickRandom([
[
"gaia/flora_tree_cretan_date_palm_short",
"gaia/flora_tree_cretan_date_palm_tall"
],
[
"gaia/flora_tree_date_palm",
"gaia/flora_tree_date_palm"
]
]);
[g_Gaia.tree4, g_Gaia.tree5] = new Array(2).fill(pickRandom([
"gaia/flora_tree_tamarix",
"gaia/flora_tree_senegal_date_palm"
]));
}

View File

@ -0,0 +1,81 @@
{
"Environment": {
"SunColor": { "r": 0.733, "g": 0.746, "b": 0.574 },
"Water": {
"WaterBody": {
"Color": { "r": 0, "g": 0.227, "b": 0.843 },
"Tint": { "r": 0, "g": 0.545, "b": 0.859 },
"Murkiness": 0.22,
"Waviness": 1
}
},
"Fog": {
"FogThickness": 0,
"FogFactor": 0.5,
"FogColor": { "r": 0.852, "g": 0.746, "b": 0.493 }
},
"Postproc": {
"PostprocEffect": "hdr",
"Saturation": 0.42,
"Contrast": 0.67,
"Bloom": 0.23
}
},
"Terrains": {
"mainTerrain": [
"desert_dirt_rough",
"desert_dirt_rough_2",
"desert_sand_dunes_50",
"desert_sand_smooth"
],
"forestFloor1": "forestfloor_dirty",
"forestFloor2": "desert_forestfloor_palms",
"cliff": [
"desert_cliff_1",
"desert_cliff_2",
"desert_cliff_3",
"desert_cliff_4",
"desert_cliff_5"
],
"tier1Terrain": "desert_dirt_rough",
"tier2Terrain": "desert_dirt_rocks_1",
"tier3Terrain": "desert_dirt_rocks_2",
"tier4Terrain": "desert_dirt_rough",
"hill": [
"desert_dirt_rocks_1",
"desert_dirt_rocks_2",
"desert_dirt_rocks_3"
],
"dirt": [
"desert_lakebed_dry",
"desert_lakebed_dry_b"
],
"road": "desert_city_tile",
"roadWild": "desert_city_tile",
"shoreBlend": "desert_shore_stones",
"shore": "desert_sand_smooth",
"water": "desert_sand_wet"
},
"Gaia": {
"fruitBush": "gaia/flora_bush_grapes",
"chicken": "gaia/fauna_chicken",
"mainHuntableAnimal": "gaia/fauna_camel",
"fish": "gaia/fauna_fish",
"secondaryHuntableAnimal": "gaia/fauna_gazelle",
"stoneLarge": "gaia/geology_stonemine_desert_quarry",
"stoneSmall": "gaia/geology_stone_desert_small",
"metalLarge": "gaia/geology_metal_desert_slabs",
"tree3": "gaia/flora_tree_fig"
},
"Decoratives": {
"grass": "actor|props/flora/grass_soft_dry_small_tall.xml",
"grassShort": "actor|props/flora/grass_soft_dry_large.xml",
"reeds": "actor|props/flora/reeds_pond_lush_a.xml",
"lillies": "actor|props/flora/reeds_pond_lush_b.xml",
"rockLarge": "actor|geology/stone_desert_med.xml",
"rockMedium": "actor|geology/stone_desert_med.xml",
"bushMedium": "actor|props/flora/bush_desert_dry_a.xml",
"bushSmall": "actor|props/flora/bush_desert_dry_a.xml",
"tree": "actor|flora/trees/palm_date.xml"
}
}

View File

@ -0,0 +1,31 @@
function setupBiome_mediterranean()
{
[g_Gaia.tree1, g_Gaia.tree2] = pickRandom([
[
"gaia/flora_tree_cretan_date_palm_short",
"gaia/flora_tree_cretan_date_palm_tall"
],
[
"gaia/flora_tree_carob",
"gaia/flora_tree_carob"
],
[
"gaia/flora_tree_medit_fan_palm",
"gaia/flora_tree_medit_fan_palm"
]]);
g_Gaia.tree3 = pickRandom([
"gaia/flora_tree_apple",
"gaia/flora_tree_poplar_lombardy"
]);
[g_Gaia.tree4, g_Gaia.tree5] = new Array(2).fill(pickRandom([
"gaia/flora_tree_cypress",
"gaia/flora_tree_aleppo_pine"
]));
g_Gaia.fruitBush = pickRandom([
"gaia/flora_bush_berry",
"gaia/flora_bush_grapes"
]);
}

View File

@ -0,0 +1,75 @@
{
"Environment": {
"Water": {
"WaterBody": {
"Color": { "r": 0.024, "g": 0.212, "b": 0.024 },
"Tint": { "r": 0.133, "g": 0.725, "b": 0.855 },
"Murkiness": 0.8,
"Waviness": 3
}
},
"Fog": {
"FogThickness": 0.25,
"FogFactor": 0.3
},
"Postproc": {
"PostprocEffect": "hdr",
"Saturation": 0.51,
"Contrast": 0.62,
"Bloom": 0.12
}
},
"Terrains": {
"mainTerrain": [
"medit_grass_field_a",
"medit_grass_field_b"
],
"forestFloor1": "medit_grass_field",
"forestFloor2": "medit_grass_shrubs",
"cliff": [
"medit_cliff_grass",
"medit_cliff_greek",
"medit_cliff_greek_2",
"medit_cliff_aegean",
"medit_cliff_italia",
"medit_cliff_italia_grass"
],
"tier1Terrain": "medit_grass_field_b",
"tier2Terrain": "medit_grass_field_brown",
"tier3Terrain": "medit_grass_field_dry",
"tier4Terrain": "medit_grass_wild",
"hill": [
"medit_rocks_grass_shrubs",
"medit_rocks_shrubs"
],
"dirt": [
"medit_dirt",
"medit_dirt_b"
],
"road": "medit_city_tile",
"roadWild": "medit_city_tile",
"shoreBlend": "medit_sand",
"shore": "sand_grass_25",
"water": "medit_sand_wet"
},
"Gaia": {
"chicken": "gaia/fauna_chicken",
"mainHuntableAnimal": "gaia/fauna_deer",
"fish": "gaia/fauna_fish",
"secondaryHuntableAnimal": "gaia/fauna_sheep",
"stoneLarge": "gaia/geology_stonemine_medit_quarry",
"stoneSmall": "gaia/geology_stone_mediterranean",
"metalLarge": "gaia/geology_metal_mediterranean_slabs"
},
"Decoratives": {
"grass": "actor|props/flora/grass_soft_large_tall.xml",
"grassShort": "actor|props/flora/grass_soft_large.xml",
"reeds": "actor|props/flora/reeds_pond_lush_b.xml",
"lillies": "actor|props/flora/water_lillies.xml",
"rockLarge": "actor|geology/stone_granite_large.xml",
"rockMedium": "actor|geology/stone_granite_med.xml",
"bushMedium": "actor|props/flora/bush_medit_me.xml",
"bushSmall": "actor|props/flora/bush_medit_sm.xml",
"tree": "actor|flora/trees/palm_cretan_date.xml"
}
}

View File

@ -0,0 +1,9 @@
function setupBiome_savanna()
{
g_Gaia.mainHuntableAnimal = pickRandom([
"gaia/fauna_wildebeest",
"gaia/fauna_zebra",
"gaia/fauna_giraffe",
"gaia/fauna_elephant_african_bush"
]);
}

View File

@ -0,0 +1,81 @@
{
"Environment": {
"Water": {
"WaterBody": {
"Color": { "r": 0.055, "g": 0.176, "b": 0.431 },
"Tint": { "r": 0.227, "g": 0.749, "b": 0.549 },
"Murkiness": 0.77,
"Waviness": 1.5
}
},
"Fog": {
"FogThickness": 0.15,
"FogFactor": 0.25,
"FogColor": { "r": 0.847059, "g": 0.737255, "b": 0.482353 }
},
"Postproc": {
"PostprocEffect": "hdr",
"Contrast": 0.57031,
"Bloom": 0.34
}
},
"Terrains": {
"mainTerrain": [
"savanna_grass_a",
"savanna_grass_b"
],
"forestFloor1": "savanna_forestfloor_a",
"forestFloor2": "savanna_forestfloor_b",
"cliff": [
"savanna_cliff_a",
"savanna_cliff_b"
],
"tier1Terrain": "savanna_shrubs_a",
"tier2Terrain": "savanna_dirt_rocks_b",
"tier3Terrain": "savanna_dirt_rocks_a",
"tier4Terrain": "savanna_grass_a",
"hill": [
"savanna_grass_a",
"savanna_grass_b"
],
"dirt": [
"savanna_dirt_rocks_b",
"dirt_brown_e"
],
"road": "savanna_tile_a",
"roadWild": "savanna_tile_a",
"shoreBlend": "savanna_riparian",
"shore": "savanna_riparian_bank",
"water": "savanna_riparian_wet"
},
"Gaia": {
"tree1": "gaia/flora_tree_baobab",
"tree2": "gaia/flora_tree_baobab",
"tree3": "gaia/flora_tree_baobab",
"tree4": "gaia/flora_tree_baobab",
"tree5": "gaia/flora_tree_baobab",
"fruitBush": "gaia/flora_bush_grapes",
"chicken": "gaia/fauna_chicken",
"fish": "gaia/fauna_fish",
"secondaryHuntableAnimal": "gaia/fauna_gazelle",
"stoneLarge": "gaia/geology_stonemine_desert_quarry",
"stoneSmall": "gaia/geology_stone_savanna_small",
"metalLarge": "gaia/geology_metal_savanna_slabs"
},
"Decoratives": {
"grass": "actor|props/flora/grass_savanna.xml",
"grassShort": "actor|props/flora/grass_medit_field.xml",
"reeds": "actor|props/flora/reeds_pond_lush_a.xml",
"lillies": "actor|props/flora/reeds_pond_lush_b.xml",
"rockLarge": "actor|geology/stone_savanna_med.xml",
"rockMedium": "actor|geology/stone_savanna_med.xml",
"bushMedium": "actor|props/flora/bush_desert_dry_a.xml",
"bushSmall": "actor|props/flora/bush_dry_a.xml",
"tree": "actor|flora/trees/baobab.xml"
},
"TreeCount": {
"minTrees": 200,
"maxTrees": 1250,
"forestProbability": 0
}
}

View File

@ -0,0 +1,76 @@
{
"Environment":
{
"SunColor": { "r": 0.550, "g": 0.601, "b": 0.644 },
"Water": {
"WaterBody": {
"Color": { "r": 0.067, "g": 0.212, "b": 0.361 },
"Tint": { "r": 0.4, "g": 0.486, "b": 0.765 },
"Murkiness": 0.83,
"Waviness": 5.5
}
},
"Fog": {
"FogThickness": 0.21,
"FogFactor": 0.6
},
"Postproc": {
"PostprocEffect": "hdr",
"Saturation": 0.37
}
},
"Terrains": {
"mainTerrain": [
"polar_snow_b",
"snow grass 75",
"snow rocks",
"snow forest"
],
"forestFloor1": "polar_tundra_snow",
"forestFloor2": "polar_tundra_snow",
"cliff": [
"alpine_cliff_a",
"alpine_cliff_b"
],
"tier1Terrain": "polar_snow_a",
"tier2Terrain": "polar_ice_snow",
"tier3Terrain": "polar_ice",
"tier4Terrain": "snow grass 2",
"hill": [
"polar_snow_rocks",
"polar_cliff_snow"
],
"dirt": "snow grass 2",
"road": "new_alpine_citytile",
"roadWild": "polar_ice_cracked",
"shoreBlend": "polar_ice",
"shore": "alpine_shore_rocks_icy",
"water": "alpine_shore_rocks"
},
"Gaia": {
"tree1": "gaia/flora_tree_pine_w",
"tree2": "gaia/flora_tree_pine_w",
"tree3": "gaia/flora_tree_pine_w",
"tree4": "gaia/flora_tree_pine_w",
"tree5": "gaia/flora_tree_pine",
"fruitBush": "gaia/flora_bush_berry",
"chicken": "gaia/fauna_chicken",
"mainHuntableAnimal": "gaia/fauna_muskox",
"fish": "gaia/fauna_fish_tuna",
"secondaryHuntableAnimal": "gaia/fauna_walrus",
"stoneLarge": "gaia/geology_stonemine_alpine_quarry",
"stoneSmall": "gaia/geology_stone_alpine_a",
"metalLarge": "gaia/geology_metal_alpine_slabs"
},
"Decoratives": {
"grass": "actor|props/flora/grass_soft_dry_small_tall.xml",
"grassShort": "actor|props/flora/grass_soft_dry_large.xml",
"reeds": "actor|props/flora/reeds_pond_dry.xml",
"lillies": "actor|geology/stone_granite_large.xml",
"rockLarge": "actor|geology/stone_granite_large.xml",
"rockMedium": "actor|geology/stone_granite_med.xml",
"bushMedium": "actor|props/flora/bush_desert_dry_a.xml",
"bushSmall": "actor|props/flora/bush_desert_dry_a.xml",
"tree": "actor|flora/trees/pine_w.xml"
}
}

View File

@ -0,0 +1,53 @@
function setupBiome_temperate()
{
if (randBool())
{
g_Terrains.mainTerrain = "alpine_grass";
g_Terrains.forestFloor1 = "temp_forestfloor_pine";
g_Terrains.forestFloor2 = "temp_grass_clovers_2";
g_Terrains.tier1Terrain = "alpine_grass_a";
g_Terrains.tier2Terrain = "alpine_grass_b";
g_Terrains.tier3Terrain = "alpine_grass_c";
g_Terrains.tier4Terrain = "temp_grass_mossy";
}
else
{
g_Terrains.mainTerrain = "temp_grass_long_b";
g_Terrains.forestFloor1 = "temp_forestfloor_pine";
g_Terrains.forestFloor2 = "temp_plants_bog";
g_Terrains.tier1Terrain = "temp_grass_d";
g_Terrains.tier2Terrain = "temp_grass_c";
g_Terrains.tier3Terrain = "temp_grass_clovers_2";
g_Terrains.tier4Terrain = "temp_grass_plants";
}
[g_Gaia.tree1, g_Gaia.tree2] = pickRandom([
[
"gaia/flora_tree_oak",
"gaia/flora_tree_oak_large"
],
[
"gaia/flora_tree_poplar",
"gaia/flora_tree_poplar"
],
[
"gaia/flora_tree_euro_beech",
"gaia/flora_tree_euro_beech"
]
]);
[g_Gaia.tree4, g_Gaia.tree5] = pickRandom([
[
"gaia/flora_tree_pine",
"gaia/flora_tree_aleppo_pine"
],
[
"gaia/flora_tree_pine",
"gaia/flora_tree_pine"
],
[
"gaia/flora_tree_aleppo_pine",
"gaia/flora_tree_aleppo_pine"
]
]);
}

View File

@ -0,0 +1,63 @@
{
"Environment": {
"Water": {
"WaterBody": {
"Color": { "r": 0.114, "g": 0.192, "b": 0.463 },
"Tint": { "r": 0.255, "g": 0.361, "b": 0.651 },
"Murkiness": 0.83,
"Waviness": 5.5
}
},
"Fog": {
"FogThickness": 0.25,
"FogFactor": 0.4
},
"Postproc": {
"PostprocEffect": "hdr",
"Saturation": 0.62,
"Contrast": 0.62,
"Bloom": 0.3
}
},
"Terrains": {
"cliff": [
"temp_cliff_a",
"temp_cliff_b"
],
"hill": [
"temp_dirt_gravel",
"temp_dirt_gravel_b"
],
"dirt": [
"temp_dirt_gravel",
"temp_dirt_gravel_b"
],
"road": "temp_road",
"roadWild": "temp_road_overgrown",
"shoreBlend": "temp_mud_plants",
"shore": "sand_grass_25",
"water": "medit_sand_wet"
},
"Gaia": {
"fruitBush": "gaia/flora_bush_berry",
"chicken": "gaia/fauna_chicken",
"fish": "gaia/fauna_fish",
"mainHuntableAnimal": "gaia/fauna_deer",
"secondaryHuntableAnimal": "gaia/fauna_sheep",
"stoneLarge": "gaia/geology_stonemine_temperate_quarry",
"stoneSmall": "gaia/geology_stone_temperate",
"metalLarge": "gaia/geology_metal_temperate_slabs",
"tree3": "gaia/flora_tree_apple"
},
"Decoratives": {
"grass": "actor|props/flora/grass_soft_large_tall.xml",
"grassShort": "actor|props/flora/grass_soft_large.xml",
"reeds": "actor|props/flora/reeds_pond_lush_a.xml",
"lillies": "actor|props/flora/water_lillies.xml",
"rockLarge": "actor|geology/stone_granite_large.xml",
"rockMedium": "actor|geology/stone_granite_med.xml",
"bushMedium": "actor|props/flora/bush_medit_me.xml",
"bushSmall": "actor|props/flora/bush_medit_sm.xml",
"tree": "actor|flora/trees/oak.xml"
}
}

View File

@ -0,0 +1,88 @@
{
"Environment": {
"Water": {
"WaterBody": {
"Color": { "r": 0.584, "g": 0.824, "b": 0.929 },
"Tint": { "r": 0.569, "g": 0.965, "b": 0.945 },
"Murkiness": 0.35,
"Waviness": 1.5
}
},
"Fog": {
"FogThickness": 0.2,
"FogFactor": 0.4
},
"Postproc": {
"PostprocEffect": "hdr",
"Contrast": 0.67,
"Saturation": 0.62,
"Bloom": 0.6
}
},
"Terrains": {
"mainTerrain": [
"tropic_grass_c",
"tropic_grass_c",
"tropic_grass_c",
"tropic_grass_c",
"tropic_grass_plants",
"tropic_plants",
"tropic_plants_b"
],
"forestFloor1": "tropic_plants_c",
"forestFloor2": "tropic_plants_c",
"cliff": [
"tropic_cliff_a",
"tropic_cliff_a",
"tropic_cliff_a",
"tropic_cliff_a_plants"
],
"tier1Terrain": "tropic_grass_c",
"tier2Terrain": "tropic_grass_plants",
"tier3Terrain": "tropic_plants",
"tier4Terrain": "tropic_plants_b",
"hill": [
"tropic_cliff_grass"
],
"dirt": [
"tropic_dirt_a",
"tropic_dirt_a_plants"
],
"road": "tropic_citytile_a",
"roadWild": "tropic_citytile_plants",
"shoreBlend": "temp_mud_plants",
"shore": "tropic_beach_dry_plants",
"water": "tropic_beach_dry"
},
"Gaia": {
"tree1": "gaia/flora_tree_toona",
"tree2": "gaia/flora_tree_toona",
"tree3": "gaia/flora_tree_palm_tropic",
"tree4": "gaia/flora_tree_palm_tropic",
"tree5": "gaia/flora_tree_palm_tropic",
"fruitBush": "gaia/flora_bush_berry",
"chicken": "gaia/fauna_chicken",
"mainHuntableAnimal": "gaia/fauna_peacock",
"fish": "gaia/fauna_fish",
"secondaryHuntableAnimal": "gaia/fauna_tiger",
"stoneLarge": "gaia/geology_stonemine_tropic_quarry",
"stoneSmall": "gaia/geology_stone_tropic_a",
"metalLarge": "gaia/geology_metal_tropic_slabs"
},
"Decoratives": {
"grass": "actor|props/flora/plant_tropic_a.xml",
"grassShort": "actor|props/flora/plant_lg.xml",
"reeds": "actor|props/flora/reeds_pond_lush_b.xml",
"lillies": "actor|props/flora/water_lillies.xml",
"rockLarge": "actor|geology/stone_granite_large.xml",
"rockMedium": "actor|geology/stone_granite_med.xml",
"bushMedium": "actor|props/flora/plant_tropic_large.xml",
"bushSmall": "actor|props/flora/plant_tropic_large.xml",
"tree": "actor|flora/trees/tree_tropic.xml"
},
""TreeCount": {
"minTrees": 1000,
"maxTrees": 6000,
"forestProbability": 0.52
}
}

View File

@ -0,0 +1,83 @@
{
"Environment": {
"TerrainAmbientColor": { "r": 0.447059, "g": 0.509804, "b": 0.54902 },
"UnitsAmbientColor": { "r": 0.57, "g": 0.58, "b": 0.55 },
"Water": {
"WaterBody": {
"Color": { "r": 0.0, "g": 0.047, "b": 0.286 },
"Tint": { "r": 0.471, "g": 0.776, "b": 0.863 },
"Murkiness": 0.82,
"Waviness": 2
}
},
"Fog": {
"FogThickness": 0.26,
"FogFactor": 0.4
},
"Postproc": {
"PostprocEffect": "hdr",
"Saturation": 0.48,
"Contrast": 0.53,
"Bloom": 0.12
}
},
"Terrains": {
"mainTerrain": [
"temp_grass_long_b"
],
"forestFloor1": "temp_forestfloor_pine",
"forestFloor2": "temp_plants_bog",
"tier1Terrain": "temp_grass_d",
"tier2Terrain": "temp_grass_c",
"tier3Terrain": "temp_grass_clovers_2",
"tier4Terrain": "temp_grass_plants",
"cliff": [
"temp_cliff_a",
"temp_cliff_b"
],
"hill": [
"temp_dirt_gravel",
"temp_dirt_gravel_b"
],
"dirt": [
"temp_dirt_gravel",
"temp_dirt_gravel_b"
],
"road": "temp_road",
"roadWild": "temp_road_overgrown",
"shoreBlend": "temp_mud_plants",
"shore": "sand_grass_25",
"water": "medit_sand_wet"
},
"Gaia": {
"tree1": "gaia/flora_tree_oak",
"tree2": "gaia/flora_tree_oak_large",
"tree3": "gaia/flora_tree_apple",
"tree4": "gaia/flora_tree_pine",
"tree5": "gaia/flora_tree_aleppo_pine",
"fruitBush": "gaia/flora_bush_berry",
"chicken": "gaia/fauna_chicken",
"fish": "gaia/fauna_fish",
"mainHuntableAnimal": "gaia/fauna_deer",
"secondaryHuntableAnimal": "gaia/fauna_sheep",
"stoneLarge": "gaia/geology_stonemine_medit_quarry",
"stoneSmall": "gaia/geology_stone_mediterranean",
"metalLarge": "gaia/geology_metal_mediterranean_slabs"
},
"Decoratives": {
"grass": "actor|props/flora/grass_soft_large_tall.xml",
"grassShort": "actor|props/flora/grass_soft_large.xml",
"reeds": "actor|props/flora/reeds_pond_lush_a.xml",
"lillies": "actor|props/flora/pond_lillies_large.xml",
"rockLarge": "actor|geology/stone_granite_large.xml",
"rockMedium": "actor|geology/stone_granite_med.xml",
"bushMedium": "actor|props/flora/bush_medit_me.xml",
"bushSmall": "actor|props/flora/bush_medit_sm.xml",
"tree": "actor|flora/trees/oak.xml"
},
"TreeCount": {
"minTrees": 500,
"maxTrees": 3000,
"forestProbability": 0.7
}
}

View File

@ -1,3 +1,5 @@
RMS.LoadLibrary("rmbiome/biomes");
/**
* Use constants as biome identifiers, so that we get reference errors if there is a typo.
*/
@ -10,71 +12,13 @@ const g_BiomeSavanna = "savanna";
const g_BiomeTropic = "tropic";
const g_BiomeAutumn = "autumn";
const g_Biomes = deepfreeze([
g_BiomeTemperate,
g_BiomeSnowy,
g_BiomeDesert,
g_BiomeAlpine,
g_BiomeMediterranean,
g_BiomeSavanna,
g_BiomeTropic,
g_BiomeAutumn
]);
var g_Terrains = {};
var g_Gaia = {};
var g_Decoratives = {};
var g_TreeCount = {};
var g_BiomeID = g_BiomeTemperate;
var g_Terrains = {
"mainTerrain": ["temp_grass_long_b"],
"forestFloor1": "temp_forestfloor_pine",
"forestFloor2": "temp_plants_bog",
"tier1Terrain": "temp_grass_d",
"tier2Terrain": "temp_grass_c",
"tier3Terrain": "temp_grass_clovers_2",
"tier4Terrain": "temp_grass_plants",
"cliff": ["temp_cliff_a", "temp_cliff_b"],
"hill": ["temp_dirt_gravel", "temp_dirt_gravel_b"],
"dirt": ["temp_dirt_gravel", "temp_dirt_gravel_b"],
"road": "temp_road",
"roadWild": "temp_road_overgrown",
"shoreBlend": "temp_mud_plants",
"shore": "sand_grass_25",
"water": "medit_sand_wet"
};
var g_Gaia = {
"tree1": "gaia/flora_tree_oak",
"tree2": "gaia/flora_tree_oak_large",
"tree3": "gaia/flora_tree_apple",
"tree4": "gaia/flora_tree_pine",
"tree5": "gaia/flora_tree_aleppo_pine",
"fruitBush": "gaia/flora_bush_berry",
"chicken": "gaia/fauna_chicken",
"fish": "gaia/fauna_fish",
"mainHuntableAnimal": "gaia/fauna_deer",
"secondaryHuntableAnimal": "gaia/fauna_sheep",
"stoneLarge": "gaia/geology_stonemine_medit_quarry",
"stoneSmall": "gaia/geology_stone_mediterranean",
"metalLarge": "gaia/geology_metal_mediterranean_slabs"
};
var g_Decoratives = {
"grass": "actor|props/flora/grass_soft_large_tall.xml",
"grassShort": "actor|props/flora/grass_soft_large.xml",
"reeds": "actor|props/flora/reeds_pond_lush_a.xml",
"lillies": "actor|props/flora/pond_lillies_large.xml",
"rockLarge": "actor|geology/stone_granite_large.xml",
"rockMedium": "actor|geology/stone_granite_med.xml",
"bushMedium": "actor|props/flora/bush_medit_me.xml",
"bushSmall": "actor|props/flora/bush_medit_sm.xml",
"tree": "actor|flora/trees/oak.xml"
};
var g_TreeCount = {
"minTrees": 500,
"maxTrees": 3000,
"forestProbability": 0.7
};
function currentBiome()
{
return g_BiomeID;
@ -82,642 +26,55 @@ function currentBiome()
function setSelectedBiome()
{
if (g_Biomes.indexOf(g_MapSettings.Biome) == -1)
{
error("Can't set biome '" + g_MapSettings.Biome + "'");
return;
}
setBiome(g_MapSettings.Biome);
}
function setBiome(biomeID)
{
if (g_Biomes.indexOf(biomeID) == -1)
warn("Unknown biome: '" + biomeID + "'");
else
g_BiomeID = biomeID;
loadBiomeFile("defaultbiome");
setSkySet(pickRandom(["cirrus", "cumulus", "sunny"]));
setSunRotation(randFloat(0, TWO_PI));
setSunElevation(randFloat(PI/ 6, PI / 3));
setUnitsAmbientColor(0.57, 0.58, 0.55);
setTerrainAmbientColor(0.447059, 0.509804, 0.54902);
g_BiomeID = biomeID;
if (g_BiomeID == g_BiomeTemperate)
loadBiomeFile("biomes/" + biomeID);
let setupBiomeFunc = global["setupBiome_" + biomeID];
if (setupBiomeFunc)
setupBiomeFunc();
}
function loadBiomeFile(file)
{
let path = "maps/random/rmbiome/" + file + ".json";
if (!RMS.FileExists(path))
{
// 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.
setWaterColor(0.114, 0.192, 0.463);
setWaterTint(0.255, 0.361, 0.651);
setWaterWaviness(5.5);
setWaterMurkiness(0.83);
setFogThickness(0.25);
setFogFactor(0.4);
setPPEffect("hdr");
setPPSaturation(0.62);
setPPContrast(0.62);
setPPBloom(0.3);
g_Terrains = {
"cliff": ["temp_cliff_a", "temp_cliff_b"],
"hill": ["temp_dirt_gravel", "temp_dirt_gravel_b"],
"dirt": ["temp_dirt_gravel", "temp_dirt_gravel_b"],
"road": "temp_road",
"roadWild": "temp_road_overgrown",
"shoreBlend": "temp_mud_plants",
"shore": "sand_grass_25",
"water": "medit_sand_wet"
};
if (randBool())
{
g_Terrains.mainTerrain = "alpine_grass";
g_Terrains.forestFloor1 = "temp_forestfloor_pine";
g_Terrains.forestFloor2 = "temp_grass_clovers_2";
g_Terrains.tier1Terrain = "alpine_grass_a";
g_Terrains.tier2Terrain = "alpine_grass_b";
g_Terrains.tier3Terrain = "alpine_grass_c";
g_Terrains.tier4Terrain = "temp_grass_mossy";
}
else
{
g_Terrains.mainTerrain = "temp_grass_long_b";
g_Terrains.forestFloor1 = "temp_forestfloor_pine";
g_Terrains.forestFloor2 = "temp_plants_bog";
g_Terrains.tier1Terrain = "temp_grass_d";
g_Terrains.tier2Terrain = "temp_grass_c";
g_Terrains.tier3Terrain = "temp_grass_clovers_2";
g_Terrains.tier4Terrain = "temp_grass_plants";
}
g_Gaia = {
"fruitBush": "gaia/flora_bush_berry",
"chicken": "gaia/fauna_chicken",
"fish": "gaia/fauna_fish",
"mainHuntableAnimal": "gaia/fauna_deer",
"secondaryHuntableAnimal": "gaia/fauna_sheep",
"stoneLarge": "gaia/geology_stonemine_temperate_quarry",
"stoneSmall": "gaia/geology_stone_temperate",
"metalLarge": "gaia/geology_metal_temperate_slabs"
};
var random_trees = randIntInclusive(1, 3);
if (random_trees == 1)
{
g_Gaia.tree1 = "gaia/flora_tree_oak";
g_Gaia.tree2 = "gaia/flora_tree_oak_large";
}
else if (random_trees == 2)
{
g_Gaia.tree1 = "gaia/flora_tree_poplar";
g_Gaia.tree2 = "gaia/flora_tree_poplar";
}
else
{
g_Gaia.tree1 = "gaia/flora_tree_euro_beech";
g_Gaia.tree2 = "gaia/flora_tree_euro_beech";
}
g_Gaia.tree3 = "gaia/flora_tree_apple";
random_trees = randIntInclusive(1, 3);
if (random_trees == 1)
{
g_Gaia.tree4 = "gaia/flora_tree_pine";
g_Gaia.tree5 = "gaia/flora_tree_aleppo_pine";
}
else if (random_trees == 2)
{
g_Gaia.tree4 = "gaia/flora_tree_pine";
g_Gaia.tree5 = "gaia/flora_tree_pine";
}
else
{
g_Gaia.tree4 = "gaia/flora_tree_aleppo_pine";
g_Gaia.tree5 = "gaia/flora_tree_aleppo_pine";
}
g_Decoratives = {
"grass": "actor|props/flora/grass_soft_large_tall.xml",
"grassShort": "actor|props/flora/grass_soft_large.xml",
"reeds": "actor|props/flora/reeds_pond_lush_a.xml",
"lillies": "actor|props/flora/water_lillies.xml",
"rockLarge": "actor|geology/stone_granite_large.xml",
"rockMedium": "actor|geology/stone_granite_med.xml",
"bushMedium": "actor|props/flora/bush_medit_me.xml",
"bushSmall": "actor|props/flora/bush_medit_sm.xml",
"tree": "actor|flora/trees/oak.xml"
};
error("Could not load biome file '" + file + "'");
return;
}
else if (g_BiomeID == g_BiomeSnowy)
{
setSunColor(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.
setWaterColor(0.067, 0.212, 0.361);
setWaterTint(0.4, 0.486, 0.765);
setWaterWaviness(5.5);
setWaterMurkiness(0.83);
g_Terrains = {
"mainTerrain": ["polar_snow_b", "snow grass 75", "snow rocks", "snow forest"],
"forestFloor1": "polar_tundra_snow",
"forestFloor2": "polar_tundra_snow",
"cliff": ["alpine_cliff_a", "alpine_cliff_b"],
"tier1Terrain": "polar_snow_a",
"tier2Terrain": "polar_ice_snow",
"tier3Terrain": "polar_ice",
"tier4Terrain": "snow grass 2",
"hill": ["polar_snow_rocks", "polar_cliff_snow"],
"dirt": "snow grass 2",
"road": "new_alpine_citytile",
"roadWild": "polar_ice_cracked",
"shoreBlend": "polar_ice",
"shore": "alpine_shore_rocks_icy",
"water": "alpine_shore_rocks"
};
let biome = RMS.ReadJSONFile(path)
g_Gaia = {
"tree1": "gaia/flora_tree_pine_w",
"tree2": "gaia/flora_tree_pine_w",
"tree3": "gaia/flora_tree_pine_w",
"tree4": "gaia/flora_tree_pine_w",
"tree5": "gaia/flora_tree_pine",
"fruitBush": "gaia/flora_bush_berry",
"chicken": "gaia/fauna_chicken",
"mainHuntableAnimal": "gaia/fauna_muskox",
"fish": "gaia/fauna_fish_tuna",
"secondaryHuntableAnimal": "gaia/fauna_walrus",
"stoneLarge": "gaia/geology_stonemine_alpine_quarry",
"stoneSmall": "gaia/geology_stone_alpine_a",
"metalLarge": "gaia/geology_metal_alpine_slabs"
};
g_Decoratives = {
"grass": "actor|props/flora/grass_soft_dry_small_tall.xml",
"grassShort": "actor|props/flora/grass_soft_dry_large.xml",
"reeds": "actor|props/flora/reeds_pond_dry.xml",
"lillies": "actor|geology/stone_granite_large.xml",
"rockLarge": "actor|geology/stone_granite_large.xml",
"rockMedium": "actor|geology/stone_granite_med.xml",
"bushMedium": "actor|props/flora/bush_desert_dry_a.xml",
"bushSmall": "actor|props/flora/bush_desert_dry_a.xml",
"tree": "actor|flora/trees/pine_w.xml"
};
setFogFactor(0.6);
setFogThickness(0.21);
setPPSaturation(0.37);
setPPEffect("hdr");
}
else if (g_BiomeID == g_BiomeDesert)
{
setSunColor(0.733, 0.746, 0.574);
// Went for a very clear, slightly blue-ish water in this case, basically no waves.
setWaterColor(0, 0.227, 0.843);
setWaterTint(0, 0.545, 0.859);
setWaterWaviness(1);
setWaterMurkiness(0.22);
setFogFactor(0.5);
setFogThickness(0.0);
setFogColor(0.852, 0.746, 0.493);
setPPEffect("hdr");
setPPContrast(0.67);
setPPSaturation(0.42);
setPPBloom(0.23);
g_Terrains = {
"mainTerrain": ["desert_dirt_rough", "desert_dirt_rough_2", "desert_sand_dunes_50", "desert_sand_smooth"],
"forestFloor1": "forestfloor_dirty",
"forestFloor2": "desert_forestfloor_palms",
"cliff": ["desert_cliff_1", "desert_cliff_2", "desert_cliff_3", "desert_cliff_4", "desert_cliff_5"],
"tier1Terrain": "desert_dirt_rough",
"tier2Terrain": "desert_dirt_rocks_1",
"tier3Terrain": "desert_dirt_rocks_2",
"tier4Terrain": "desert_dirt_rough",
"hill": ["desert_dirt_rocks_1", "desert_dirt_rocks_2", "desert_dirt_rocks_3"],
"dirt": ["desert_lakebed_dry", "desert_lakebed_dry_b"],
"road": "desert_city_tile",
"roadWild": "desert_city_tile",
"shoreBlend": "desert_shore_stones",
"shore": "desert_sand_smooth",
"water": "desert_sand_wet"
};
g_Gaia = {
"fruitBush": "gaia/flora_bush_grapes",
"chicken": "gaia/fauna_chicken",
"mainHuntableAnimal": "gaia/fauna_camel",
"fish": "gaia/fauna_fish",
"secondaryHuntableAnimal": "gaia/fauna_gazelle",
"stoneLarge": "gaia/geology_stonemine_desert_quarry",
"stoneSmall": "gaia/geology_stone_desert_small",
"metalLarge": "gaia/geology_metal_desert_slabs"
};
if (randBool())
let copyProperties = (from, to) => {
for (let prop in from)
{
g_Gaia.tree1 = "gaia/flora_tree_cretan_date_palm_short";
g_Gaia.tree2 = "gaia/flora_tree_cretan_date_palm_tall";
if (typeof from[prop] == "object" && !Array.isArray(from[prop]))
{
if (!to[prop])
to[prop] = {};
copyProperties(from[prop], to[prop]);
}
else
to[prop] = from[prop];
}
else
{
g_Gaia.tree1 = "gaia/flora_tree_date_palm";
g_Gaia.tree2 = "gaia/flora_tree_date_palm";
}
g_Gaia.tree3 = "gaia/flora_tree_fig";
};
if (randBool())
{
g_Gaia.tree4 = "gaia/flora_tree_tamarix";
g_Gaia.tree5 = "gaia/flora_tree_tamarix";
}
else
{
g_Gaia.tree4 = "gaia/flora_tree_senegal_date_palm";
g_Gaia.tree5 = "gaia/flora_tree_senegal_date_palm";
}
g_Decoratives = {
"grass": "actor|props/flora/grass_soft_dry_small_tall.xml",
"grassShort": "actor|props/flora/grass_soft_dry_large.xml",
"reeds": "actor|props/flora/reeds_pond_lush_a.xml",
"lillies": "actor|props/flora/reeds_pond_lush_b.xml",
"rockLarge": "actor|geology/stone_desert_med.xml",
"rockMedium": "actor|geology/stone_desert_med.xml",
"bushMedium": "actor|props/flora/bush_desert_dry_a.xml",
"bushSmall": "actor|props/flora/bush_desert_dry_a.xml",
"tree": "actor|flora/trees/palm_date.xml"
};
}
else if (g_BiomeID == g_BiomeAlpine)
{
// simulates an alpine lake, fairly deep.
// this is not intended for a clear running river, or even an ocean.
setWaterColor(0.0, 0.047, 0.286); // dark majestic blue
setWaterTint(0.471, 0.776, 0.863); // light blue
setWaterMurkiness(0.82);
setWaterWaviness(2);
setFogThickness(0.26);
setFogFactor(0.4);
setPPEffect("hdr");
setPPSaturation(0.48);
setPPContrast(0.53);
setPPBloom(0.12);
g_Terrains = {
"mainTerrain": ["alpine_dirt_grass_50"],
"forestFloor1": "alpine_forrestfloor",
"forestFloor2": "alpine_forrestfloor",
"cliff": ["alpine_cliff_a", "alpine_cliff_b", "alpine_cliff_c"],
"tier1Terrain": "alpine_dirt",
"tier2Terrain": ["alpine_grass_snow_50", "alpine_dirt_snow", "alpine_dirt_snow"],
"tier3Terrain": ["alpine_snow_a", "alpine_snow_b"],
"tier4Terrain": "new_alpine_grass_a",
"hill": "alpine_cliff_snow",
"dirt": ["alpine_dirt", "alpine_grass_d"],
"road": "new_alpine_citytile",
"roadWild": "new_alpine_citytile",
"shoreBlend": "alpine_shore_rocks",
"shore": "alpine_shore_rocks_grass_50",
"water": "alpine_shore_rocks"
};
g_Gaia = {
"tree1": "gaia/flora_tree_pine",
"tree2": "gaia/flora_tree_pine",
"tree3": "gaia/flora_tree_pine",
"tree4": "gaia/flora_tree_pine",
"tree5": "gaia/flora_tree_pine",
"fruitBush": "gaia/flora_bush_berry",
"chicken": "gaia/fauna_chicken",
"mainHuntableAnimal": "gaia/fauna_goat",
"fish": "gaia/fauna_fish_tuna",
"secondaryHuntableAnimal": "gaia/fauna_deer",
"stoneLarge": "gaia/geology_stonemine_alpine_quarry",
"stoneSmall": "gaia/geology_stone_alpine_a",
"metalLarge": "gaia/geology_metal_alpine_slabs"
};
g_Decoratives = {
"grass": "actor|props/flora/grass_soft_small_tall.xml",
"grassShort": "actor|props/flora/grass_soft_large.xml",
"reeds": "actor|props/flora/reeds_pond_dry.xml",
"lillies": "actor|geology/stone_granite_large.xml",
"rockLarge": "actor|geology/stone_granite_large.xml",
"rockMedium": "actor|geology/stone_granite_med.xml",
"bushMedium": "actor|props/flora/bush_desert_a.xml",
"bushSmall": "actor|props/flora/bush_desert_a.xml",
"tree": "actor|flora/trees/pine.xml"
};
}
else if (g_BiomeID == g_BiomeMediterranean)
{
// Guess what, this is based on the colors of the mediterranean sea.
setWaterColor(0.024,0.212,0.024);
setWaterTint(0.133, 0.725,0.855);
setWaterWaviness(3);
setWaterMurkiness(0.8);
setFogFactor(0.3);
setFogThickness(0.25);
setPPEffect("hdr");
setPPContrast(0.62);
setPPSaturation(0.51);
setPPBloom(0.12);
g_Terrains = {
"mainTerrain": ["medit_grass_field_a", "medit_grass_field_b"],
"forestFloor1": "medit_grass_field",
"forestFloor2": "medit_grass_shrubs",
"cliff": ["medit_cliff_grass", "medit_cliff_greek", "medit_cliff_greek_2", "medit_cliff_aegean", "medit_cliff_italia", "medit_cliff_italia_grass"],
"tier1Terrain": "medit_grass_field_b",
"tier2Terrain": "medit_grass_field_brown",
"tier3Terrain": "medit_grass_field_dry",
"tier4Terrain": "medit_grass_wild",
"hill": ["medit_rocks_grass_shrubs", "medit_rocks_shrubs"],
"dirt": ["medit_dirt", "medit_dirt_b"],
"road": "medit_city_tile",
"roadWild": "medit_city_tile",
"shoreBlend": "medit_sand",
"shore": "sand_grass_25",
"water": "medit_sand_wet"
};
g_Gaia = {
"chicken": "gaia/fauna_chicken",
"mainHuntableAnimal": "gaia/fauna_deer",
"fish": "gaia/fauna_fish",
"secondaryHuntableAnimal": "gaia/fauna_sheep",
"stoneLarge": "gaia/geology_stonemine_medit_quarry",
"stoneSmall": "gaia/geology_stone_mediterranean",
"metalLarge": "gaia/geology_metal_mediterranean_slabs"
};
var random_trees = randIntInclusive(1, 3);
if (random_trees == 1)
{
g_Gaia.tree1 = "gaia/flora_tree_cretan_date_palm_short";
g_Gaia.tree2 = "gaia/flora_tree_cretan_date_palm_tall";
}
else if (random_trees == 2)
{
g_Gaia.tree1 = "gaia/flora_tree_carob";
g_Gaia.tree2 = "gaia/flora_tree_carob";
}
else
{
g_Gaia.tree1 = "gaia/flora_tree_medit_fan_palm";
g_Gaia.tree2 = "gaia/flora_tree_medit_fan_palm";
}
if (randBool())
g_Gaia.tree3 = "gaia/flora_tree_apple";
else
g_Gaia.tree3 = "gaia/flora_tree_poplar_lombardy";
if (randBool())
{
g_Gaia.tree4 = "gaia/flora_tree_cypress";
g_Gaia.tree5 = "gaia/flora_tree_cypress";
}
else
{
g_Gaia.tree4 = "gaia/flora_tree_aleppo_pine";
g_Gaia.tree5 = "gaia/flora_tree_aleppo_pine";
}
if (randBool())
g_Gaia.fruitBush = "gaia/flora_bush_berry";
else
g_Gaia.fruitBush = "gaia/flora_bush_grapes";
g_Decoratives = {
"grass": "actor|props/flora/grass_soft_large_tall.xml",
"grassShort": "actor|props/flora/grass_soft_large.xml",
"reeds": "actor|props/flora/reeds_pond_lush_b.xml",
"lillies": "actor|props/flora/water_lillies.xml",
"rockLarge": "actor|geology/stone_granite_large.xml",
"rockMedium": "actor|geology/stone_granite_med.xml",
"bushMedium": "actor|props/flora/bush_medit_me.xml",
"bushSmall": "actor|props/flora/bush_medit_sm.xml",
"tree": "actor|flora/trees/palm_cretan_date.xml"
};
}
else if (g_BiomeID == g_BiomeSavanna)
{
// Using the Malawi as a reference, in parts where it's not too murky from a river nearby.
setWaterColor(0.055,0.176,0.431);
setWaterTint(0.227,0.749,0.549);
setWaterWaviness(1.5);
setWaterMurkiness(0.77);
setFogFactor(0.25);
setFogThickness(0.15);
setFogColor(0.847059, 0.737255, 0.482353);
setPPEffect("hdr");
setPPContrast(0.57031);
setPPBloom(0.34);
g_Terrains = {
"mainTerrain": ["savanna_grass_a", "savanna_grass_b"],
"forestFloor1": "savanna_forestfloor_a",
"forestFloor2": "savanna_forestfloor_b",
"cliff": ["savanna_cliff_a", "savanna_cliff_b"],
"tier1Terrain": "savanna_shrubs_a",
"tier2Terrain": "savanna_dirt_rocks_b",
"tier3Terrain": "savanna_dirt_rocks_a",
"tier4Terrain": "savanna_grass_a",
"hill": ["savanna_grass_a", "savanna_grass_b"],
"dirt": ["savanna_dirt_rocks_b", "dirt_brown_e"],
"road": "savanna_tile_a",
"roadWild": "savanna_tile_a",
"shoreBlend": "savanna_riparian",
"shore": "savanna_riparian_bank",
"water": "savanna_riparian_wet"
};
g_Gaia = {
"tree1": "gaia/flora_tree_baobab",
"tree2": "gaia/flora_tree_baobab",
"tree3": "gaia/flora_tree_baobab",
"tree4": "gaia/flora_tree_baobab",
"tree5": "gaia/flora_tree_baobab",
"fruitBush": "gaia/flora_bush_grapes",
"chicken": "gaia/fauna_chicken",
"fish": "gaia/fauna_fish",
"mainHuntableAnimal": pickRandom([
"gaia/fauna_wildebeest",
"gaia/fauna_zebra",
"gaia/fauna_giraffe",
"gaia/fauna_elephant_african_bush"
]),
"secondaryHuntableAnimal": "gaia/fauna_gazelle",
"stoneLarge": "gaia/geology_stonemine_desert_quarry",
"stoneSmall": "gaia/geology_stone_savanna_small",
"metalLarge": "gaia/geology_metal_savanna_slabs"
};
g_Decoratives = {
"grass": "actor|props/flora/grass_savanna.xml",
"grassShort": "actor|props/flora/grass_medit_field.xml",
"reeds": "actor|props/flora/reeds_pond_lush_a.xml",
"lillies": "actor|props/flora/reeds_pond_lush_b.xml",
"rockLarge": "actor|geology/stone_savanna_med.xml",
"rockMedium": "actor|geology/stone_savanna_med.xml",
"bushMedium": "actor|props/flora/bush_desert_dry_a.xml",
"bushSmall": "actor|props/flora/bush_dry_a.xml",
"tree": "actor|flora/trees/baobab.xml"
};
g_TreeCount = {
"minTrees": 200,
"maxTrees": 1250,
"forestProbability": 0
};
}
else if (g_BiomeID == g_BiomeTropic)
{
// Bora-Bora ish. Quite transparent, not wavy.
// Mostly for shallow maps. Maps where the water level goes deeper should use a much darker Water Color to simulate deep water holes.
setWaterColor(0.584,0.824,0.929);
setWaterTint(0.569,0.965,0.945);
setWaterWaviness(1.5);
setWaterMurkiness(0.35);
setFogFactor(0.4);
setFogThickness(0.2);
setPPEffect("hdr");
setPPContrast(0.67);
setPPSaturation(0.62);
setPPBloom(0.6);
g_Terrains = {
"mainTerrain": ["tropic_grass_c", "tropic_grass_c", "tropic_grass_c", "tropic_grass_c", "tropic_grass_plants", "tropic_plants", "tropic_plants_b"],
"forestFloor1": "tropic_plants_c",
"forestFloor2": "tropic_plants_c",
"cliff": ["tropic_cliff_a", "tropic_cliff_a", "tropic_cliff_a", "tropic_cliff_a_plants"],
"tier1Terrain": "tropic_grass_c",
"tier2Terrain": "tropic_grass_plants",
"tier3Terrain": "tropic_plants",
"tier4Terrain": "tropic_plants_b",
"hill": ["tropic_cliff_grass"],
"dirt": ["tropic_dirt_a", "tropic_dirt_a_plants"],
"road": "tropic_citytile_a",
"roadWild": "tropic_citytile_plants",
"shoreBlend": "temp_mud_plants",
"shore": "tropic_beach_dry_plants",
"water": "tropic_beach_dry"
};
g_Gaia = {
"tree1": "gaia/flora_tree_toona",
"tree2": "gaia/flora_tree_toona",
"tree3": "gaia/flora_tree_palm_tropic",
"tree4": "gaia/flora_tree_palm_tropic",
"tree5": "gaia/flora_tree_palm_tropic",
"fruitBush": "gaia/flora_bush_berry",
"chicken": "gaia/fauna_chicken",
"mainHuntableAnimal": "gaia/fauna_peacock",
"fish": "gaia/fauna_fish",
"secondaryHuntableAnimal": "gaia/fauna_tiger",
"stoneLarge": "gaia/geology_stonemine_tropic_quarry",
"stoneSmall": "gaia/geology_stone_tropic_a",
"metalLarge": "gaia/geology_metal_tropic_slabs"
};
g_Decoratives = {
"grass": "actor|props/flora/plant_tropic_a.xml",
"grassShort": "actor|props/flora/plant_lg.xml",
"reeds": "actor|props/flora/reeds_pond_lush_b.xml",
"lillies": "actor|props/flora/water_lillies.xml",
"rockLarge": "actor|geology/stone_granite_large.xml",
"rockMedium": "actor|geology/stone_granite_med.xml",
"bushMedium": "actor|props/flora/plant_tropic_large.xml",
"bushSmall": "actor|props/flora/plant_tropic_large.xml",
"tree": "actor|flora/trees/tree_tropic.xml"
};
g_TreeCount = {
"minTrees": 1000,
"maxTrees": 6000,
"forestProbabilityp": 0.52
};
}
else if (g_BiomeID == g_BiomeAutumn)
{
// 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.
setWaterColor(0.157, 0.149, 0.443);
setWaterTint(0.443,0.42,0.824);
setWaterWaviness(2.5);
setWaterMurkiness(0.83);
setFogFactor(0.35);
setFogThickness(0.22);
setFogColor(0.82,0.82, 0.73);
setPPSaturation(0.56);
setPPContrast(0.56);
setPPBloom(0.38);
setPPEffect("hdr");
g_Terrains = {
"mainTerrain": ["temp_grass_aut", "temp_grass_aut", "temp_grass_d_aut"],
"forestFloor1": "temp_plants_bog_aut",
"forestFloor2": "temp_forestfloor_aut",
"cliff": ["temp_cliff_a", "temp_cliff_b"],
"tier1Terrain": "temp_grass_plants_aut",
"tier2Terrain": ["temp_grass_b_aut", "temp_grass_c_aut"],
"tier3Terrain": ["temp_grass_b_aut", "temp_grass_long_b_aut"],
"tier4Terrain": "temp_grass_plants_aut",
"hill": "temp_highlands_aut",
"dirt": ["temp_cliff_a", "temp_cliff_b"],
"road": "temp_road_aut",
"roadWild": "temp_road_overgrown_aut",
"shoreBlend": "temp_grass_plants_aut",
"shore": "temp_forestfloor_pine",
"water": "medit_sand_wet"
};
g_Gaia = {
"tree1": "gaia/flora_tree_euro_beech_aut",
"tree2": "gaia/flora_tree_euro_beech_aut",
"tree3": "gaia/flora_tree_pine",
"tree4": "gaia/flora_tree_oak_aut",
"tree5": "gaia/flora_tree_oak_aut",
"fruitBush": "gaia/flora_bush_berry",
"chicken": "gaia/fauna_chicken",
"mainHuntableAnimal": "gaia/fauna_deer",
"fish": "gaia/fauna_fish",
"secondaryHuntableAnimal": "gaia/fauna_rabbit",
"stoneLarge": "gaia/geology_stonemine_temperate_quarry",
"stoneSmall": "gaia/geology_stone_temperate",
"metalLarge": "gaia/geology_metal_temperate_slabs"
};
g_Decoratives = {
"grass": "actor|props/flora/grass_soft_dry_small_tall.xml",
"grassShort": "actor|props/flora/grass_soft_dry_large.xml",
"reeds": "actor|props/flora/reeds_pond_dry.xml",
"lillies": "actor|geology/stone_granite_large.xml",
"rockLarge": "actor|geology/stone_granite_large.xml",
"rockMedium": "actor|geology/stone_granite_med.xml",
"bushMedium": "actor|props/flora/bush_desert_dry_a.xml",
"bushSmall": "actor|props/flora/bush_desert_dry_a.xml",
"tree": "actor|flora/trees/european_beech_aut.xml"
};
}
for (let rmsGlobal in biome)
copyProperties(biome[rmsGlobal], global["g_" + rmsGlobal]);
}
function rBiomeTreeCount(multiplier = 1)

View File

@ -103,6 +103,8 @@ bool CMapGeneratorWorker::Run()
m_ScriptInterface->RegisterFunction<void, JS::HandleValue, CMapGeneratorWorker::ExportMap>("ExportMap");
m_ScriptInterface->RegisterFunction<void, int, CMapGeneratorWorker::SetProgress>("SetProgress");
m_ScriptInterface->RegisterFunction<void, CMapGeneratorWorker::MaybeGC>("MaybeGC");
m_ScriptInterface->RegisterFunction<bool, std::wstring, CMapGeneratorWorker::FileExists>("FileExists");
m_ScriptInterface->RegisterFunction<JS::Value, std::wstring, CMapGeneratorWorker::ReadJSONFile> ("ReadJSONFile");
m_ScriptInterface->RegisterFunction<std::vector<std::string>, CMapGeneratorWorker::GetCivData>("GetCivData");
m_ScriptInterface->RegisterFunction<CParamNode, std::string, CMapGeneratorWorker::GetTemplate>("GetTemplate");
m_ScriptInterface->RegisterFunction<bool, std::string, CMapGeneratorWorker::TemplateExists>("TemplateExists");
@ -187,6 +189,20 @@ void CMapGeneratorWorker::MaybeGC(ScriptInterface::CxPrivate* pCxPrivate)
self->m_ScriptInterface->MaybeGC();
}
bool CMapGeneratorWorker::FileExists(ScriptInterface::CxPrivate* UNUSED(pCxPrivate), const std::wstring& filePath)
{
return g_VFS->GetFileInfo(filePath, 0) == INFO::OK;
}
JS::Value CMapGeneratorWorker::ReadJSONFile(ScriptInterface::CxPrivate* pCxPrivate, const std::wstring& filePath)
{
JSContext* cx = pCxPrivate->pScriptInterface->GetContext();
JSAutoRequest rq(cx);
JS::RootedValue out(cx);
pCxPrivate->pScriptInterface->ReadJSONFile(filePath, &out);
return out;
}
std::vector<std::string> CMapGeneratorWorker::GetCivData(ScriptInterface::CxPrivate* UNUSED(pCxPrivate))
{
VfsPath path(L"simulation/data/civs/");

View File

@ -125,6 +125,8 @@ private:
static void ExportMap(ScriptInterface::CxPrivate* pCxPrivate, JS::HandleValue data);
static void SetProgress(ScriptInterface::CxPrivate* pCxPrivate, int progress);
static void MaybeGC(ScriptInterface::CxPrivate* pCxPrivate);
static bool FileExists(ScriptInterface::CxPrivate* pCxPrivate, const std::wstring& filePath);
static JS::Value ReadJSONFile(ScriptInterface::CxPrivate* pCxPrivate, const std::wstring& filePath);
static std::vector<std::string> GetCivData(ScriptInterface::CxPrivate* pCxPrivate);
static CParamNode GetTemplate(ScriptInterface::CxPrivate* pCxPrivate, const std::string& templateName);
static bool TemplateExists(ScriptInterface::CxPrivate* pCxPrivate, const std::string& templateName);