Fix dry shrubs being placed in cacti and fix incorrect comments
authorPilzAdam <adam-k@outlook.com>
Mon, 19 Nov 2012 15:34:16 +0000 (16:34 +0100)
committerPilzAdam <adam-k@outlook.com>
Tue, 20 Nov 2012 16:43:46 +0000 (17:43 +0100)
mods/default/mapgen.lua

index 8b1c1440adac002fc5c654486cd304f4aea52d06..419861c343174f9b341dbe187d43bdb47fbafc10 100644 (file)
@@ -257,11 +257,11 @@ minetest.register_on_generated(function(minp, maxp, seed)
                        local z0 = minp.z + math.floor((divz+0)*divlen)
                        local x1 = minp.x + math.floor((divx+1)*divlen)
                        local z1 = minp.z + math.floor((divz+1)*divlen)
-                       -- Determine cactus amount from perlin noise
-                       local cactus_amount = math.floor(perlin1:get2d({x=x0, y=z0}) * 5 + 0)
-                       -- Find random positions for cactus based on this random
+                       -- Determine dry shrubs amount from perlin noise
+                       local shrub_amount = math.floor(perlin1:get2d({x=x0, y=z0}) * 5 + 0)
+                       -- Find random positions for dry shrubs based on this random
                        local pr = PseudoRandom(seed+1)
-                       for i=0,cactus_amount do
+                       for i=0,shrub_amount do
                                local x = pr:next(x0, x1)
                                local z = pr:next(z0, z1)
                                -- Find ground level (0...15)
@@ -272,9 +272,14 @@ minetest.register_on_generated(function(minp, maxp, seed)
                                                break
                                        end
                                end
-                               -- If desert sand, make cactus
+                               -- If desert sand, make dry shrub
                                if ground_y and minetest.env:get_node({x=x,y=ground_y,z=z}).name == "default:desert_sand" then
-                                       minetest.env:set_node({x=x,y=ground_y+1,z=z}, {name="default:dry_shrub"})
+                                       local p = {x=x,y=ground_y+1,z=z}
+                                       local nn = minetest.env:get_node(p).name
+                                       if minetest.registered_nodes[nn] and
+                                               minetest.registered_nodes[nn].buildable_to then
+                                               minetest.env:set_node(p, {name="default:dry_shrub"})
+                                       end
                                end
                        end
                end