Refactor grid loading and reorganize code

Move grid management functions out of polygons.lua, in a new file called gridmanager.lua
Explicitly call other files and grid management functions from init.lua
to make workflow more apparent
Move mapgen loop out of init.lua, into mapgen.lua
This commit is contained in:
Gael-de-Sailly
2022-01-25 19:09:24 +01:00
parent cd2a77803f
commit 6564d40b85
7 changed files with 465 additions and 373 deletions

View File

@ -46,8 +46,7 @@ local function margin(dem, width, elev)
end
end
local function pregenerate(keep_loaded)
local grid = mapgen_rivers.grid
function mapgen_rivers.pregenerate(grid)
local size = grid.size
if size.x * size.y > 4e6 then
@ -101,25 +100,14 @@ local function pregenerate(keep_loaded)
offset_y[i] = mmin(mmax(offset_y[i]*256, -128), 127)
end
mapgen_rivers.write_map('dem', model.dem, 2)
mapgen_rivers.write_map('lakes', model.lakes, 2)
mapgen_rivers.write_map('dirs', model.dirs, 1)
mapgen_rivers.write_map('rivers', model.rivers, 4)
mapgen_rivers.write_map('offset_x', offset_x, 1)
mapgen_rivers.write_map('offset_y', offset_y, 1)
local sfile = io.open(mapgen_rivers.world_data_path .. 'size', "w")
sfile:write(size.x..'\n'..size.y)
sfile:close()
grid.dem = model.dem
grid.lakes = model.lakes
grid.dirs = model.dirs
grid.rivers = model.rivers
grid.offset_x = offset_x
grid.offset_y = offset_y
if keep_loaded then
grid.dem = model.dem
grid.lakes = model.lakes
grid.dirs = model.dirs
grid.rivers = model.rivers
grid.offset_x = offset_x
grid.offset_y = offset_y
end
grid.load_method = "full"
grid.conv_applied = false
collectgarbage()
end
return pregenerate