Add shears

master
PilzAdam 2013-05-28 23:49:17 +02:00
parent fac77e01f3
commit fd914ba75d
5 changed files with 108 additions and 14 deletions

View File

@ -227,6 +227,14 @@ minetest.register_craft({
}
})
minetest.register_craft({
output = 'default:shears',
recipe = {
{'', 'default:iron_ingot'},
{'default:iron_ingot', ''},
}
})
minetest.register_craft({
output = 'default:rail 16',
recipe = {

View File

@ -297,6 +297,18 @@ minetest.register_abm({
-- Drop stuff other than the node itself
itemstacks = minetest.get_node_drops(n0.name)
for _, itemname in ipairs(itemstacks) do
if n0.name == "default:leaves" then
if math.random(1, 30) == 1 then
itemname = "default:apple"
end
if math.random(1, 20) == 1 then
itemname = "default:sapling"
end
elseif n0.name == "default:jungleleaves" then
if math.random(1, 20) == 1 then
itemname = "default:junglesapling"
end
end
if minetest.get_item_group(n0.name, "leafdecay_drop") ~= 0 or
itemname ~= n0.name then
local p_drop = {
@ -305,7 +317,9 @@ minetest.register_abm({
z = p0.z - 0.5 + math.random(),
}
local obj = minetest.env:add_item(p_drop, itemname)
obj:get_luaentity().collect = true
if obj then
obj:get_luaentity().collect = true
end
end
end
-- Remove node

View File

@ -178,14 +178,40 @@ minetest.register_node("default:jungleleaves", {
tiles = {"default_jungleleaves.png"},
paramtype = "light",
groups = {snappy=default.dig.leaves, leafdecay=3, flammable=2, leaves=1},
drop = {
max_items = 1,
items = {
{items = {'default:junglesapling'},rarity = 20},
}
},
drop = "",
stack_max = 64,
sounds = default.node_sound_leaves_defaults(),
after_dig_node = function(pos, oldnode, oldmetadata, digger)
local nn = "default:jungleleaves"
if math.random(1, 20) == 1 then
nn = "default:junglesapling"
end
if minetest.setting_getbool("creative_mode") then
local inv = digger:get_inventory()
if not inv:contains_item("main", ItemStack(nn)) then
inv:add_item("main", ItemStack(nn))
end
else
if digger:get_wielded_item():get_name() == "default:shears" or nn ~= "default:jungleleaves" then
local obj = minetest.env:add_item(pos, nn)
if obj ~= nil then
obj:get_luaentity().collect = true
local x = math.random(1, 5)
if math.random(1,2) == 1 then
x = -x
end
local z = math.random(1, 5)
if math.random(1,2) == 1 then
z = -z
end
obj:setvelocity({x=1/x, y=obj:getvelocity().y, z=1/z})
end
end
end
end,
after_place_node = function(pos, placer, itemstack)
minetest.env:set_node(pos, {name="default:jungleleaves", param2=1})
end,
})
minetest.register_node("default:junglesapling", {
@ -237,15 +263,43 @@ minetest.register_node("default:leaves", {
tiles = {"default_leaves.png"},
paramtype = "light",
groups = {snappy=default.dig.leaves, leafdecay=3, flammable=2, leaves=1},
drop = {
max_items = 1,
items = {
{items = {'default:sapling'},rarity = 20},
{items = {'default:apple'},rarity = 30},
}
},
drop = "",
stack_max = 64,
sounds = default.node_sound_leaves_defaults(),
after_dig_node = function(pos, oldnode, oldmetadata, digger)
local nn = "default:leaves"
if math.random(1, 30) == 1 then
nn = "default:apple"
end
if math.random(1, 20) == 1 then
nn = "default:sapling"
end
if minetest.setting_getbool("creative_mode") then
local inv = digger:get_inventory()
if not inv:contains_item("main", ItemStack(nn)) then
inv:add_item("main", ItemStack(nn))
end
else
if digger:get_wielded_item():get_name() == "default:shears" or nn ~= "default:leaves" then
local obj = minetest.env:add_item(pos, nn)
if obj ~= nil then
obj:get_luaentity().collect = true
local x = math.random(1, 5)
if math.random(1,2) == 1 then
x = -x
end
local z = math.random(1, 5)
if math.random(1,2) == 1 then
z = -z
end
obj:setvelocity({x=1/x, y=obj:getvelocity().y, z=1/z})
end
end
end
end,
after_place_node = function(pos, placer, itemstack)
minetest.env:set_node(pos, {name="default:leaves", param2=1})
end,
})
minetest.register_node("default:cactus", {

Binary file not shown.

After

Width:  |  Height:  |  Size: 407 B

View File

@ -463,3 +463,21 @@ minetest.register_tool("default:sword_diamond", {
damage_groups = {fleshy=8},
}
})
--
-- Shears
--
minetest.register_tool("default:shears", {
description = "Shears",
inventory_image = "default_shears.png",
tool_capabilities = {
groupcaps = get_groupcaps(0, "snappy", {
times = {
[default.dig.leaves] = 0.05,
[default.dig.wool] = 0.25,
}, uses=238}
),
full_punch_interval = 1,
damage_groups = {fleshy=1},
}
})