diff options
author | kwolekr <kwolekr@minetest.net> | 2014-12-12 14:07:49 -0500 |
---|---|---|
committer | kwolekr <kwolekr@minetest.net> | 2014-12-12 14:08:04 -0500 |
commit | cf8213ea827f38ae5d4b8ef16c396545e3e59657 (patch) | |
tree | e739591704b1776002baa1bde7a4ff86de5f06ad /src/mg_decoration.cpp | |
parent | cec141adc1fd0845e27df9b0c88d979dd765e76f (diff) | |
download | minetest-cf8213ea827f38ae5d4b8ef16c396545e3e59657.tar.gz minetest-cf8213ea827f38ae5d4b8ef16c396545e3e59657.tar.bz2 minetest-cf8213ea827f38ae5d4b8ef16c396545e3e59657.zip |
Add minetest.clear_registered_decorations() and clear_registered_ores()
Diffstat (limited to 'src/mg_decoration.cpp')
-rw-r--r-- | src/mg_decoration.cpp | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/mg_decoration.cpp b/src/mg_decoration.cpp index 20b9fbda6..14368c091 100644 --- a/src/mg_decoration.cpp +++ b/src/mg_decoration.cpp @@ -38,6 +38,12 @@ FlagDesc flagdesc_deco[] = { /////////////////////////////////////////////////////////////////////////////// +DecorationManager::DecorationManager(IGameDef *gamedef) : + GenElementManager(gamedef) +{ +} + + size_t DecorationManager::placeAllDecos(Mapgen *mg, u32 seed, v3s16 nmin, v3s16 nmax) { size_t nplaced = 0; @@ -55,6 +61,19 @@ size_t DecorationManager::placeAllDecos(Mapgen *mg, u32 seed, v3s16 nmin, v3s16 } +void DecorationManager::clear() +{ + for (size_t i = 0; i < m_elements.size(); i++) { + Decoration *deco = (Decoration *)m_elements[i]; + if (!deco) + continue; + + deco->dropResolverEntries(m_resolver); + } + m_elements.clear(); +} + + /////////////////////////////////////////////////////////////////////////////// @@ -291,6 +310,13 @@ int DecoSimple::getHeight() } +void DecoSimple::dropResolverEntries(NodeResolver *resolver) +{ + resolver->cancelNodeList(&c_decos); + resolver->cancelNodeList(&c_spawnby); +} + + /////////////////////////////////////////////////////////////////////////////// |