Update (nature, engine changes)

This commit is contained in:
Segey Lapin
2021-11-22 01:09:02 +03:00
parent 8bb1c26ecd
commit 8a3b4987e8
94 changed files with 6919 additions and 51 deletions

View File

@@ -80,6 +80,8 @@ func setup_town(site):
center += p
center /= poly.size()
center.y = height
var infl = RoadsData.get_influence_cached(center.x, center.y, 256)
center.y = infl.y
var radial_points = RoadsData.get_site_radial_points(site, 32.0, 64.0)
var max_r = 0.0
for p in range(radial_points.size()):
@@ -89,18 +91,26 @@ func setup_town(site):
max_r = dst
for p in range(radial_points.size()):
var ep = radial_points[p]
var miff = RoadsData.get_influence_cached(ep.x, ep.z, 256.0)
ep.y = center.y
var d = (center - ep).normalized()
assert(d.length_squared() > 0)
var dst = ep.distance_to(center)
print(dst)
if dst < 64.0 + 12 + 8 + 4:
continue
var step = 16.0
var pstart = ep
var step = 32.0
var pstart = ep + d * 32.0
dst -= 32.0
while dst > 0.0:
var ok = true
if !Geometry.is_point_in_polygon(Vector2(pstart.x, pstart.z), poly2):
miff = RoadsData.get_influence_cached(pstart.x, pstart.z, 256.0)
if miff.x > 0.0:
ok = false
if ok:
pstart.y = miff.y
if !Geometry.is_point_in_polygon(Vector2(pstart.x, pstart.z), poly2):
ok = false
if ok:
for b in aabbs:
if b.has_point(pstart):
@@ -133,7 +143,9 @@ func setup_first_town():
center += p
center /= poly.size()
center.y = height
# grid.build(border2, center)
var infl = RoadsData.get_influence_cached(center.x, center.z, 256)
center.y = infl.y
print("first town center: ", center)
var radial_points = RoadsData.get_site_radial_points(0, 32.0, 64.0)
var max_r = 0.0
for p in range(radial_points.size()):
@@ -161,18 +173,26 @@ func setup_first_town():
for p in range(radial_points.size()):
var ep = radial_points[p]
var miff = RoadsData.get_influence_cached(ep.x, ep.z, 256.0)
ep.y = center.y
var d = (center - ep).normalized()
assert(d.length_squared() > 0)
var dst = ep.distance_to(center)
print(dst)
if dst < 64.0 + 12 + 8 + 4:
continue
var step = 16.0
var pstart = ep
var step = 32.0
var pstart = ep + d * 32.0
dst -= 32.0
while dst > 0.0:
var ok = true
if !Geometry.is_point_in_polygon(Vector2(pstart.x, pstart.z), poly2):
miff = RoadsData.get_influence_cached(pstart.x, pstart.z, 256.0)
if miff.x > 0.0:
ok = false
if ok:
pstart.y = miff.y
if !Geometry.is_point_in_polygon(Vector2(pstart.x, pstart.z), poly2):
ok = false
if ok:
for b in aabbs:
if b.has_point(pstart):