diff options
author | kwolekr <kwolekr@minetest.net> | 2014-12-17 03:20:17 -0500 |
---|---|---|
committer | kwolekr <kwolekr@minetest.net> | 2014-12-27 02:12:21 -0500 |
commit | b67f37f27ea7d89b2098fa9fcc2533fa1091e695 (patch) | |
tree | b97d7c98fc29677dfc57fa8f8af4332ff9d0c87c /src/mg_ore.cpp | |
parent | 3ea5ed4ffe600fa11a3deb3de58d5bd5bbb65ee1 (diff) | |
download | minetest-b67f37f27ea7d89b2098fa9fcc2533fa1091e695.tar.gz minetest-b67f37f27ea7d89b2098fa9fcc2533fa1091e695.tar.bz2 minetest-b67f37f27ea7d89b2098fa9fcc2533fa1091e695.zip |
Redefine NodeResolver interface and replace with callback mechanism
Diffstat (limited to 'src/mg_ore.cpp')
-rw-r--r-- | src/mg_ore.cpp | 25 |
1 files changed, 20 insertions, 5 deletions
diff --git a/src/mg_ore.cpp b/src/mg_ore.cpp index de3f6b0e5..8681b5782 100644 --- a/src/mg_ore.cpp +++ b/src/mg_ore.cpp @@ -64,11 +64,7 @@ void OreManager::clear() { for (size_t i = 0; i < m_elements.size(); i++) { Ore *ore = (Ore *)m_elements[i]; - if (!ore) - continue; - - m_resolver->cancelNodeList(&ore->c_wherein); - m_resolver->cancelNode(&ore->c_ore); + delete ore; } m_elements.clear(); } @@ -84,6 +80,19 @@ Ore::Ore() } +Ore::~Ore() +{ + delete noise; +} + + +void Ore::resolveNodeNames(NodeResolveInfo *nri) +{ + m_ndef->getIdFromResolveInfo(nri, "", CONTENT_AIR, c_ore); + m_ndef->getIdsFromResolveInfo(nri, c_wherein); +} + + size_t Ore::placeOre(Mapgen *mg, u32 blockseed, v3s16 nmin, v3s16 nmax) { int in_range = 0; @@ -113,6 +122,9 @@ size_t Ore::placeOre(Mapgen *mg, u32 blockseed, v3s16 nmin, v3s16 nmax) } +/////////////////////////////////////////////////////////////////////////////// + + void OreScatter::generate(ManualMapVoxelManipulator *vm, int seed, u32 blockseed, v3s16 nmin, v3s16 nmax) { @@ -151,6 +163,9 @@ void OreScatter::generate(ManualMapVoxelManipulator *vm, int seed, } +/////////////////////////////////////////////////////////////////////////////// + + void OreSheet::generate(ManualMapVoxelManipulator *vm, int seed, u32 blockseed, v3s16 nmin, v3s16 nmax) { |