#include <emerge_internal.h>
Public Member Functions | |
| EmergeThread (Server *server, int ethreadid) | |
| ~EmergeThread ()=default | |
| void * | run () |
| void | signal () |
| bool | pushBlock (v3s16 pos) |
| void | cancelPendingItems () |
| EmergeManager * | getEmergeManager () |
| Mapgen * | getMapgen () |
| Public Member Functions inherited from Thread | |
| Thread (const std::string &name="") | |
| virtual | ~Thread () |
| bool | start () |
| bool | stop () |
| bool | wait () |
| bool | isCurrentThread () const |
| bool | isRunning () const |
| bool | stopRequested () const |
| std::thread::id | getThreadId () const |
| bool | getReturnValue (void **ret) const |
| bool | bindToProcessor (unsigned int proc_number) |
| bool | setPriority (int prio) |
Public Attributes | |
| bool | enable_mapgen_debug_info |
| const int | id |
Protected Member Functions | |
| void | runCompletionCallbacks (v3s16 pos, EmergeAction action, const EmergeCallbackList &callbacks) |
Private Member Functions | |
| bool | initScripting () |
| bool | popBlockEmerge (v3s16 *pos, BlockEmergeData *bedata) |
| EmergeAction | getBlockOrStartGen (v3s16 pos, bool allow_gen, const std::string *from_db, MapBlock **block, BlockMakeData *data) |
| Try to get a block from memory and decide what to do. | |
| MapBlock * | finishGen (v3s16 pos, BlockMakeData *bmdata, std::map< v3s16, MapBlock * > *modified_blocks) |
Private Attributes | |
| Server * | m_server |
| ServerMap * | m_map |
| EmergeManager * | m_emerge |
| Mapgen * | m_mapgen |
| std::unique_ptr< EmergeScripting > | m_script |
| UniqueQueue< v3s16 > * | m_trans_liquid |
| Event | m_queue_event |
| std::queue< v3s16 > | m_block_queue |
Friends | |
| class | EmergeManager |
| class | EmergeScripting |
| class | ModApiMapgen |
Additional Inherited Members | |
| Static Public Member Functions inherited from Thread | |
| static Thread * | getCurrentThread () |
| static void | setName (const std::string &name) |
| static unsigned int | getNumberOfProcessors () |
| Protected Attributes inherited from Thread | |
| std::string | m_name |
| EmergeThread::EmergeThread | ( | Server * | server, |
| int | ethreadid ) |
References enable_mapgen_debug_info, id, itos(), m_emerge, m_map, m_mapgen, Thread::m_name, m_server, and m_trans_liquid.
|
default |
| void EmergeThread::cancelPendingItems | ( | ) |
References BlockEmergeData::callbacks, EMERGE_CANCELLED, m_block_queue, m_emerge, and runCompletionCallbacks().
Referenced by run().
|
private |
References analyze_block(), BlockMakeData::blockpos_max, BlockMakeData::blockpos_min, EMERGE_DBG_OUT, errorstream, g_profiler, m_map, m_mapgen, m_server, MAP_BLOCKSIZE, and SPT_AVG.
Referenced by run().
|
private |
Try to get a block from memory and decide what to do.
| pos | block position |
| from_db | serialized block data, optional (for second call after EMERGE_FROM_DISK was returned) |
| allow_gen | allow invoking mapgen? |
| block | output pointer for block |
| data | info for mapgen |
References EMERGE_CANCELLED, EMERGE_FROM_DISK, EMERGE_FROM_MEMORY, EMERGE_GENERATED, m_map, m_server, and verbosestream.
Referenced by run().
|
inline |
|
private |
References BUILTIN_MOD_NAME, DIR_DELIM, errorstream, Server::getBuiltinLuaPath(), m_script, m_server, and BaseException::what().
Referenced by run().
|
private |
References m_block_queue, and m_emerge.
Referenced by run().
| bool EmergeThread::pushBlock | ( | v3s16 | pos | ) |
References m_block_queue.
Referenced by EmergeManager::enqueueBlockEmergeEx().
|
virtual |
Implements Thread.
References BEGIN_DEBUG_EXCEPTION_HANDLER, BLOCK_EMERGE_ALLOW_GEN, blockpos_over_max_limit(), BlockEmergeData::callbacks, cancelPendingItems(), EMERGE_DBG_OUT, EMERGE_ERRORED, EMERGE_FROM_DISK, EMERGE_GENERATED, enable_mapgen_debug_info, END_DEBUG_EXCEPTION_HANDLER, finishGen(), BlockEmergeData::flags, g_profiler, getBlockOrStartGen(), id, initScripting(), m_emerge, m_map, m_mapgen, Thread::m_name, m_queue_event, m_script, m_server, m_trans_liquid, MEET_OTHER, popBlockEmerge(), runCompletionCallbacks(), SPT_AVG, Thread::stop(), Thread::stopRequested(), BlockMakeData::transforming_liquid, porting::TriggerMemoryTrim(), MapEditEvent::type, and BaseException::what().
|
protected |
References m_emerge.
Referenced by cancelPendingItems(), and run().
| void EmergeThread::signal | ( | ) |
References m_queue_event.
Referenced by EmergeManager::~EmergeManager(), and EmergeManager::enqueueBlockEmergeEx().
|
friend |
References EmergeManager.
Referenced by EmergeManager, and getEmergeManager().
|
friend |
References EmergeScripting.
Referenced by EmergeScripting.
|
friend |
References ModApiMapgen.
Referenced by ModApiMapgen.
| bool EmergeThread::enable_mapgen_debug_info |
Referenced by EmergeThread(), and run().
| const int EmergeThread::id |
Referenced by EmergeThread(), and run().
|
private |
Referenced by cancelPendingItems(), popBlockEmerge(), and pushBlock().
|
private |
Referenced by EmergeThread(), cancelPendingItems(), getEmergeManager(), popBlockEmerge(), run(), and runCompletionCallbacks().
|
private |
Referenced by EmergeThread(), finishGen(), getBlockOrStartGen(), and run().
|
private |
Referenced by EmergeThread(), finishGen(), EmergeManager::getCurrentMapgen(), getMapgen(), and run().
|
private |
Referenced by initScripting(), and run().
|
private |
Referenced by EmergeScripting::EmergeScripting(), EmergeThread(), finishGen(), getBlockOrStartGen(), initScripting(), and run().
|
private |
Referenced by EmergeThread(), and run().