This commit is contained in:
proller committed 2025-10-13 23:44:40 +02:00
1 parent 367a7dae34
commit 38d9bb5882
7 files changed
+34 -31

No files matched your search

+3 -3
View File
@@ -642,7 +642,7 @@ MapBlock *EmergeThread::finishGen(v3s16 pos, BlockMakeData *bmdata,
m_map->finishBlockMake(bmdata, modified_blocks,
m_server->m_env->getGameTime());
MapBlock *block = m_map->getBlockNoCreateNoEx(pos, false, true);
MapBlockPtr block = m_map->getBlock(pos, false, true);
if (!block) {
errorstream << "EmergeThread::finishGen: Couldn't grab block we "
"just generated: " << pos << std::endl;
@@ -671,7 +671,7 @@ MapBlock *EmergeThread::finishGen(v3s16 pos, BlockMakeData *bmdata,
m_server->setAsyncFatalError(e);
}
EMERGE_DBG_OUT("ended up with: " << analyze_block(block));
EMERGE_DBG_OUT("ended up with: " << analyze_block(block.get()));
/*
Clear mapgen state
@@ -680,7 +680,7 @@ MapBlock *EmergeThread::finishGen(v3s16 pos, BlockMakeData *bmdata,
m_mapgen->gennotify.clearEvents();
// m_mapgen->vm = nullptr;
return block;
return block.get();
}
-1
View File
@@ -250,7 +250,6 @@ void WorldMerger::merge_one_block(MapDatabase *dbase, MapDatabase *dbase_up,
//++lights_used;
block_up->m_light_points.emplace(lp);
}
}
}
+21 -19
View File
@@ -65,16 +65,18 @@ height::height_t hgts::get(height_hgt::ll_t lat, height_hgt::ll_t lon)
const auto lat1 = height::lat_start(lat); // + 90 % 180;
const auto lon1 = height::lon_start(lon);
{
const auto &map1_lat1 = map1[lat1];
if (const auto it = map1_lat1.find(lon1); it != map1_lat1.end()) {
prev_layer_height = it->second->get(lat, lon);
if (map1[lat1].contains(lon1)) {
prev_layer_height = map1[lat1][lon1]->get(lat, lon);
if constexpr (layers) {
if (prev_layer_height) {
if constexpr (layers) {
if (prev_layer_height) {
return prev_layer_height;
}
} else {
return prev_layer_height;
}
} else {
return prev_layer_height;
}
}
@@ -90,8 +92,11 @@ height::height_t hgts::get(height_hgt::ll_t lat, height_hgt::ll_t lon)
//DUMP((long)this, "notfound, will load", lat, lon, lat1, lon1, lat90, lon90, map1[lat1].contains(lon1), prev_layer_height);
const auto lock = std::unique_lock(mutex);
if (map1[lat1].contains(lon1)) {
prev_layer_height = map1[lat1][lon1]->get(lat, lon);
const auto &map1_lat1 = map1[lat1];
if (const auto it = map1_lat1.find(lon1); it != map1_lat1.end()) {
prev_layer_height = it->second->get(lat, lon);
if constexpr (layers) {
if (prev_layer_height) {
return prev_layer_height;
@@ -123,15 +128,15 @@ height::height_t hgts::get(height_hgt::ll_t lat, height_hgt::ll_t lon)
};
if (lat <= 90 && lat >= -90 && lon <= 180 && lon >= -180) {
// DUMP("insert", (long)this, lat, lon, folder, map1.size(), map1[lat1].size());
if (!map1[lat1].contains(lon1)) {
// DUMP("insert", (long)this, lat, lon, folder, map1.size(), map1_lat1.size());
if (!map1_lat1.contains(lon1)) {
auto hgt = std::make_shared<height_hgt>(folder, lat, lon);
const int lat_dec = hgt->lat_start(lat);
const int lon_dec = hgt->lon_start(lon);
if (hgt->load(lat, lon)) {
map1[lat_dec][lon_dec] = std::move(hgt);
prev_layer_height = map1[lat_dec][lon_dec]->get(lat, lon);
DUMP("hgt ok", lat, lon, lat_dec, lon_dec, prev_layer_height);
//DUMP("hgt ok", lat, lon, lat_dec, lon_dec, prev_layer_height);
if constexpr (layers) {
if (prev_layer_height) {
@@ -181,7 +186,7 @@ height::height_t hgts::get(height_hgt::ll_t lat, height_hgt::ll_t lon)
}
}
if (!map90[lat90].contains(lon90)) {
place_dummy90(lat90, lon90);
return place_dummy90(lat90, lon90);
}
return map90[lat90][lon90]->get(lat, lon);
}
@@ -259,8 +264,7 @@ bool height_hgt::load(ll_t lat, ll_t lon)
//DUMP(lat_dec, lon_dec);
return false;
}
DUMP((long long)this, lat_dec, lon_dec, lat_loading, lon_loading, lat_loaded,
lon_loaded);
//DUMP((long long)this, lat_dec, lon_dec, lat_loading, lon_loading, lat_loaded, lon_loaded);
TimeTaker timer("hgt load");
lat_loading = lat_dec;
@@ -459,9 +463,7 @@ bool height_hgt::load(ll_t lat, ll_t lon)
}
lat_loaded = lat_dec;
lon_loaded = lon_dec;
DUMP("loadok", (long long)this, heights.size(), lat_loaded, lon_loaded, filesize,
zipname, filename, seconds_per_px_x, get(lat_dec, lon_dec), heights[0],
heights.back(), heights[side_length_x]);
//DUMP("loadok", (long long)this, heights.size(), lat_loaded, lon_loaded, filesize, zipname, filename, seconds_per_px_x, get(lat_dec, lon_dec), heights[0], heights.back(), heights[side_length_x]);
return true;
}
@@ -968,7 +970,7 @@ height::height_t height::get(ll_t lat, ll_t lon)
//lat_seconds, lon_seconds,
seconds_per_px_x, seconds_per_px_y, lat, lon, lat_loaded, lon_loaded,
(lat - lat_loaded), pixel_per_deg_x, (lon - lon_loaded), pixel_per_deg_y);
//return height[2]; // debug not interpolated
//return height[2]; // debug not interpolated
#endif
// ratio where X lays
+2 -2
View File
@@ -70,7 +70,7 @@ size_t multi_http_to_file(const std::string &name, const std::vector<std::string
http_failed.insert(name);
warningstream
infostream
<< "Not found " << name << "\n"
<< "try to download manually: \n"
<< "curl -o " << path << " "
@@ -102,7 +102,7 @@ size_t multi_http_to_file(const std::vector<std::string> &links, const std::stri
http_failed.emplace(path);
warningstream
infostream
<< "Not found " << path << "\n"
<< "try to download manually: \n"
<< "curl -o " << path << " "
+4 -4
View File
@@ -244,8 +244,6 @@ class hdl : public handler_i
const std::string path_name;
MyHandler handler;
public:
hdl(MapgenEarth *mg, const std::string &path_name) : path_name{path_name} {}
@@ -275,10 +273,12 @@ public:
}
arnis::init(mg);
MyHandler handler;
handler.mg = mg;
osmium::apply(reader, cache, handler,
mp_manager.handler([&handler = this->handler](
const osmium::memory::Buffer &area_buffer) {
mp_manager.handler([&handler](const osmium::memory::Buffer &area_buffer) {
osmium::apply(area_buffer, handler);
}));
}
+2 -1
View File
@@ -321,7 +321,8 @@ void ServerMap::finishBlockMake(BlockMakeData *data,
}
for (auto &changed_block : *changed_blocks) {
MapBlock *block = changed_block.second;
const auto block = getBlock(changed_block.first); // very bad, changed_block should contain MapBlockPtr
//MapBlock *block = changed_block.second;
if (!block)
continue;
/*
+2 -1
View File
@@ -83,7 +83,8 @@ $0 ----world_sand
$0 -mg_name=earth -mg_earth='{"center":{"z":36.822183, "y":0, "x":30.583390}}' bot
#$0 -mg_name=earth -mg_earth='{"scale":{"z":10000, "y":0.01, "x":10000}}' bot
$0 -mg_name=earth -mg_earth='{"scale":{"z":10000, "y":100, "x":10000}}' bot
$0 -mg_name=earth -mg_earth='{"center":{"z":27.9878279,"y":0,"x":86.923833}}' -static_spawnpoint='(130,8842,56)' bot # everest
$0 -mg_name=earth -mg_earth='{"center":{"z":27.9878279,"y":0,"x":86.923833}}' -static_spawnpoint='(130,8842,56)' bot # Everest
$0 -mg_name=earth -mg_earth='{"center":{"z":22.28422,"x":114.15996,"y":0} }' bot # HongKong
$0 ---cmake_minetest=1 ---build_name=_minetest ----headless ----headless_optimize --address=cool.server.org --port=30001 ---clients_num=25 clients