#include <map.h>
Static Public Member Functions | |
static MapDatabase * | createDatabase (const std::string &name, const std::string &savedir, Settings &conf) |
static bool | saveBlock (MapBlock *block, MapDatabase *db, int compression_level=-1) |
Public Attributes | |
MapSettingsManager | settings_mgr |
Private Attributes | |
EmergeManager * | m_emerge |
std::string | m_savedir |
bool | m_map_saving_enabled |
int | m_map_compression_level |
std::set< v3s16 > | m_chunks_in_progress |
bool | m_map_metadata_changed = true |
MapDatabase * | dbase = nullptr |
MapDatabase * | dbase_ro = nullptr |
MetricCounterPtr | m_save_time_counter |
Additional Inherited Members | |
Protected Member Functions inherited from Map | |
bool | determineAdditionalOcclusionCheck (const v3s16 &pos_camera, const core::aabbox3d< s16 > &block_bounds, v3s16 &check) |
bool | isOccluded (const v3s16 &pos_camera, const v3s16 &pos_target, float step, float stepfac, float start_offset, float end_offset, u32 needed_count) |
Protected Attributes inherited from Map | |
IGameDef * | m_gamedef |
std::set< MapEventReceiver * > | m_event_receivers |
std::map< v2s16, MapSector * > | m_sectors |
MapSector * | m_sector_cache = nullptr |
v2s16 | m_sector_cache_p |
UniqueQueue< v3s16 > | m_transforming_liquid |
const NodeDefManager * | m_nodedef |
ServerMap::ServerMap | ( | const std::string & | savedir, |
IGameDef * | gamedef, | ||
EmergeManager * | emerge, | ||
MetricsBackend * | mb | ||
) |
References MetricsBackend::addCounter(), createDatabase(), dbase, dbase_ro, DIR_DELIM, errorstream, Settings::exists(), FUNCTION_NAME, g_settings, Settings::get(), fs::GetDirListing(), Settings::getS16(), infostream, MapSettingsManager::loadMapMeta(), m_map_compression_level, m_map_saving_enabled, m_save_time_counter, m_savedir, EmergeManager::map_settings_mgr, fs::PathExists(), rangelim, Settings::readConfigFile(), Settings::set(), settings_mgr, Settings::updateConfigFile(), verbosestream, and warningstream.
ServerMap::~ServerMap | ( | ) |
References dbase, dbase_ro, FUNCTION_NAME, infostream, m_map_saving_enabled, m_savedir, MOD_STATE_WRITE_AT_UNLOAD, save(), and verbosestream.
|
virtual |
Reimplemented from Map.
References Database::beginSave(), and dbase.
Referenced by save().
bool ServerMap::blockpos_over_mapgen_limit | ( | v3s16 | p | ) |
References getMapgenParams(), MAP_BLOCKSIZE, MAX_MAP_GENERATION_LIMIT, p(), and rangelim.
Referenced by initBlockMake().
References blockpos_over_max_limit(), MapSector::createBlankBlock(), createSector(), MapSector::getBlockNoCreateNoEx(), infostream, MapBlock::isDummy(), p(), and MapBlock::unDummify().
Referenced by initBlockMake(), and MMVManip::initialEmerge().
|
static |
References Settings::getNoEx().
Referenced by ServerMap(), and migrate_map_database().
References Map::getSectorNoGenerate(), Map::m_gamedef, Map::m_sectors, MAP_BLOCKSIZE, and MAX_MAP_GENERATION_LIMIT.
Referenced by createBlock(), emergeBlock(), initBlockMake(), and loadBlock().
|
virtual |
Reimplemented from Map.
References dbase, MapDatabase::deleteBlock(), MapSector::deleteBlock(), Map::getBlockNoCreateNoEx(), and Map::getSectorNoGenerate().
Referenced by ModApiEnvMod::l_delete_area().
Reimplemented from Map.
References MapSector::createBlankBlock(), createSector(), Map::getBlockNoCreateNoEx(), MapBlock::isDummy(), loadBlock(), and p().
Referenced by ServerEnvironment::addActiveObjectRaw(), ServerEnvironment::clearObjects(), ServerEnvironment::deactivateFarObjects(), ServerEnvironment::deleteStaticFromBlock(), Server::findSpawnPos(), ServerEnvironment::findSunlight(), initBlockMake(), MMVManip::initialEmerge(), voxalgo::is_sunlight_above_block(), ServerEnvironment::removeRemovedObjects(), repairBlockLight(), and ServerEnvironment::saveStaticToBlock().
|
virtual |
Reimplemented from Map.
References dbase, and Database::endSave().
Referenced by save().
void ServerMap::finishBlockMake | ( | BlockMakeData * | data, |
std::map< v3s16, MapBlock * > * | changed_blocks | ||
) |
References MMVManip::blitBackAll(), BlockMakeData::blockpos_max, BlockMakeData::blockpos_min, EMERGE_DBG_OUT, EmergeManager::enable_mapgen_debug_info, MapBlock::expireDayNightDiff(), UniqueQueue< Value >::front(), Map::getBlockNoCreateNoEx(), m_chunks_in_progress, m_emerge, Map::m_transforming_liquid, MOD_REASON_EXPIRE_DAYNIGHTDIFF, MOD_STATE_WRITE_NEEDED, UniqueQueue< Value >::pop_front(), PP, UniqueQueue< Value >::push_back(), MapBlock::raiseModified(), MapBlock::setGenerated(), UniqueQueue< Value >::size(), BlockMakeData::transforming_liquid, and BlockMakeData::vmanip.
Referenced by EmergeThread::finishGen().
References EmergeManager::enqueueBlockEmerge(), Map::getBlockNoCreateNoEx(), m_emerge, and PEER_ID_INEXISTENT.
Referenced by ServerEnvironment::step().
MapgenParams * ServerMap::getMapgenParams | ( | ) |
References MapSettingsManager::mapgen_params, and settings_mgr.
Referenced by blockpos_over_mapgen_limit(), Server::findSpawnPos(), getSeed(), Server::init(), and initBlockMake().
u64 ServerMap::getSeed | ( | ) |
References getMapgenParams(), and MapgenParams::seed.
Referenced by Server::acceptAuth(), and initBlockMake().
bool ServerMap::initBlockMake | ( | v3s16 | blockpos, |
BlockMakeData * | data | ||
) |
References BlockMakeData::blockpos_max, BlockMakeData::blockpos_min, blockpos_over_mapgen_limit(), MapgenParams::chunksize, createBlock(), createSector(), EMERGE_DBG_OUT, emergeBlock(), EmergeManager::enable_mapgen_debug_info, FATAL_ERROR_IF, EmergeManager::getContainingChunk(), getMapgenParams(), getSeed(), MMVManip::initialEmerge(), EmergeManager::isBlockUnderground(), m_chunks_in_progress, m_emerge, Map::m_nodedef, BlockMakeData::nodedef, p(), PP, BlockMakeData::seed, MapBlock::setIsUnderground(), and BlockMakeData::vmanip.
Referenced by EmergeThread::getBlockOrStartGen().
|
inline |
References m_map_saving_enabled.
void ServerMap::listAllLoadableBlocks | ( | std::vector< v3s16 > & | dst | ) |
References dbase, dbase_ro, and MapDatabase::listAllLoadableBlocks().
Referenced by ServerEnvironment::clearObjects().
void ServerMap::listAllLoadedBlocks | ( | std::vector< v3s16 > & | dst | ) |
References MapSector::getBlocks(), Map::m_sectors, and p().
Referenced by ServerEnvironment::clearObjects().
void ServerMap::loadBlock | ( | std::string * | blob, |
v3s16 | p3d, | ||
MapSector * | sector, | ||
bool | save_after_load = false |
||
) |
References MapSector::createBlankBlockNoInsert(), MapBlock::deSerialize(), errorstream, g_settings, MapSector::getBlockNoCreateNoEx(), Settings::getBool(), MapSector::insertBlock(), m_emerge, Map::m_transforming_liquid, EmergeManager::ndef, MapBlock::resetModified(), saveBlock(), ReflowScan::scan(), SER_FMT_VER_INVALID, and BaseException::what().
References createSector(), dbase, dbase_ro, Map::dispatchEvent(), Map::getBlockNoCreateNoEx(), MapDatabase::loadBlock(), MEET_OTHER, MapEditEvent::type, and voxalgo::update_block_border_lighting().
Referenced by emergeBlock(), and EmergeThread::getBlockOrStartGen().
|
inlinevirtual |
Reimplemented from Map.
References MAPTYPE_SERVER.
|
virtual |
bool ServerMap::repairBlockLight | ( | v3s16 | blockpos, |
std::map< v3s16, MapBlock * > * | modified_blocks | ||
) |
Fixes lighting in one map block. May modify other blocks as well, as light can spread out of the specified block. Returns false if the block is not generated (so nothing changed), true otherwise.
References emergeBlock(), MapBlock::isGenerated(), and voxalgo::repair_block_light().
Referenced by ModApiEnvMod::l_fix_light().
|
virtual |
Reimplemented from Map.
References Profiler::add(), beginSave(), endSave(), MapSector::getBlocks(), porting::getTimeNs(), infostream, m_map_metadata_changed, m_map_saving_enabled, m_save_time_counter, Map::m_sectors, MOD_STATE_CLEAN, Profiler::print(), PrintInfo(), saveBlock(), MapSettingsManager::saveMapMeta(), settings_mgr, and warningstream.
Referenced by ~ServerMap().
|
virtual |
Reimplemented from Map.
References dbase, and m_map_compression_level.
Referenced by Client::handleCommand_BlockData(), loadBlock(), and save().
|
static |
References MapBlock::getPos(), MapBlock::isDummy(), PP, MapBlock::resetModified(), MapDatabase::saveBlock(), SER_FMT_VER_HIGHEST_WRITE, MapBlock::serialize(), and warningstream.
void ServerMap::updateVManip | ( | v3s16 | pos | ) |
References VoxelArea::contains(), EmergeManager::getCurrentMapgen(), Map::getNode(), idx, VoxelArea::index(), VoxelManipulator::m_area, VoxelManipulator::m_data, m_emerge, VoxelManipulator::m_flags, MMVManip::m_is_dirty, Mapgen::vm, and VOXELFLAG_NO_DATA.
Referenced by ServerEnvironment::removeNode(), ServerEnvironment::setNode(), and ServerEnvironment::swapNode().
|
private |
Referenced by ServerMap(), ~ServerMap(), beginSave(), deleteBlock(), endSave(), listAllLoadableBlocks(), loadBlock(), and saveBlock().
|
private |
Referenced by ServerMap(), ~ServerMap(), listAllLoadableBlocks(), and loadBlock().
|
private |
Referenced by finishBlockMake(), and initBlockMake().
|
private |
Referenced by finishBlockMake(), getBlockOrEmerge(), initBlockMake(), loadBlock(), and updateVManip().
|
private |
Referenced by ServerMap(), and saveBlock().
|
private |
Referenced by save().
|
private |
Referenced by ServerMap(), ~ServerMap(), isSavingEnabled(), and save().
|
private |
Referenced by ServerMap(), and save().
|
private |
Referenced by ServerMap(), and ~ServerMap().
MapSettingsManager ServerMap::settings_mgr |
Referenced by ServerMap(), getMapgenParams(), Server::init(), and save().