Position should be strictly beyond river threshold to be a river

Prevents some wrongly placed water pixels.
This commit is contained in:
Gael-de-Sailly 2020-04-14 21:54:05 +02:00
parent 55725ad94b
commit 9700e948b9

View File

@ -47,20 +47,20 @@ local function generate(minp, maxp, seed)
local is_river = false local is_river = false
local depth_factor = 0 local depth_factor = 0
local r_west, r_north, r_east, r_south = unpack(poly.rivers) local r_west, r_north, r_east, r_south = unpack(poly.rivers)
if xf >= r_east then if xf > r_east then
is_river = true is_river = true
depth_factor = xf-r_east depth_factor = xf-r_east
xf = 1 xf = 1
elseif xf <= r_west then elseif xf < r_west then
is_river = true is_river = true
depth_factor = r_west-xf depth_factor = r_west-xf
xf = 0 xf = 0
end end
if zf >= r_south then if zf > r_south then
is_river = true is_river = true
depth_factor = zf-r_south depth_factor = zf-r_south
zf = 1 zf = 1
elseif zf <= r_north then elseif zf < r_north then
is_river = true is_river = true
depth_factor = r_north-zf depth_factor = r_north-zf
zf = 0 zf = 0
@ -68,19 +68,19 @@ local function generate(minp, maxp, seed)
if not is_river then if not is_river then
local c_NW, c_NE, c_SE, c_SW = unpack(poly.river_corners) local c_NW, c_NE, c_SE, c_SW = unpack(poly.river_corners)
if xf+zf <= c_NW then if xf+zf < c_NW then
is_river = true is_river = true
depth_factor = c_NW-xf-zf depth_factor = c_NW-xf-zf
xf, zf = 0, 0 xf, zf = 0, 0
elseif 1-xf+zf <= c_NE then elseif 1-xf+zf < c_NE then
is_river = true is_river = true
depth_factor = c_NE-1+xf-zf depth_factor = c_NE-1+xf-zf
xf, zf = 1, 0 xf, zf = 1, 0
elseif 2-xf-zf <= c_SE then elseif 2-xf-zf < c_SE then
is_river = true is_river = true
depth_factor = c_SE-2+xf+zf depth_factor = c_SE-2+xf+zf
xf, zf = 1, 1 xf, zf = 1, 1
elseif xf+1-zf <= c_SW then elseif xf+1-zf < c_SW then
is_river = true is_river = true
depth_factor = c_SW-xf-1+zf depth_factor = c_SW-xf-1+zf
xf, zf = 0, 1 xf, zf = 0, 1