#selectionbox_width = 2
# maximum percentage of current window to be used for hotbar
#hud_hotbar_max_width = 1.0
+# Save the map received by the client on disk
+#enable_local_map_saving = false
# Enable highlighting for nodes (disables selectionboxes)
#enable_node_highlighting = false
# Texture filtering settings
#include "config.h"
#include "version.h"
#include "drawscene.h"
+#include "subgame.h"
+#include "server.h"
+#include "database.h"
+#include "database-sqlite3.h"
extern gui::IGUIEnvironment* guienv;
m_env.addPlayer(player);
}
+
+ if (g_settings->getBool("enable_local_map_saving")) {
+ const std::string world_path = porting::path_user + DIR_DELIM + "worlds"
+ + DIR_DELIM + "server_" + g_settings->get("address")
+ + "_" + g_settings->get("remote_port");
+
+ SubgameSpec gamespec;
+ if (!getWorldExists(world_path)) {
+ gamespec = findSubgame(g_settings->get("default_game"));
+ if (!gamespec.isValid())
+ gamespec = findSubgame("minimal");
+ } else {
+ std::string world_gameid = getWorldGameId(world_path, false);
+ gamespec = findWorldSubgame(world_path);
+ }
+ if (!gamespec.isValid()) {
+ errorstream << "Couldn't find subgame for local map saving." << std::endl;
+ return;
+ }
+
+ localserver = new Server(world_path, gamespec, false, false);
+ localdb = new Database_SQLite3(&(ServerMap&)localserver->getMap(), world_path);
+ localdb->beginSave();
+ actionstream << "Local map saving started, map will be saved at '" << world_path << "'" << std::endl;
+ } else {
+ localdb = NULL;
+ }
}
void Client::Stop()
{
//request all client managed threads to stop
m_mesh_update_thread.Stop();
+ if (localdb != NULL) {
+ actionstream << "Local map saving ended" << std::endl;
+ localdb->endSave();
+ }
}
bool Client::isShutdown()
sector->insertBlock(block);
}
+ if (localdb != NULL) {
+ ((ServerMap&) localserver->getMap()).saveBlock(block, localdb);
+ }
+
/*
Add it to mesh update queue and set it to be acknowledged after update.
*/
settings->setDefault("desynchronize_mapblock_texture_animation", "true");
settings->setDefault("selectionbox_width","2");
settings->setDefault("hud_hotbar_max_width","1.0");
+ settings->setDefault("enable_local_map_saving", "false");
settings->setDefault("mip_map", "false");
settings->setDefault("anisotropic_filter", "false");