mirror of
https://gitlab.com/gaelysam/mapgen_rivers.git
synced 2024-11-16 07:40:20 +01:00
Draw outer corners of river turns.
This commit is contained in:
parent
b5db63d267
commit
da98a538bb
36
init.lua
36
init.lua
|
@ -187,6 +187,25 @@ local function generate(minp, maxp, seed)
|
||||||
river_south = mean
|
river_south = mean
|
||||||
end
|
end
|
||||||
polygon.rivers = {river_west, river_north, river_east, river_south}
|
polygon.rivers = {river_west, river_north, river_east, river_south}
|
||||||
|
|
||||||
|
local around = {0,0,0,0,0,0,0,0}
|
||||||
|
if zp > 0 then
|
||||||
|
around[1] = river_width(bounds_z[iA-X])
|
||||||
|
around[2] = river_width(bounds_z[iB-X])
|
||||||
|
end
|
||||||
|
if xp < X-2 then
|
||||||
|
around[3] = river_width(bounds_x[iB-zp])
|
||||||
|
around[4] = river_width(bounds_x[iC-zp-1])
|
||||||
|
end
|
||||||
|
if zp < Z-2 then
|
||||||
|
around[5] = river_width(bounds_z[iC])
|
||||||
|
around[6] = river_width(bounds_z[iD])
|
||||||
|
end
|
||||||
|
if xp > 0 then
|
||||||
|
around[7] = river_width(bounds_x[iD-zp-2])
|
||||||
|
around[8] = river_width(bounds_x[iA-zp-1])
|
||||||
|
end
|
||||||
|
polygon.river_corners = {math.max(around[8], around[1]), math.max(around[2], around[3]), math.max(around[4], around[5]), math.max(around[6], around[7])}
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -215,6 +234,23 @@ local function generate(minp, maxp, seed)
|
||||||
zf = 0
|
zf = 0
|
||||||
end
|
end
|
||||||
|
|
||||||
|
if not is_river then
|
||||||
|
local c_NW, c_NE, c_SE, c_SW = unpack(poly.river_corners)
|
||||||
|
if xf+zf <= c_NW then
|
||||||
|
is_river = true
|
||||||
|
xf, zf = 0, 0
|
||||||
|
elseif 1-xf+zf <= c_NE then
|
||||||
|
is_river = true
|
||||||
|
xf, zf = 1, 0
|
||||||
|
elseif 2-xf-zf <= c_SE then
|
||||||
|
is_river = true
|
||||||
|
xf, zf = 1, 1
|
||||||
|
elseif xf+1-zf <= c_SW then
|
||||||
|
is_river = true
|
||||||
|
xf, zf = 0, 1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
if not is_river then
|
if not is_river then
|
||||||
xf = (xf-r_west) / (r_east-r_west)
|
xf = (xf-r_west) / (r_east-r_west)
|
||||||
zf = (zf-r_north) / (r_south-r_north)
|
zf = (zf-r_north) / (r_south-r_north)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user