mirror of
https://github.com/bdnugget/freeminer.git
synced 2026-11-07 06:57:27 +00:00
earth
This commit is contained in:
1 parent
367a7dae34
commit
38d9bb5882
7 files changed
+34
-31
No files matched your search
+3
-3
@@ -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();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -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
@@ -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
|
||||
|
||||
@@ -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 << " "
|
||||
|
||||
@@ -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
@@ -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;
|
||||
/*
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
Reference in new issue
Block a user