2015-11-09 17:06:37 +01:00

301 lines
6.8 KiB
Lua

-- refruit for minetest
-- makes fruits regrowing on the trees.
-- images and code are WTFPL license (2015 by Glünggi)
refruit = {}
--replacement
minetest.register_node(":default:apple", {
description = "Apple (+1)",
drawtype = "plantlike",
visual_scale = 1.0,
tiles = {"default_apple.png"},
inventory_image = "default_apple.png",
paramtype = "light",
sunlight_propagates = true,
walkable = false,
is_ground_content = false,
selection_box = {
type = "fixed",
fixed = {-0.25, -0.375, -0.25, 0.25, 0.375, 0.25}
},
groups = {fleshy=3,dig_immediate=3,flammable=2,leafdecay=3,leafdecay_drop=1},
on_use = minetest.item_eat(2),
sounds = default.node_sound_leaves_defaults(),
after_place_node = function(pos, placer, itemstack)
if placer:is_player() then
minetest.set_node(pos, {name="default:apple", param2=1})
end
end,
after_dig_node = function(pos, oldnode, oldmetadata, digger)
if oldnode.name == "default:apple" then
if oldnode.param2 ~= 0 then
return
end
minetest.set_node(pos,{name = "refruit:bud_apple"})
else
return
end
end,
})
--register nodes
minetest.register_node("refruit:bud_apple", {
description = "Apple Bud",
drawtype = "plantlike",
visual_scale = 1.0,
tiles = {"refruit_bud_apple.png"},
inventory_image = "refruit_bud_apple.png",
paramtype = "light",
sunlight_propagates = true,
walkable = false,
is_ground_content = false,
selection_box = {
type = "fixed",
fixed = {-0.1875, -0.3125, -0.1875, 0.1875, 0.3125, 0.1875}
},
groups = {choppy=2,oddly_breakable_by_hand=3,flammable=2,leafdecay=3,leafdecay_drop=1,fruit=1},
drop = {
max_items = 1,
items = {
{
items = {'default:stick'},
rarity = 99,
},
{
items = {'default:stick'},
rarity = 99
}
}
},
sounds = default.node_sound_leaves_defaults(),
-- undestructable bud's
--[[
after_dig_node = function(pos, oldnode, oldmetadata, digger)
if oldnode.name == "refruit:bud_apple" then
minetest.set_node(pos,{name = "refruit:bud_apple"})
else
return
end
end,
--]]
})
minetest.register_node("refruit:flower_apple", {
description = "Apple Flower",
drawtype = "plantlike",
visual_scale = 1.0,
tiles = {"refruit_flower_apple.png"},
inventory_image = "refruit_flower_apple.png",
paramtype = "light",
sunlight_propagates = true,
walkable = false,
is_ground_content = false,
selection_box = {
type = "fixed",
fixed = {-0.1875, -0.3125, -0.1875, 0.1875, 0.3125, 0.1875}
},
groups = {choppy=2,oddly_breakable_by_hand=3,flammable=2,leafdecay=3,leafdecay_drop=1},
drop = { -- a little reward for flowerpuncher's xD
max_items = 1,
items = {
{
items = {'default:stick'},
rarity = 99,
},
{
items = {'default:stick'},
rarity = 99
}
}
},
sounds = default.node_sound_leaves_defaults(),
-- undestructable flower's
--[[
after_dig_node = function(pos, oldnode, oldmetadata, digger)
if oldnode.name == "refruit:flower_apple" then
minetest.set_node(pos,{name = "refruit:flower_apple"})
else
return
end
end,
--]]
})
minetest.register_node(":farming_plus:olive", {
description = "Olive (+1)",
drawtype = "plantlike",
visual_scale = 1.0,
tiles = {"farming_olive.png"},
inventory_image = "farming_olive.png",
paramtype = "light",
sunlight_propagates = true,
walkable = false,
is_ground_content = false,
selection_box = {
type = "fixed",
fixed = {-0.25, -0.375, -0.25, 0.25, 0.375, 0.25}
},
groups = {fleshy=3,dig_immediate=3,flammable=2,leafdecay=3,leafdecay_drop=1},
on_use = minetest.item_eat(2),
sounds = default.node_sound_leaves_defaults(),
after_place_node = function(pos, placer, itemstack)
if placer:is_player() then
minetest.set_node(pos, {name="farming_plus:olive", param2=1})
end
end,
after_dig_node = function(pos, oldnode, oldmetadata, digger)
if oldnode.name == "farming_plus:olive" then
if oldnode.param2 ~= 0 then
return
end
minetest.set_node(pos,{name = "refruit:bud_olive"})
else
return
end
end,
})
--register nodes
minetest.register_node("refruit:bud_olive", {
description = "Olive Bud",
drawtype = "plantlike",
visual_scale = 1.0,
tiles = {"refruit_bud_olive.png"},
inventory_image = "refruit_bud_olive.png",
paramtype = "light",
sunlight_propagates = true,
walkable = false,
is_ground_content = false,
selection_box = {
type = "fixed",
fixed = {-0.1875, -0.3125, -0.1875, 0.1875, 0.3125, 0.1875}
},
groups = {choppy=2,oddly_breakable_by_hand=3,flammable=2,leafdecay=3,leafdecay_drop=1,fruit=1},
drop = {
max_items = 1,
items = {
{
items = {'default:stick'},
rarity = 99,
},
{
items = {'default:stick'},
rarity = 99
}
}
},
sounds = default.node_sound_leaves_defaults(),
-- undestructable bud's
--[[
after_dig_node = function(pos, oldnode, oldmetadata, digger)
if oldnode.name == "refruit:bud_apple" then
minetest.set_node(pos,{name = "refruit:bud_apple"})
else
return
end
end,
--]]
})
minetest.register_node("refruit:flower_olive", {
description = "Olive Flower",
drawtype = "plantlike",
visual_scale = 1.0,
tiles = {"refruit_flower_olive.png"},
inventory_image = "refruit_flower_olive.png",
paramtype = "light",
sunlight_propagates = true,
walkable = false,
is_ground_content = false,
selection_box = {
type = "fixed",
fixed = {-0.1875, -0.3125, -0.1875, 0.1875, 0.3125, 0.1875}
},
groups = {choppy=2,oddly_breakable_by_hand=3,flammable=2,leafdecay=3,leafdecay_drop=1},
drop = { -- a little reward for flowerpuncher's xD
max_items = 1,
items = {
{
items = {'default:stick'},
rarity = 99,
},
{
items = {'default:stick'},
rarity = 99
}
}
},
sounds = default.node_sound_leaves_defaults(),
-- undestructable flower's
--[[
after_dig_node = function(pos, oldnode, oldmetadata, digger)
if oldnode.name == "refruit:flower_apple" then
minetest.set_node(pos,{name = "refruit:flower_apple"})
else
return
end
end,
--]]
})
--abm's
minetest.register_abm({
nodenames = {"refruit:bud_apple"},
neighbors = {"group:leaves"},
interval = 34,
chance = 10,
action = function(pos, node)
minetest.set_node(pos, {name="refruit:flower_apple"})
end,
})
minetest.register_abm({
nodenames = {"refruit:flower_apple"},
neighbors = {"group:leaves"},
interval = 33,
chance = 60,
action = function(pos, node)
minetest.set_node(pos, {name="default:apple"})
end,
})
--
minetest.register_abm({
nodenames = {"refruit:bud_olive"},
neighbors = {"group:leaves"},
interval = 35,
chance = 10,
action = function(pos, node)
minetest.set_node(pos, {name="refruit:flower_olive"})
end,
})
minetest.register_abm({
nodenames = {"refruit:flower_olive"},
neighbors = {"group:leaves"},
interval = 34,
chance = 60,
action = function(pos, node)
minetest.set_node(pos, {name="farming_plus:olive"})
end,
})
--