master
minermoder27 2013-11-28 09:18:21 +13:00
parent bfdd7bea65
commit 08faad0292
4 changed files with 203 additions and 0 deletions

4
depends.txt Normal file
View File

@ -0,0 +1,4 @@
default
farming
farming_plus

199
init.lua Normal file
View File

@ -0,0 +1,199 @@
fertiliser = {}
fertiliser.grows = {
stdtree = function(pos, def)
if farming~=nil and farming.generate_tree~=nil then
farming:generate_tree(pos, def[4][1], def[4][2], def[4][3], def[4][4])
end
end,
-- jungletree = function(pos, def)
---- farming:generate_tree(pos, def[4][1], def[4][2], def[4][3], def[4][4])
-- 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
--
-- print("[fertiliser] spawned "..node.name.." tree")
-- 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_jungletree(data, a, pos, math.random(1,100000))
-- vm:set_data(data)
-- vm:write_to_map(data)
-- vm:update_map()
-- end,
moretrees = function(pos, def)
local node = minetest.get_node(pos)
print("[fertiliser] spawned "..node.name.." tree")
plantslib.growing[def[1]](pos, node, nil, nil)
end,
clone = function(pos, def)
local node = minetest.get_node(pos)
while minetest.get_node(pos).name == node.name do
pos.y = pos.y + 1
end
if minetest.get_node(pos).name=="air" then
minetest.set_node(pos, node)
return true
end
return false
end,
}
fertiliser.saplings = {
{
"default:sapling", -- name
5, -- chance
fertiliser.grows.stdtree,
{
"default:tree",
"default:leaves",
{"default:dirt", "default:dirt_with_grass"},
{},
},
},
-- {
-- "default:junglesapling", -- name
-- 5, -- chance
-- fertiliser.grows.jungletree,
-- {
-- "default:tree",
-- "default:leaves",
-- {"default:dirt", "default:dirt_with_grass"},
-- {},
-- },
-- },
{
"farming_plus:banana_sapling",
5,
fertiliser.grows.stdtree,
{
"default:tree",
"farming_plus:banana_leaves",
{"default:dirt", "default:dirt_with_grass"},
{["farming_plus:banana"]=20},
},
},
{
"farming_plus:cocoa_sapling",
5,
fertiliser.grows.stdtree,
{
"default:tree",
"farming_plus:cocoa_leaves",
{"default:sand", "default:desert_sand"},
{["farming_plus:cocoa"]=20},
},
},
{
"default:cactus",
1,
fertiliser.grows.clone,
},
{
"default:papyrus",
1,
fertiliser.grows.clone,
},
}
minetest.after(0, function()
local register = function(val)
for i = 1, #val.names do
local name = val.names[i]
fertiliser.saplings[#fertiliser.saplings + 1] = {
name,
1,
function(pos, def)
minetest.set_node(pos, {name = (val.names[i+1] or val.full_grown)})
end,
}
end
end
if farming.registered_plants~=nil then
for _, val in ipairs(farming.registered_plants) do
register(val)
end
end
local names = {"farming:wheat_1",
"farming:wheat_2",
"farming:wheat_3",
"farming:wheat_4",
"farming:wheat_5",
"farming:wheat_6",
"farming:wheat_7"}
register( {
full_grown = "farming:wheat_8",
names = names
})
names = { "farming:cotton_1",
"farming:cotton_2",
"farming:cotton_3",
"farming:cotton_4",
"farming:cotton_5",
"farming:cotton_6",
"farming:cotton_7"}
register( {
full_grown = "farming:cotton_8",
names = names
})
end)
minetest.register_craftitem("fertiliser:fertiliser", {
description = "Fertiliser",
inventory_image = "fertiliser_fertiliser.png",
on_use = function(itemstack, user, pointed_thing)
if pointed_thing.type=="node" then
local pos = pointed_thing.under
local node = minetest.get_node(pos)
for i=1, #fertiliser.saplings do
local def = fertiliser.saplings[i]
if node.name==def[1] then
local res
if math.random(def[2])==1 then
res = def[3](pos, def)
end
if res~=false then itemstack:take_item() end
end
end
end
return itemstack
end,
})
minetest.register_craft({
output = 'fertiliser:fertiliser 9',
recipe = {
{'default:dirt', 'default:dirt', 'default:dirt'},
{'default:dirt', 'bones:single_bone', 'default:dirt'},
{'default:dirt', 'default:dirt', 'default:dirt'},
},
})
minetest.register_craft({
output = 'bones:bones',
recipe = {
{'bones:single_bone', 'bones:single_bone', 'bones:single_bone'},
{'bones:single_bone', 'bones:single_bone', 'bones:single_bone'},
{'bones:single_bone', 'bones:single_bone', 'bones:single_bone'},
},
})
minetest.register_craft({
type = 'shapeless',
output = 'bones:single_bone 9',
recipe = {'bones:bones'},
})
minetest.register_craftitem(":bones:single_bone", {
description = "Single Bone",
inventory_image = "fertiliser_bone.png",
})

Binary file not shown.

After

Width:  |  Height:  |  Size: 458 B

Binary file not shown.