forked from 0ad/0ad
86 lines
2.0 KiB
JavaScript
86 lines
2.0 KiB
JavaScript
var TILE_CENTERED_HEIGHT_MAP = false;
|
|
var WATER_LEVEL_CHANGED = false;
|
|
|
|
var g_Map;
|
|
|
|
var g_Environment = {
|
|
SkySet: "default",
|
|
SunColour: {r: 0.749020, g: 0.749020, b: 0.749020, a: 0},
|
|
SunElevation: 0.785398,
|
|
SunRotation: 5.49779,
|
|
TerrainAmbientColour: {r: 0.501961, g: 0.501961, b: 0.501961, a: 0},
|
|
UnitsAmbientColour: {r: 0.501961, g: 0.501961, b: 0.501961, a: 0},
|
|
Water: {
|
|
WaterBody: {
|
|
Type: "default",
|
|
Colour: {r: 0.3, g: 0.35, b: 0.7, a: 0},
|
|
Height: 5,
|
|
Shininess: 150,
|
|
Waviness: 8,
|
|
Murkiness: 0.45,
|
|
Tint: {r: 0.28, g: 0.3, b: 0.59, a: 0},
|
|
ReflectionTint: {r: 0.28, g: 0.3, b: 0.59, a: 0},
|
|
ReflectionTintStrength: 0.0
|
|
}
|
|
}
|
|
};
|
|
|
|
var g_Camera = {
|
|
Position: {x: 100, y: 150, z: -100},
|
|
Rotation: 0,
|
|
Declination: 0.523599
|
|
};
|
|
|
|
var g_CivData = {};
|
|
|
|
/////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
function InitMap()
|
|
{
|
|
if (g_MapSettings === undefined)
|
|
{
|
|
// Should never get this far, failed settings would abort prior to loading scripts
|
|
throw("InitMapGen: settings missing");
|
|
}
|
|
|
|
// Get civ data as array of JSON strings
|
|
var data = RMS.GetCivData();
|
|
if (!data || !data.length)
|
|
{
|
|
throw("InitMapGen: error reading civ data");
|
|
}
|
|
for (var i = 0; i < data.length; ++i)
|
|
{
|
|
var civData = JSON.parse(data[i]);
|
|
g_CivData[civData.Code] = civData;
|
|
}
|
|
|
|
// Create new map
|
|
log("Creating new map...");
|
|
var terrain = createTerrain(g_MapSettings.BaseTerrain);
|
|
|
|
g_Map = new Map(g_MapSettings.Size, g_MapSettings.BaseHeight);
|
|
g_Map.initTerrain(terrain);
|
|
}
|
|
|
|
function ExportMap()
|
|
{ // Wrapper for engine function
|
|
log("Saving map...");
|
|
|
|
// Get necessary data from map
|
|
var data = g_Map.getMapData();
|
|
|
|
// Add environment and camera settings
|
|
if (!WATER_LEVEL_CHANGED)
|
|
{
|
|
g_Environment.Water.WaterBody.Height = SEA_LEVEL - 0.1;
|
|
}
|
|
data.Environment = g_Environment;
|
|
|
|
// Adjust default cam to roughly center of the map - useful for Atlas
|
|
g_Camera.Position = {x: g_MapSettings.Size*2, y: g_MapSettings.Size*2, z: -g_MapSettings.Size*2};
|
|
data.Camera = g_Camera;
|
|
|
|
RMS.ExportMap(data);
|
|
}
|