using on_generate to place cocoa pods instead of abm

This commit is contained in:
TenPlus1 2016-06-22 20:49:11 +01:00
parent 38b4111878
commit 01e2f37467

View File

@ -137,16 +137,24 @@ crop_def.drop = {
} }
minetest.register_node("farming:cocoa_3", table.copy(crop_def)) minetest.register_node("farming:cocoa_3", table.copy(crop_def))
-- add random cocoa pods to jungle tree trunks -- add random cocoa pods to jungle tree's
minetest.register_abm({ minetest.register_on_generated(function(minp, maxp)
nodenames = {"default:jungletree"},
neighbors = {"default:jungleleaves", "moretrees:jungletree_leaves_green"},
interval = 8,
chance = 80,
catch_up = false,
action = function(pos, node)
local dir = math.random(1, 50) if maxp.y < 0 then
return
end
local pos, dir
local cocoa = minetest.find_nodes_in_area(minp, maxp, "default:jungletree")
for n = 1, #cocoa do
pos = cocoa[n]
if minetest.find_node_near(pos, 1,
{"default:jungleleaves", "moretrees:jungletree_leaves_green"}) then
dir = math.random(1, 80)
if dir == 1 then if dir == 1 then
pos.x = pos.x + 1 pos.x = pos.x + 1
@ -156,19 +164,19 @@ minetest.register_abm({
pos.z = pos.z + 1 pos.z = pos.z + 1
elseif dir == 4 then elseif dir == 4 then
pos.z = pos.z -1 pos.z = pos.z -1
else return
end end
local nodename = minetest.get_node(pos).name if dir < 5
and minetest.get_node(pos).name == "air"
if nodename == "air"
and minetest.get_node_light(pos) > 12 then and minetest.get_node_light(pos) > 12 then
--print ("Cocoa Pod added at " .. minetest.pos_to_string(pos)) --print ("Cocoa Pod added at " .. minetest.pos_to_string(pos))
minetest.set_node(pos, { minetest.swap_node(pos, {
name = "farming:cocoa_" .. tostring(math.random(1, 3)) name = "farming:cocoa_" .. tostring(math.random(1, 3))
}) })
end end
end,
}) end
end
end)