Biome dust node: Only place on 'walkable' cubic non-liquid drawtypes
authorparamat <paramat@users.noreply.github.com>
Wed, 15 Nov 2017 23:52:31 +0000 (23:52 +0000)
committerparamat <mat.gregory@virginmedia.com>
Fri, 17 Nov 2017 19:27:06 +0000 (19:27 +0000)
No longer decide placement on 'buildable_to' parameter.
Dust nodes only look acceptable placed on cubic nodes.
Modders may not want to make their plantlike decorations 'buildable_to'.

src/mapgen/mapgen.cpp

index f73e16dd04951ebf388616ae75a5f396ef5b328f..a8b9873256fcba9957edc11e6afde0784c4a6660 100644 (file)
@@ -831,7 +831,16 @@ void MapgenBasic::dustTopNodes()
                }
 
                content_t c = vm->m_data[vi].getContent();
-               if (!ndef->get(c).buildable_to && c != CONTENT_IGNORE && c != biome->c_dust) {
+               NodeDrawType dtype = ndef->get(c).drawtype;
+               // Only place on walkable cubic non-liquid nodes
+               // Dust check needed due to vertical overgeneration
+               if ((dtype == NDT_NORMAL ||
+                               dtype == NDT_ALLFACES_OPTIONAL ||
+                               dtype == NDT_GLASSLIKE_FRAMED_OPTIONAL ||
+                               dtype == NDT_GLASSLIKE ||
+                               dtype == NDT_GLASSLIKE_FRAMED ||
+                               dtype == NDT_ALLFACES) &&
+                               ndef->get(c).walkable && c != biome->c_dust) {
                        vm->m_area.add_y(em, vi, 1);
                        vm->m_data[vi] = MapNode(biome->c_dust);
                }