1
0
forked from mirrors/0ad

Load map scripts as modules

Because its a function `GenerateMap` is renamed to `generateMap`.

Allows to rewrite the libraries as modules and to remove the costum
`Engine.LoadLibrary` mechanism in the future.
This commit is contained in:
phosit
2025-02-05 18:23:13 +01:00
committed by phosit
parent 086e8ec09d
commit df5cdbe8f1
96 changed files with 133 additions and 102 deletions
@@ -1,7 +1,7 @@
Engine.LoadLibrary("rmgen");
Engine.LoadLibrary("rmgen-common");
function* GenerateMap()
export function* generateMap()
{
TILE_CENTERED_HEIGHT_MAP = true;
@@ -2,7 +2,7 @@ Engine.LoadLibrary("rmgen");
Engine.LoadLibrary("rmgen-common");
Engine.LoadLibrary("rmbiome");
function* GenerateMap(mapSettings)
export function* generateMap(mapSettings)
{
setBiome(mapSettings.Biome);
@@ -2,7 +2,7 @@ Engine.LoadLibrary("rmbiome");
Engine.LoadLibrary("rmgen");
Engine.LoadLibrary("rmgen-common");
function* GenerateMap(mapSettings)
export function* generateMap(mapSettings)
{
setBiome(mapSettings.Biome);
const isLateSpringBiome = mapSettings.Biome === "alpine/late_spring";
@@ -234,7 +234,7 @@ MountainRangeBuilder.prototype.CreateMountainRanges = function*(map)
}
};
function* GenerateMap(mapSettings)
export function* generateMap(mapSettings)
{
setBiome(mapSettings.Biome);
@@ -3,7 +3,7 @@ Engine.LoadLibrary("rmgen-common");
Engine.LoadLibrary("rmgen2");
Engine.LoadLibrary("rmbiome");
function* GenerateMap(mapSettings)
export function* generateMap(mapSettings)
{
setBiome(mapSettings.Biome);
@@ -1,7 +1,7 @@
Engine.LoadLibrary("rmgen");
Engine.LoadLibrary("rmgen-common");
function* GenerateMap(mapSettings)
export function* generateMap(mapSettings)
{
const tPrimary = ["steppe_grass_a", "steppe_grass_c", "steppe_grass_d"];
const tGrass = ["steppe_grass_a", "steppe_grass_b", "steppe_grass_c", "steppe_grass_d"];
@@ -2,7 +2,7 @@ Engine.LoadLibrary("rmgen");
Engine.LoadLibrary("rmgen-common");
Engine.LoadLibrary("rmbiome");
function* GenerateMap(mapSettings)
export function* generateMap(mapSettings)
{
TILE_CENTERED_HEIGHT_MAP = true;
@@ -1,7 +1,7 @@
Engine.LoadLibrary("rmgen");
Engine.LoadLibrary("rmgen-common");
function* GenerateMap(mapSettings)
export function* generateMap(mapSettings)
{
setFogThickness(0.46);
setFogFactor(0.5);
@@ -2,7 +2,7 @@ Engine.LoadLibrary("rmgen");
Engine.LoadLibrary("rmgen-common");
Engine.LoadLibrary("rmbiome");
function* GenerateMap(mapSettings)
export function* generateMap(mapSettings)
{
setBiome("generic/temperate");
@@ -1,7 +1,7 @@
Engine.LoadLibrary("rmgen");
Engine.LoadLibrary("rmgen-common");
function* GenerateMap(mapSettings)
export function* generateMap(mapSettings)
{
const tPrimary = ["medit_rocks_grass", "medit_rocks_grass", "medit_rocks_grass",
"medit_rocks_grass", "medit_rocks_grass_shrubs", "medit_rocks_shrubs"];
@@ -21,7 +21,7 @@ Engine.LoadLibrary("rmgen-common");
Engine.LoadLibrary("rmgen2");
Engine.LoadLibrary("rmbiome");
function* GenerateMap(mapSettings)
export function* generateMap(mapSettings)
{
setBiome("generic/sahara");
setLandBiome();
@@ -2,7 +2,7 @@ Engine.LoadLibrary("rmgen");
Engine.LoadLibrary("rmgen-common");
Engine.LoadLibrary("heightmap");
function* GenerateMap()
export function* generateMap()
{
const tPrimary = ["temp_grass", "temp_grass_b", "temp_grass_c", "temp_grass_d",
"temp_grass_long_b", "temp_grass_clovers_2", "temp_grass_mossy", "temp_grass_plants"];
@@ -1,7 +1,7 @@
Engine.LoadLibrary("rmgen");
Engine.LoadLibrary("rmgen-common");
function* GenerateMap(mapSettings)
export function* generateMap(mapSettings)
{
const tGrassA = "savanna_shrubs_a_wetseason";
const tGrassB = "savanna_shrubs_a";
@@ -3,7 +3,7 @@ Engine.LoadLibrary("rmgen-common");
Engine.LoadLibrary("rmbiome");
Engine.LoadLibrary("heightmap");
function* GenerateMap()
export function* generateMap()
{
const tGrove = "temp_grass_plants";
const tPath = "road_rome_a";
@@ -2,7 +2,7 @@ Engine.LoadLibrary("rmgen");
Engine.LoadLibrary("rmgen-common");
Engine.LoadLibrary("rmbiome");
function* GenerateMap(mapSettings)
export function* generateMap(mapSettings)
{
setBiome(mapSettings.Biome);
@@ -2,7 +2,7 @@ Engine.LoadLibrary("rmgen");
Engine.LoadLibrary("rmgen-common");
Engine.LoadLibrary("rmbiome");
function* GenerateMap(mapSettings)
export function* generateMap(mapSettings)
{
setBiome(mapSettings.Biome);
@@ -2,9 +2,8 @@ Engine.LoadLibrary("rmgen");
Engine.LoadLibrary("rmgen-common");
Engine.LoadLibrary("rmbiome");
function* GenerateMap(mapSettings)
export function* generateMap(mapSettings)
{
setBiome(mapSettings.Biome);
const tMainTerrain = g_Terrains.mainTerrain;
@@ -2,7 +2,7 @@ Engine.LoadLibrary("rmgen");
Engine.LoadLibrary("rmgen-common");
Engine.LoadLibrary("rmbiome");
function* GenerateMap(mapSettings)
export function* generateMap(mapSettings)
{
setBiome(mapSettings.Biome);
@@ -2,7 +2,7 @@ Engine.LoadLibrary("rmgen");
Engine.LoadLibrary("rmgen-common");
Engine.LoadLibrary("rmbiome");
function* GenerateMap(mapSettings)
export function* generateMap(mapSettings)
{
setBiome(mapSettings.Biome);
@@ -1,7 +1,7 @@
Engine.LoadLibrary("rmgen");
Engine.LoadLibrary("rmgen-common");
function* GenerateMap()
export function* generateMap()
{
const tGrass = ["medit_grass_field", "medit_grass_field_b", "temp_grass_c"];
const tLushGrass = ["medit_grass_field", "medit_grass_field_a"];
@@ -1,7 +1,7 @@
Engine.LoadLibrary("rmgen");
Engine.LoadLibrary("rmgen-common");
function* GenerateMap()
export function* generateMap()
{
const tOceanRockDeep = "medit_sea_coral_deep";
const tOceanCoral = "medit_sea_coral_plants";
@@ -1,7 +1,7 @@
Engine.LoadLibrary("rmgen");
Engine.LoadLibrary("rmgen-common");
function* GenerateMap(mapSettings)
export function* generateMap(mapSettings)
{
const day = mapSettings.Daytime !== undefined ? mapSettings.Daytime == "day" : randBool(2/3);
@@ -1,7 +1,7 @@
Engine.LoadLibrary("rmgen");
Engine.LoadLibrary("rmgen-common");
function* GenerateMap()
export function* generateMap()
{
const templateStone = "gaia/rock/temperate_small";
const templateStoneMine = "gaia/rock/temperate_large";
@@ -1,7 +1,7 @@
Engine.LoadLibrary("rmgen");
Engine.LoadLibrary("rmgen-common");
function* GenerateMap()
export function* generateMap()
{
TILE_CENTERED_HEIGHT_MAP = true;
@@ -18,7 +18,7 @@
Engine.LoadLibrary("rmgen");
Engine.LoadLibrary("rmgen-common");
function* GenerateMap(mapSettings)
export function* generateMap(mapSettings)
{
TILE_CENTERED_HEIGHT_MAP = true;
@@ -3,7 +3,7 @@ Engine.LoadLibrary("rmgen-common");
Engine.LoadLibrary("rmgen2");
Engine.LoadLibrary("rmbiome");
function* GenerateMap(mapSettings)
export function* generateMap(mapSettings)
{
setBiome(mapSettings.Biome);
@@ -1,7 +1,7 @@
Engine.LoadLibrary("rmgen");
Engine.LoadLibrary("rmgen-common");
function* GenerateMap()
export function* generateMap()
{
const tPrimary = "temp_grass_long";
const tGrass = ["temp_grass", "temp_grass", "temp_grass_d"];
@@ -1,7 +1,7 @@
Engine.LoadLibrary("rmgen");
Engine.LoadLibrary("rmgen-common");
function* GenerateMap(mapSettings)
export function* generateMap(mapSettings)
{
const tHillDark = "cliff volcanic light";
const tHillMedium1 = "ocean_rock_a";
@@ -2,7 +2,7 @@ Engine.LoadLibrary("rmgen");
Engine.LoadLibrary("rmgen-common");
Engine.LoadLibrary("rmbiome");
function* GenerateMap(mapSettings)
export function* generateMap(mapSettings)
{
setBiome(mapSettings.Biome);
@@ -2,7 +2,7 @@ Engine.LoadLibrary("rmgen");
Engine.LoadLibrary("rmgen-common");
Engine.LoadLibrary("rmbiome");
function* GenerateMap(mapSettings)
export function* generateMap(mapSettings)
{
setBiome(mapSettings.Biome);
@@ -2,7 +2,7 @@ Engine.LoadLibrary("rmgen");
Engine.LoadLibrary("rmgen-common");
Engine.LoadLibrary("rmbiome");
function* GenerateMap(mapSettings)
export function* generateMap(mapSettings)
{
setBiome(mapSettings.Biome);
@@ -1,7 +1,7 @@
Engine.LoadLibrary("rmgen");
Engine.LoadLibrary("rmgen-common");
function* GenerateMap()
export function* generateMap()
{
const tGrass = ["temperate_grass_04", "temperate_grass_03", "temperate_grass_04"];
const tForestFloor = "temperate_forestfloor_01";
@@ -3,7 +3,7 @@ Engine.LoadLibrary("rmgen-common");
Engine.LoadLibrary("rmgen2");
Engine.LoadLibrary("rmbiome");
function* GenerateMap(mapSettings)
export function* generateMap(mapSettings)
{
setBiome(mapSettings.Biome);
@@ -2,7 +2,7 @@ Engine.LoadLibrary("rmgen");
Engine.LoadLibrary("rmgen-common");
Engine.LoadLibrary("rmbiome");
function* GenerateMap(mapSettings)
export function* generateMap(mapSettings)
{
TILE_CENTERED_HEIGHT_MAP = true;
@@ -1,7 +1,7 @@
Engine.LoadLibrary("rmgen");
Engine.LoadLibrary("rmgen-common");
function* GenerateMap()
export function* generateMap()
{
const tGrass = ["medit_grass_field_a", "medit_grass_field_b"];
const tForestFloorC = "medit_plants_dirt";
@@ -2,7 +2,7 @@ Engine.LoadLibrary("rmgen");
Engine.LoadLibrary("rmgen-common");
Engine.LoadLibrary("rmbiome");
function* GenerateMap(mapSettings)
export function* generateMap(mapSettings)
{
TILE_CENTERED_HEIGHT_MAP = true;
@@ -3,7 +3,7 @@ Engine.LoadLibrary("rmgen-common");
Engine.LoadLibrary("rmgen2");
Engine.LoadLibrary("rmbiome");
function* GenerateMap(mapSettings)
export function* generateMap(mapSettings)
{
setBiome(mapSettings.Biome);
@@ -18,7 +18,7 @@
Engine.LoadLibrary("rmgen");
Engine.LoadLibrary("rmgen-common");
function* GenerateMap(mapSettings)
export function* generateMap(mapSettings)
{
TILE_CENTERED_HEIGHT_MAP = true;
@@ -3,7 +3,7 @@ Engine.LoadLibrary("rmgen-common");
Engine.LoadLibrary("rmgen2");
Engine.LoadLibrary("rmbiome");
function* GenerateMap(mapSettings)
export function* generateMap(mapSettings)
{
setBiome(mapSettings.Biome);
@@ -2,7 +2,7 @@ Engine.LoadLibrary("rmgen");
Engine.LoadLibrary("rmgen-common");
Engine.LoadLibrary("rmbiome");
function* GenerateMap(mapSettings)
export function* generateMap(mapSettings)
{
setBiome(mapSettings.Biome);
@@ -1,7 +1,7 @@
Engine.LoadLibrary("rmgen");
Engine.LoadLibrary("rmgen-common");
function* GenerateMap(mapSettings)
export function* generateMap(mapSettings)
{
const tGrass1 = "savanna_grass_a";
const tDirt1 = "savanna_dirt_a";
@@ -3,7 +3,7 @@ Engine.LoadLibrary("rmgen-common");
Engine.LoadLibrary("rmgen2");
Engine.LoadLibrary("rmbiome");
function* GenerateMap(mapSettings)
export function* generateMap(mapSettings)
{
const g_InitialMineDistance = 14;
const g_InitialTrees = 50;
@@ -2,7 +2,7 @@ Engine.LoadLibrary("rmgen");
Engine.LoadLibrary("rmgen-common");
Engine.LoadLibrary("rmbiome");
function* GenerateMap(mapSettings)
export function* generateMap(mapSettings)
{
TILE_CENTERED_HEIGHT_MAP = true;
@@ -7,7 +7,7 @@ Engine.LoadLibrary("rmgen");
Engine.LoadLibrary("rmgen-common");
Engine.LoadLibrary("heightmap");
function* GenerateMap(mapSettings)
export function* generateMap(mapSettings)
{
TILE_CENTERED_HEIGHT_MAP = true;
@@ -1,7 +1,7 @@
Engine.LoadLibrary("rmgen");
Engine.LoadLibrary("rmgen-common");
function* GenerateMap()
export function* generateMap()
{
const tGrass = [
"tropic_grass_c",
@@ -2,7 +2,7 @@ Engine.LoadLibrary("rmgen");
Engine.LoadLibrary("rmgen-common");
Engine.LoadLibrary("rmbiome");
function* GenerateMap(mapSettings)
export function* generateMap(mapSettings)
{
setBiome(mapSettings.Biome);
@@ -2,7 +2,7 @@ Engine.LoadLibrary("rmgen");
Engine.LoadLibrary("rmgen-common");
Engine.LoadLibrary("rmbiome");
function* GenerateMap(mapSettings)
export function* generateMap(mapSettings)
{
setBiome(mapSettings.Biome);
@@ -1,7 +1,7 @@
Engine.LoadLibrary("rmgen");
Engine.LoadLibrary("rmgen-common");
function* GenerateMap()
export function* generateMap()
{
const tOceanDepths = "medit_sea_depths";
const tOceanRockDeep = "medit_sea_coral_deep";
@@ -3,7 +3,7 @@ Engine.LoadLibrary("rmgen-common");
Engine.LoadLibrary("rmgen2");
Engine.LoadLibrary("rmbiome");
function* GenerateMap(mapSettings)
export function* generateMap(mapSettings)
{
setBiome(mapSettings.Biome);
@@ -1,7 +1,7 @@
Engine.LoadLibrary("rmgen");
Engine.LoadLibrary("rmgen-common");
function* GenerateMap()
export function* generateMap()
{
const tPrimary = "temp_grass_long";
const tGrass = ["temp_grass", "temp_grass", "temp_grass_d"];
@@ -32,7 +32,7 @@
Engine.LoadLibrary("rmgen");
Engine.LoadLibrary("rmgen-common");
function* GenerateMap(mapSettings)
export function* generateMap(mapSettings)
{
TILE_CENTERED_HEIGHT_MAP = true;
@@ -2,7 +2,7 @@ Engine.LoadLibrary("rmgen");
Engine.LoadLibrary("rmgen-common");
Engine.LoadLibrary("rmbiome");
function* GenerateMap(mapSettings)
export function* generateMap(mapSettings)
{
setBiome(mapSettings.Biome);
@@ -20,7 +20,7 @@ Engine.LoadLibrary("rmgen-common");
Engine.LoadLibrary("rmgen2");
Engine.LoadLibrary("rmbiome");
function* GenerateMap(mapSettings)
export function* generateMap(mapSettings)
{
setBiome("generic/aegean");
@@ -21,7 +21,7 @@ Engine.LoadLibrary("rmgen-common");
Engine.LoadLibrary("rmgen2");
Engine.LoadLibrary("rmbiome");
function* GenerateMap(mapSettings)
export function* generateMap(mapSettings)
{
TILE_CENTERED_HEIGHT_MAP = true;
@@ -2,7 +2,7 @@ Engine.LoadLibrary("rmgen");
Engine.LoadLibrary("rmgen-common");
Engine.LoadLibrary("rmbiome");
function* GenerateMap(mapSettings)
export function* generateMap(mapSettings)
{
setBiome(mapSettings.Biome);
@@ -2,7 +2,7 @@ Engine.LoadLibrary("rmgen");
Engine.LoadLibrary("rmgen-common");
Engine.LoadLibrary("rmbiome");
function* GenerateMap(mapSettings)
export function* generateMap(mapSettings)
{
setBiome(mapSettings.Biome);
@@ -1,7 +1,7 @@
Engine.LoadLibrary("rmgen");
Engine.LoadLibrary("rmgen-common");
function* GenerateMap()
export function* generateMap()
{
globalThis.g_Map = new RandomMap(0, "grass1_spring");
@@ -21,7 +21,7 @@ Engine.LoadLibrary("rmgen-common");
Engine.LoadLibrary("rmgen2");
Engine.LoadLibrary("rmbiome");
function* GenerateMap(mapSettings)
export function* generateMap(mapSettings)
{
setBiome("generic/savanna");
@@ -1,7 +1,7 @@
Engine.LoadLibrary("rmgen");
Engine.LoadLibrary("rmgen-common");
function* GenerateMap()
export function* generateMap()
{
const tSnowA = ["polar_snow_b"];
const tSnowB = "polar_ice_snow";
@@ -1,7 +1,7 @@
Engine.LoadLibrary("rmgen");
Engine.LoadLibrary("rmgen-common");
function* GenerateMap()
export function* generateMap()
{
const tSand = [
"desert_sand_dunes_100",
@@ -2,7 +2,7 @@ Engine.LoadLibrary("rmgen");
Engine.LoadLibrary("rmgen-common");
Engine.LoadLibrary("rmbiome");
function* GenerateMap(mapSettings)
export function* generateMap(mapSettings)
{
setBiome(mapSettings.Biome);
@@ -1,7 +1,7 @@
Engine.LoadLibrary("rmgen");
Engine.LoadLibrary("rmgen-common");
function* GenerateMap()
export function* generateMap()
{
const tCity = "medit_city_pavement";
const tCityPlaza = "medit_city_pavement";
@@ -1,7 +1,7 @@
Engine.LoadLibrary("rmgen");
Engine.LoadLibrary("rmgen-common");
function* GenerateMap(mapSettings)
export function* generateMap(mapSettings)
{
const tPrimary = ["alpine_snow_01"];
const tSecondary = "alpine_snow_02";
@@ -21,7 +21,7 @@ Engine.LoadLibrary("rmgen-common");
Engine.LoadLibrary("rmgen2");
Engine.LoadLibrary("rmbiome");
function* GenerateMap(mapSettings)
export function* generateMap(mapSettings)
{
setBiome("generic/aegean");
@@ -1,7 +1,7 @@
Engine.LoadLibrary("rmgen");
Engine.LoadLibrary("rmgen-common");
function* GenerateMap()
export function* generateMap()
{
TILE_CENTERED_HEIGHT_MAP = true;
@@ -21,7 +21,7 @@ Engine.LoadLibrary("rmgen-common");
Engine.LoadLibrary("rmgen2");
Engine.LoadLibrary("rmbiome");
function* GenerateMap(mapSettings)
export function* generateMap(mapSettings)
{
setBiome("generic/alpine");
@@ -20,7 +20,7 @@ Engine.LoadLibrary("rmgen-common");
Engine.LoadLibrary("rmgen2");
Engine.LoadLibrary("rmbiome");
function* GenerateMap(mapSettings)
export function* generateMap(mapSettings)
{
TILE_CENTERED_HEIGHT_MAP = true;
@@ -1,7 +1,7 @@
Engine.LoadLibrary("rmgen");
Engine.LoadLibrary("rmgen-common");
function* GenerateMap(mapSettings)
export function* generateMap(mapSettings)
{
const tGrass = ["temp_grass", "temp_grass", "temp_grass_d"];
const tForestFloor = "temp_plants_bog";
@@ -1,7 +1,7 @@
Engine.LoadLibrary("rmgen");
Engine.LoadLibrary("rmgen-common");
function* GenerateMap()
export function* generateMap()
{
const tGrass = [
"tropic_grass_c",
@@ -2,7 +2,7 @@ Engine.LoadLibrary("rmgen");
Engine.LoadLibrary("rmgen-common");
Engine.LoadLibrary("rmbiome");
function* GenerateMap(mapSettings)
export function* generateMap(mapSettings)
{
setBiome(mapSettings.Biome);
@@ -1,7 +1,7 @@
Engine.LoadLibrary("rmgen");
Engine.LoadLibrary("rmgen-common");
function* GenerateMap()
export function* generateMap()
{
const tPrimary = "desert_sand_dunes_100";
const tCity = "desert_city_tile";
@@ -1,7 +1,7 @@
Engine.LoadLibrary("rmgen");
Engine.LoadLibrary("rmgen-common");
function* GenerateMap(mapSettings)
export function* generateMap(mapSettings)
{
const tPrimary = "savanna_grass_a";
const tGrass2 = "savanna_grass_b";
@@ -1,7 +1,7 @@
Engine.LoadLibrary("rmgen");
Engine.LoadLibrary("rmgen-common");
function* GenerateMap()
export function* generateMap()
{
const tGrass = "savanna_grass_a";
const tForestFloor = "savanna_forestfloor_a";
@@ -2,7 +2,7 @@ Engine.LoadLibrary("rmgen");
Engine.LoadLibrary("rmgen-common");
Engine.LoadLibrary("heightmap");
function* GenerateMap()
export function* generateMap()
{
setSkySet("fog");
setFogFactor(0.35);
@@ -1,7 +1,7 @@
Engine.LoadLibrary("rmgen");
Engine.LoadLibrary("rmgen-common");
function* GenerateMap()
export function* generateMap()
{
const tMainTerrain = "alpine_snow_a";
const tTier1Terrain = "snow rough";
@@ -2,7 +2,7 @@ Engine.LoadLibrary("rmgen");
Engine.LoadLibrary("rmgen-common");
Engine.LoadLibrary("rmbiome");
function* GenerateMap(mapSettings)
export function* generateMap(mapSettings)
{
TILE_CENTERED_HEIGHT_MAP = true;
@@ -3,7 +3,7 @@ Engine.LoadLibrary("rmgen-common");
Engine.LoadLibrary("rmgen2");
Engine.LoadLibrary("rmbiome");
function* GenerateMap(mapSettings)
export function* generateMap(mapSettings)
{
setBiome(mapSettings.Biome);
@@ -2,7 +2,7 @@ Engine.LoadLibrary("rmgen");
Engine.LoadLibrary("rmgen-common");
Engine.LoadLibrary("rmbiome");
function* GenerateMap(mapSettings)
export function* generateMap(mapSettings)
{
setBiome(mapSettings.Biome);
@@ -1,7 +1,7 @@
Engine.LoadLibrary("rmgen");
Engine.LoadLibrary("rmgen-common");
function* GenerateMap(mapSettings)
export function* generateMap(mapSettings)
{
const tMainDirt = ["desert_dirt_rocks_1", "desert_dirt_cracks"];
const tForestFloor1 = "forestfloor_dirty";
@@ -10,7 +10,7 @@ Engine.GetTemplate = (path) => {
Engine.LoadLibrary("rmgen");
function* GenerateMap()
export function* generateMap()
{
g_MapSettings = { "Size": 512 };
globalThis.g_Map = new RandomMap(0, "blackness");
@@ -10,7 +10,7 @@ Engine.GetTemplate = (path) => {
Engine.LoadLibrary("rmgen");
function* GenerateMap()
export function* generateMap()
{
{
g_MapSettings = { "Size": 512 };
@@ -15,7 +15,7 @@ RandomMapLogger.prototype.printDirectly = function(string)
// print(string);
};
function* GenerateMap(mapSettings)
export function* generateMap(mapSettings)
{
TS_ASSERT_DIFFER(mapSettings.Seed, undefined);
// Phew... that assertion took a while. ;) Let's update the progress bar.
@@ -10,7 +10,7 @@ Engine.GetTemplate = (path) => {
Engine.LoadLibrary("rmgen");
function* GenerateMap()
export function* generateMap()
{
g_MapSettings = { "Size": 512 };
globalThis.g_Map = new RandomMap(0, "blackness");
@@ -1,4 +1,4 @@
function* GenerateMap()
export function* generateMap()
{
try
{
@@ -10,7 +10,7 @@ Engine.GetTemplate = (path) => {
Engine.LoadLibrary("rmgen");
function* GenerateMap()
export function* generateMap()
{
g_MapSettings = { "Size": 512 };
globalThis.g_Map = new RandomMap(0, "blackness");
@@ -10,7 +10,7 @@ Engine.GetTemplate = (path) => {
Engine.LoadLibrary("rmgen");
function* GenerateMap()
export function* generateMap()
{
g_MapSettings = { "Size": 512 };
@@ -10,7 +10,7 @@ Engine.GetTemplate = (path) => {
Engine.LoadLibrary("rmgen");
function* GenerateMap()
export function* generateMap()
{
g_MapSettings = { "Size": 512 };
globalThis.g_Map = new RandomMap(0, "blackness");
@@ -1,7 +1,7 @@
Engine.LoadLibrary("rmgen");
Engine.LoadLibrary("rmgen-common");
function* GenerateMap()
export function* generateMap()
{
const tPrimary = "desert_sand_dunes_100";
const tCity = "desert_city_tile";
@@ -2,7 +2,7 @@ Engine.LoadLibrary("rmgen");
Engine.LoadLibrary("rmgen-common");
Engine.LoadLibrary("rmbiome");
function* GenerateMap(mapSettings)
export function* generateMap(mapSettings)
{
TILE_CENTERED_HEIGHT_MAP = true;
@@ -1,7 +1,7 @@
Engine.LoadLibrary("rmgen");
Engine.LoadLibrary("rmgen-common");
function* GenerateMap(mapSettings)
export function* generateMap(mapSettings)
{
const tGrass = ["cliff volcanic light", "ocean_rock_a", "ocean_rock_b"];
const tGrassA = "cliff volcanic light";
@@ -1,7 +1,7 @@
Engine.LoadLibrary("rmgen");
Engine.LoadLibrary("rmgen-common");
function* GenerateMap()
export function* generateMap()
{
globalThis.g_Map = new RandomMap(0, "grass1");
@@ -3,7 +3,7 @@ Engine.LoadLibrary("rmgen-common");
Engine.LoadLibrary("rmbiome");
Engine.LoadLibrary("heightmap");
function* GenerateMap(mapSettings)
export function* generateMap(mapSettings)
{
globalThis.g_Map = new RandomMap(0, "whiteness");
+26 -5
View File
@@ -33,6 +33,7 @@
#include "ps/TemplateLoader.h"
#include "scriptinterface/FunctionWrapper.h"
#include "scriptinterface/JSON.h"
#include "scriptinterface/ModuleLoader.h"
#include "scriptinterface/Object.h"
#include "scriptinterface/ScriptContext.h"
#include "scriptinterface/ScriptConversions.h"
@@ -46,7 +47,7 @@
namespace
{
constexpr const char* GENERATOR_NAME{"GenerateMap"};
constexpr const char* GENERATOR_NAME{"generateMap"};
bool MapGenerationInterruptCallback(JSContext* cx);
@@ -376,14 +377,34 @@ Script::StructuredClone RunMapGenerationScript(const StopToken stopToken, std::a
// Load RMS
LOGMESSAGE("Loading RMS '%s'", script.string8());
if (!scriptInterface.LoadGlobalScriptFile(script))
auto compileResult = scriptInterface.GetModuleLoader().LoadModule(rq, script);
scriptInterface.GetContext().RunJobs();
auto& future = *compileResult.begin();
if (!future.IsDone())
throw std::runtime_error{fmt::format("Loading module {:?} takes too long.", script.string8())};
JS::RootedObject nsAsObject{rq.cx, future.Get()};
{
LOGERROR("RunMapGenerationScript: Failed to load RMS '%s'", script.string8());
return nullptr;
bool hasGenerator;
if (!JS_HasProperty(rq.cx, nsAsObject, GENERATOR_NAME, &hasGenerator))
{
LOGERROR("RunMapGenerationScript: failed to search `%s` in the module-namespace.",
GENERATOR_NAME);
return nullptr;
}
if (!hasGenerator)
{
throw std::runtime_error{fmt::format(
"The map generation script {:?} didn't export a {:?}.", script.string8(),
GENERATOR_NAME)};
}
}
LOGMESSAGE("Run RMS generator");
JS::RootedValue map{rq.cx, ScriptFunction::RunGenerator(rq, global, GENERATOR_NAME, settingsVal,
JS::RootedValue ns{rq.cx, JS::ObjectValue(*nsAsObject)};
JS::RootedValue map{rq.cx, ScriptFunction::RunGenerator(rq, ns, GENERATOR_NAME, settingsVal,
[&](const JS::HandleValue value)
{
// When the task is started, `progress` is only mutated by this thread.
+2
View File
@@ -26,6 +26,8 @@
#include <atomic>
#include <string>
constexpr std::wstring_view RANDOM_MAP_PREFIX{L"maps/random/"};
/**
* Generate the map. This does take a long time.
*
+8 -2
View File
@@ -1359,11 +1359,17 @@ int CMapReader::StartMapGeneration(const CStrW& scriptFile)
{
PROFILE2("Map Generation");
const CStrW scriptPath{scriptFile.empty() ? L"" : L"maps/random/" + scriptFile};
const VfsPath scriptPath{scriptFile.empty() ? L"" :
static_cast<std::wstring>(RANDOM_MAP_PREFIX) + scriptFile};
const std::shared_ptr<ScriptContext> mapgenContext{ScriptContext::CreateContext(
MAP_GENERATION_CONTEXT_SIZE)};
ScriptInterface mapgenInterface{"Engine", "MapGenerator", mapgenContext};
ScriptInterface mapgenInterface{"Engine", "MapGenerator", mapgenContext,
[](const VfsPath& path){
// Only allow to load modules inside the maps folder.
return path.string().find(RANDOM_MAP_PREFIX) == 0;
}};
return RunMapGenerationScript(stopToken, progress, mapgenInterface, scriptPath, settings);
});
+5 -2
View File
@@ -1,4 +1,4 @@
/* Copyright (C) 2024 Wildfire Games.
/* Copyright (C) 2025 Wildfire Games.
* This file is part of 0 A.D.
*
* 0 A.D. is free software: you can redistribute it and/or modify
@@ -53,7 +53,10 @@ public:
for (const VfsPath& path : paths)
{
TestLogger logger;
ScriptInterface scriptInterface("Engine", "MapGenerator", g_ScriptContext);
ScriptInterface scriptInterface{"Engine", "MapGenerator", g_ScriptContext,
[](const VfsPath& path){
return path.string().find(RANDOM_MAP_PREFIX) == 0;
}};
ScriptTestSetup(scriptInterface);
std::atomic<int> progress{1};