Наработка позволяет поднимать рельеф из карты высот (массива). В качестве примера выбран шум Перлина. Вы можете использовать свою функцию генерации для создания подходящего рельефа.
call HeightMap.build(real x_offset, real y_offset, Real2D map)
Code
library LibHeightMap requires LibReal2D
struct HeightMap
private static location L = Location(0,0)
private static real Size = 128.
static real max = 450//1200.
static real min = -450//-700
static method build takes real dx, real dy, Real2D map returns nothing
integer opt = 0
real height = -max
integer x = map.length
TriggerSleepAction(0.)
loop
exitwhen x < 0
integer y = map.width
loop
exitwhen y < 0
real rx = dx+x*Size
real ry = dy+y*Size
MoveLocation(L, rx, ry)
real h = GetLocationZ(L)
TerrainDeformCrater(rx, ry, Size, -min+height*map.getr(x,y)+h, 1, true)
opt++
if opt >= 2500
TriggerSleepAction(0.)
opt = 0
endif
y--
endloop
x--
endloop
endmethod
endstruct
endlibrary
Для установки скопируйте папку HeightMap к себе в карту.