mirror of
				https://github.com/luanti-org/minetest_game.git
				synced 2025-11-04 01:05:49 +01:00 
			
		
		
		
	Fix indentation, use log() instead of print() and use get_item_group() in tree growing ABM
This commit is contained in:
		@@ -132,41 +132,49 @@ minetest.register_on_punchnode(on_punchnode)
 | 
			
		||||
--
 | 
			
		||||
 | 
			
		||||
minetest.register_abm({
 | 
			
		||||
        nodenames = {"default:sapling"},
 | 
			
		||||
        interval = 10,
 | 
			
		||||
        chance = 50,
 | 
			
		||||
        action = function(pos, node)
 | 
			
		||||
                local is_soil = minetest.registered_nodes[minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z}).name].groups.soil
 | 
			
		||||
                if is_soil == nil or is_soil == 0 then return end
 | 
			
		||||
                print("A sapling grows into a tree at "..minetest.pos_to_string(pos))
 | 
			
		||||
                local vm = minetest.get_voxel_manip()
 | 
			
		||||
                local minp, maxp = vm:read_from_map({x=pos.x-16, y=pos.y, z=pos.z-16}, {x=pos.x+16, y=pos.y+16, z=pos.z+16})
 | 
			
		||||
                local a = VoxelArea:new{MinEdge=minp, MaxEdge=maxp}
 | 
			
		||||
                local data = vm:get_data()
 | 
			
		||||
                default.grow_tree(data, a, pos, math.random(1, 4) == 1, math.random(1,100000))
 | 
			
		||||
                vm:set_data(data)
 | 
			
		||||
                vm:write_to_map(data)
 | 
			
		||||
                vm:update_map()
 | 
			
		||||
        end
 | 
			
		||||
	nodenames = {"default:sapling"},
 | 
			
		||||
	interval = 10,
 | 
			
		||||
	chance = 50,
 | 
			
		||||
	action = function(pos, node)
 | 
			
		||||
		local nu =  minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z}).name
 | 
			
		||||
		local is_soil = minetest.get_item_group(nu, "soil")
 | 
			
		||||
		if is_soil == 0 then
 | 
			
		||||
			return
 | 
			
		||||
		end
 | 
			
		||||
		
 | 
			
		||||
		minetest.log("action", "A sapling grows into a tree at "..minetest.pos_to_string(pos))
 | 
			
		||||
		local vm = minetest.get_voxel_manip()
 | 
			
		||||
		local minp, maxp = vm:read_from_map({x=pos.x-16, y=pos.y, z=pos.z-16}, {x=pos.x+16, y=pos.y+16, z=pos.z+16})
 | 
			
		||||
		local a = VoxelArea:new{MinEdge=minp, MaxEdge=maxp}
 | 
			
		||||
		local data = vm:get_data()
 | 
			
		||||
		default.grow_tree(data, a, pos, math.random(1, 4) == 1, math.random(1,100000))
 | 
			
		||||
		vm:set_data(data)
 | 
			
		||||
		vm:write_to_map(data)
 | 
			
		||||
		vm:update_map()
 | 
			
		||||
	end
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
minetest.register_abm({
 | 
			
		||||
        nodenames = {"default:junglesapling"},
 | 
			
		||||
        interval = 10,
 | 
			
		||||
        chance = 50,
 | 
			
		||||
        action = function(pos, node)
 | 
			
		||||
                local is_soil = minetest.registered_nodes[minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z}).name].groups.soil
 | 
			
		||||
                if is_soil == nil or is_soil == 0 then return end
 | 
			
		||||
                print("A jungle sapling grows into a tree at "..minetest.pos_to_string(pos))
 | 
			
		||||
                local vm = minetest.get_voxel_manip()
 | 
			
		||||
                local minp, maxp = vm:read_from_map({x=pos.x-16, y=pos.y-1, z=pos.z-16}, {x=pos.x+16, y=pos.y+16, z=pos.z+16})
 | 
			
		||||
                local a = VoxelArea:new{MinEdge=minp, MaxEdge=maxp}
 | 
			
		||||
                local data = vm:get_data()
 | 
			
		||||
                default.grow_jungletree(data, a, pos, math.random(1,100000))
 | 
			
		||||
                vm:set_data(data)
 | 
			
		||||
                vm:write_to_map(data)
 | 
			
		||||
                vm:update_map()
 | 
			
		||||
        end
 | 
			
		||||
	nodenames = {"default:junglesapling"},
 | 
			
		||||
	interval = 10,
 | 
			
		||||
	chance = 50,
 | 
			
		||||
	action = function(pos, node)
 | 
			
		||||
		local nu =  minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z}).name
 | 
			
		||||
		local is_soil = minetest.get_item_group(nu, "soil")
 | 
			
		||||
		if is_soil == 0 then
 | 
			
		||||
			return
 | 
			
		||||
		end
 | 
			
		||||
		
 | 
			
		||||
		minetest.log("action", "A jungle sapling grows into a tree at "..minetest.pos_to_string(pos))
 | 
			
		||||
		local vm = minetest.get_voxel_manip()
 | 
			
		||||
		local minp, maxp = vm:read_from_map({x=pos.x-16, y=pos.y-1, z=pos.z-16}, {x=pos.x+16, y=pos.y+16, z=pos.z+16})
 | 
			
		||||
		local a = VoxelArea:new{MinEdge=minp, MaxEdge=maxp}
 | 
			
		||||
		local data = vm:get_data()
 | 
			
		||||
		default.grow_jungletree(data, a, pos, math.random(1,100000))
 | 
			
		||||
		vm:set_data(data)
 | 
			
		||||
		vm:write_to_map(data)
 | 
			
		||||
		vm:update_map()
 | 
			
		||||
	end
 | 
			
		||||
})
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user