Better road processing; flatter ground for towns
This commit is contained in:
5
Makefile
5
Makefile
@@ -2,7 +2,8 @@
|
|||||||
all: godot-editor-main
|
all: godot-editor-main
|
||||||
godot-editor-main:
|
godot-editor-main:
|
||||||
cd godot; \
|
cd godot; \
|
||||||
scons platform=x11 target=release_debug tools=yes 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=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=windows target=release tools=yes custom_modules=../modules -j6
|
||||||
# scons platform=javascript target=release tools=yes custom_modules=../modules -j6
|
# scons platform=javascript target=release tools=yes custom_modules=../modules -j6
|
||||||
|
|||||||
@@ -886,6 +886,8 @@ void Characters_::load_body_parts(const String &path)
|
|||||||
if (FileAccess::exists(fn2f))
|
if (FileAccess::exists(fn2f))
|
||||||
female_faces.push_back(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_hairs.size() > 0 && female_hairs.size() > 0);
|
||||||
assert(male_faces.size() > 0 && female_faces.size() > 0);
|
assert(male_faces.size() > 0 && female_faces.size() > 0);
|
||||||
assert(hair_materials.size() > 0);
|
assert(hair_materials.size() > 0);
|
||||||
|
|||||||
@@ -10,6 +10,7 @@
|
|||||||
#include "world_height_map.h"
|
#include "world_height_map.h"
|
||||||
#include "road_grid.h"
|
#include "road_grid.h"
|
||||||
#include "roads.h"
|
#include "roads.h"
|
||||||
|
#include "spawner.h"
|
||||||
|
|
||||||
void register_world_types()
|
void register_world_types()
|
||||||
{
|
{
|
||||||
@@ -19,6 +20,8 @@ void register_world_types()
|
|||||||
Engine::get_singleton()->add_singleton(Engine::Singleton("WorldMapData", WorldMapData::get_singleton()));
|
Engine::get_singleton()->add_singleton(Engine::Singleton("WorldMapData", WorldMapData::get_singleton()));
|
||||||
RoadsData::create_singleton();
|
RoadsData::create_singleton();
|
||||||
Engine::get_singleton()->add_singleton(Engine::Singleton("RoadsData", RoadsData::get_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<WorldGenerator>();
|
ClassDB::register_class<WorldGenerator>();
|
||||||
ClassDB::register_class<WorldHeightMap>();
|
ClassDB::register_class<WorldHeightMap>();
|
||||||
ClassDB::register_class<DensityMap>();
|
ClassDB::register_class<DensityMap>();
|
||||||
|
|||||||
@@ -209,10 +209,7 @@ protected:
|
|||||||
}
|
}
|
||||||
inline void insert_hedge_to_grid_cell(int x, int y, struct half_edge *hedge)
|
inline void insert_hedge_to_grid_cell(int x, int y, struct half_edge *hedge)
|
||||||
{
|
{
|
||||||
static int count = 0;
|
|
||||||
count++;
|
|
||||||
set(x, y, hedge);
|
set(x, y, hedge);
|
||||||
printf("count: %d\n", count);
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
class hg hedge_grid;
|
class hg hedge_grid;
|
||||||
|
|||||||
@@ -226,7 +226,7 @@ Array Roads::curve_mesh(const PoolVector<Vector3> &points,
|
|||||||
Vector3 base = verts[k];
|
Vector3 base = verts[k];
|
||||||
float point = t + 2.0 + base.z;
|
float point = t + 2.0 + base.z;
|
||||||
float right = verts[k].x + tx;
|
float right = verts[k].x + tx;
|
||||||
if (t <= l - 2.0) {
|
if (t < l - 2.0) {
|
||||||
offt1 = curve3->interpolate_baked(point, true);
|
offt1 = curve3->interpolate_baked(point, true);
|
||||||
offt2 = curve3->interpolate_baked(point + 2.0, true);
|
offt2 = curve3->interpolate_baked(point + 2.0, true);
|
||||||
assert(offt1.distance_squared_to(offt2) > 0.0f);
|
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);
|
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));
|
// 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))) {
|
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;
|
goto out;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user