void Ore::placeOre(Mapgen *mg, u32 blockseed, v3s16 nmin, v3s16 nmax) { int in_range = 0; in_range |= (nmin.Y <= height_max && nmax.Y >= height_min); if (flags & OREFLAG_ABSHEIGHT) in_range |= (nmin.Y >= -height_max && nmax.Y <= -height_min) << 1; if (!in_range) return; resolveNodeNames(mg->ndef); int ymin, ymax; if (in_range & ORE_RANGE_MIRROR) { ymin = MYMAX(nmin.Y, -height_max); ymax = MYMIN(nmax.Y, -height_min); } else { ymin = MYMAX(nmin.Y, height_min); ymax = MYMIN(nmax.Y, height_max); } if (clust_size >= ymax - ymin + 1) return; nmin.Y = ymin; nmax.Y = ymax; generate(mg->vm, mg->seed, blockseed, nmin, nmax); }
void NodeResolver::nodeResolveInternal() { m_nodenames_idx = 0; m_nnlistsizes_idx = 0; resolveNodeNames(); m_resolve_done = true; m_nodenames.clear(); m_nnlistsizes.clear(); }