From f2ef003610cb4e38b37d5f4325901c88e4ed6aa3 Mon Sep 17 00:00:00 2001 From: Segey Lapin Date: Tue, 26 Oct 2021 22:13:04 +0300 Subject: [PATCH] Better road processing; flatter ground for towns --- Makefile | 5 +++-- modules/world/characters.cpp | 2 ++ modules/world/register_types.cpp | 3 +++ modules/world/road_grid.h | 3 --- modules/world/roads.cpp | 4 ++-- 5 files changed, 10 insertions(+), 7 deletions(-) diff --git a/Makefile b/Makefile index 6763061..83bfe84 100644 --- a/Makefile +++ b/Makefile @@ -2,7 +2,8 @@ all: godot-editor-main godot-editor-main: cd godot; \ - scons platform=x11 target=release_debug tools=yes custom_modules=../modules -j6; \ - scons platform=x11 target=release tools=no custom_modules=../modules -j6 + scons platform=x11 target=release_debug tools=yes custom_modules=../modules -j6 +# scons platform=x11 target=release tools=no custom_modules=../modules -j6; +# scons platform=server target=release_debug tools=yes custom_modules=../modules -j6 # scons platform=windows target=release tools=yes custom_modules=../modules -j6 # scons platform=javascript target=release tools=yes custom_modules=../modules -j6 diff --git a/modules/world/characters.cpp b/modules/world/characters.cpp index 582051d..2c6eb76 100644 --- a/modules/world/characters.cpp +++ b/modules/world/characters.cpp @@ -886,6 +886,8 @@ void Characters_::load_body_parts(const String &path) if (FileAccess::exists(fn2f)) female_faces.push_back(fn2f); } + for (i = 0; i < male_hairs.size(); i++) + printf("hair %d: %ls\n", i, male_hairs[i].c_str()); assert(male_hairs.size() > 0 && female_hairs.size() > 0); assert(male_faces.size() > 0 && female_faces.size() > 0); assert(hair_materials.size() > 0); diff --git a/modules/world/register_types.cpp b/modules/world/register_types.cpp index 4cecb7a..10f4bc9 100644 --- a/modules/world/register_types.cpp +++ b/modules/world/register_types.cpp @@ -10,6 +10,7 @@ #include "world_height_map.h" #include "road_grid.h" #include "roads.h" +#include "spawner.h" void register_world_types() { @@ -19,6 +20,8 @@ void register_world_types() Engine::get_singleton()->add_singleton(Engine::Singleton("WorldMapData", WorldMapData::get_singleton())); RoadsData::create_singleton(); Engine::get_singleton()->add_singleton(Engine::Singleton("RoadsData", RoadsData::get_singleton())); + Spawner::create_singleton(); + Engine::get_singleton()->add_singleton(Engine::Singleton("Spawner", Spawner::get_singleton())); ClassDB::register_class(); ClassDB::register_class(); ClassDB::register_class(); diff --git a/modules/world/road_grid.h b/modules/world/road_grid.h index 69fa5a9..5d3f320 100644 --- a/modules/world/road_grid.h +++ b/modules/world/road_grid.h @@ -209,10 +209,7 @@ protected: } inline void insert_hedge_to_grid_cell(int x, int y, struct half_edge *hedge) { - static int count = 0; - count++; set(x, y, hedge); - printf("count: %d\n", count); } }; class hg hedge_grid; diff --git a/modules/world/roads.cpp b/modules/world/roads.cpp index 1d2e27c..b6934e5 100644 --- a/modules/world/roads.cpp +++ b/modules/world/roads.cpp @@ -226,7 +226,7 @@ Array Roads::curve_mesh(const PoolVector &points, Vector3 base = verts[k]; float point = t + 2.0 + base.z; float right = verts[k].x + tx; - if (t <= l - 2.0) { + if (t < l - 2.0) { offt1 = curve3->interpolate_baked(point, true); offt2 = curve3->interpolate_baked(point + 2.0, true); assert(offt1.distance_squared_to(offt2) > 0.0f); @@ -606,7 +606,7 @@ float RoadsData::get_sdf(int x, int y, int z) int site = rg->get_site_from_point(x, z); // printf("in site %d %d %d\n", site, rg->site_is_town(site), rg->site_is_farm(site)); if (site >= 0 && (rg->site_is_town(site) || rg->site_is_farm(site))) { - ret = y - rg->get_site_avg_height(site) - CLAMP(n * 0.1f, -0.5f, 0.5f); + ret = y - rg->get_site_avg_height(site) - CLAMP(n * 0.1f, -0.05f, 0.05f); goto out; } }