VoxeLibre/mods/mcl_farming/hoes.lua

220 lines
5.2 KiB
Lua
Raw Normal View History

local function create_soil(pos, inv)
2015-06-29 20:55:56 +03:00
if pos == nil then
return false
end
2017-01-05 03:28:43 +03:00
local node = minetest.get_node(pos)
2015-06-29 20:55:56 +03:00
local name = node.name
2017-01-05 03:28:43 +03:00
local above = minetest.get_node({x=pos.x, y=pos.y+1, z=pos.z})
2017-01-10 06:01:53 +03:00
if minetest.get_item_group(name, "cultivatable") == 2 then
2015-06-29 20:55:56 +03:00
if above.name == "air" then
2017-01-31 14:35:59 +03:00
node.name = "mcl_farming:soil"
2017-01-05 03:28:43 +03:00
minetest.set_node(pos, node)
return true
end
2017-01-10 06:01:53 +03:00
elseif minetest.get_item_group(name, "cultivatable") == 1 then
2017-01-05 03:28:43 +03:00
if above.name == "air" then
2017-02-01 01:32:56 +03:00
node.name = "mcl_core:dirt"
2017-01-05 03:28:43 +03:00
minetest.set_node(pos, node)
2015-06-29 20:55:56 +03:00
return true
end
end
return false
end
2017-01-31 14:35:59 +03:00
minetest.register_tool("mcl_farming:hoe_wood", {
2015-06-29 20:55:56 +03:00
description = "Wood Hoe",
inventory_image = "farming_tool_woodhoe.png",
on_place = function(itemstack, user, pointed_thing)
if create_soil(pointed_thing.under, user:get_inventory()) then
2015-06-29 20:55:56 +03:00
if not minetest.setting_getbool("creative_mode") then
2017-01-04 13:05:41 +03:00
itemstack:add_wear(65535/60)
2015-06-29 20:55:56 +03:00
end
return itemstack
end
2017-01-17 02:44:37 +03:00
end,
groups = { tool=1 },
2017-01-17 02:44:37 +03:00
tool_capabilities = {
full_punch_interval = 1,
damage_groups = { fleshy = 1, }
},
2015-06-29 20:55:56 +03:00
})
minetest.register_craft({
2017-01-31 14:35:59 +03:00
output = "mcl_farming:hoe_wood",
2015-06-29 20:55:56 +03:00
recipe = {
2017-01-05 06:39:36 +03:00
{"group:wood", "group:wood"},
2017-02-01 01:32:56 +03:00
{"", "mcl_core:stick"},
{"", "mcl_core:stick"}
2015-06-29 20:55:56 +03:00
}
})
2017-01-10 03:59:21 +03:00
minetest.register_craft({
2017-01-31 14:35:59 +03:00
output = "mcl_farming:hoe_wood",
2017-01-10 03:59:21 +03:00
recipe = {
{"group:wood", "group:wood"},
2017-02-01 01:32:56 +03:00
{"mcl_core:stick", ""},
{"mcl_core:stick", ""}
2017-01-10 03:59:21 +03:00
}
})
2017-01-10 08:43:07 +03:00
minetest.register_craft({
type = "fuel",
2017-01-31 14:35:59 +03:00
recipe = "mcl_farming:hoe_wood",
2017-01-10 08:43:07 +03:00
burntime = 10,
})
2015-06-29 20:55:56 +03:00
2017-01-31 14:35:59 +03:00
minetest.register_tool("mcl_farming:hoe_stone", {
2015-06-29 20:55:56 +03:00
description = "Stone Hoe",
inventory_image = "farming_tool_stonehoe.png",
on_place = function(itemstack, user, pointed_thing)
if create_soil(pointed_thing.under, user:get_inventory()) then
2015-06-29 20:55:56 +03:00
if not minetest.setting_getbool("creative_mode") then
2017-01-04 13:05:41 +03:00
itemstack:add_wear(65535/132)
2015-06-29 20:55:56 +03:00
end
return itemstack
end
2017-01-17 02:44:37 +03:00
end,
groups = { tool=1 },
2017-01-17 02:44:37 +03:00
tool_capabilities = {
full_punch_interval = 0.5,
damage_groups = { fleshy = 1, }
},
2015-06-29 20:55:56 +03:00
})
minetest.register_craft({
2017-01-31 14:35:59 +03:00
output = "mcl_farming:hoe_stone",
2015-06-29 20:55:56 +03:00
recipe = {
2017-02-01 01:32:56 +03:00
{"mcl_core:cobble", "mcl_core:cobble"},
{"", "mcl_core:stick"},
{"", "mcl_core:stick"}
2015-06-29 20:55:56 +03:00
}
})
2017-01-10 03:59:21 +03:00
minetest.register_craft({
2017-01-31 14:35:59 +03:00
output = "mcl_farming:hoe_stone",
2017-01-10 03:59:21 +03:00
recipe = {
2017-02-01 01:32:56 +03:00
{"mcl_core:cobble", "mcl_core:cobble"},
{"mcl_core:stick", ""},
{"mcl_core:stick", ""}
2017-01-10 03:59:21 +03:00
}
})
2015-06-29 20:55:56 +03:00
2017-01-31 14:35:59 +03:00
minetest.register_tool("mcl_farming:hoe_steel", {
2017-01-04 07:29:55 +03:00
description = "Iron Hoe",
2015-06-29 20:55:56 +03:00
inventory_image = "farming_tool_steelhoe.png",
on_place = function(itemstack, user, pointed_thing)
if create_soil(pointed_thing.under, user:get_inventory()) then
2015-06-29 20:55:56 +03:00
if not minetest.setting_getbool("creative_mode") then
2017-01-04 13:05:41 +03:00
itemstack:add_wear(65535/251)
2015-06-29 20:55:56 +03:00
end
return itemstack
end
2017-01-17 02:44:37 +03:00
end,
groups = { tool=1 },
2017-01-17 02:44:37 +03:00
tool_capabilities = {
-- 1/3
full_punch_interval = 0.33333333,
damage_groups = { fleshy = 1, }
},
2015-06-29 20:55:56 +03:00
})
minetest.register_craft({
2017-01-31 14:35:59 +03:00
output = "mcl_farming:hoe_steel",
2015-06-29 20:55:56 +03:00
recipe = {
2017-02-01 01:32:56 +03:00
{"mcl_core:steel_ingot", "mcl_core:steel_ingot"},
{"", "mcl_core:stick"},
{"", "mcl_core:stick"}
2015-06-29 20:55:56 +03:00
}
})
2017-01-10 03:59:21 +03:00
minetest.register_craft({
2017-01-31 14:35:59 +03:00
output = "mcl_farming:hoe_steel",
2017-01-10 03:59:21 +03:00
recipe = {
2017-02-01 01:32:56 +03:00
{"mcl_core:steel_ingot", "mcl_core:steel_ingot"},
{"mcl_core:stick", ""},
{"mcl_core:stick", ""}
2017-01-10 03:59:21 +03:00
}
})
2015-06-29 20:55:56 +03:00
2017-01-04 12:56:38 +03:00
minetest.register_craft({
type = "cooking",
2017-02-01 01:32:56 +03:00
output = "mcl_core:iron_nugget",
2017-01-31 14:35:59 +03:00
recipe = "mcl_farming:hoe_steel",
2017-01-04 13:49:05 +03:00
cooktime = 10,
2017-01-04 12:56:38 +03:00
})
2017-01-31 14:35:59 +03:00
minetest.register_tool("mcl_farming:hoe_gold", {
2017-01-04 13:05:41 +03:00
description = "Golden Hoe",
2015-06-29 20:55:56 +03:00
inventory_image = "farming_tool_goldhoe.png",
on_place = function(itemstack, user, pointed_thing)
if create_soil(pointed_thing.under, user:get_inventory()) then
2015-06-29 20:55:56 +03:00
if not minetest.setting_getbool("creative_mode") then
2017-01-04 13:05:41 +03:00
itemstack:add_wear(65535/33)
2015-06-29 20:55:56 +03:00
end
return itemstack
end
2017-01-17 02:44:37 +03:00
end,
groups = { tool=1 },
2017-01-17 02:44:37 +03:00
tool_capabilities = {
full_punch_interval = 1,
damage_groups = { fleshy = 1, }
},
2015-06-29 20:55:56 +03:00
})
minetest.register_craft({
2017-01-31 14:35:59 +03:00
output = "mcl_farming:hoe_gold",
2015-06-29 20:55:56 +03:00
recipe = {
2017-02-01 01:32:56 +03:00
{"mcl_core:gold_ingot", "mcl_core:gold_ingot"},
{"", "mcl_core:stick"},
{"", "mcl_core:stick"}
2015-06-29 20:55:56 +03:00
}
})
2017-01-10 03:59:21 +03:00
minetest.register_craft({
2017-01-31 14:35:59 +03:00
output = "mcl_farming:hoe_gold",
2017-01-10 03:59:21 +03:00
recipe = {
2017-02-01 01:32:56 +03:00
{"mcl_core:gold_ingot", "mcl_core:gold_ingot"},
{"mcl_core:stick", ""},
{"mcl_core:stick", ""}
2017-01-10 03:59:21 +03:00
}
})
2015-06-29 20:55:56 +03:00
2017-01-04 12:56:38 +03:00
minetest.register_craft({
type = "cooking",
2017-02-01 01:32:56 +03:00
output = "mcl_core:gold_nugget",
2017-01-31 14:35:59 +03:00
recipe = "mcl_farming:hoe_gold",
2017-01-04 13:49:05 +03:00
cooktime = 10,
2017-01-04 12:56:38 +03:00
})
2017-01-31 14:35:59 +03:00
minetest.register_tool("mcl_farming:hoe_diamond", {
2015-06-29 20:55:56 +03:00
description = "Diamond Hoe",
inventory_image = "farming_tool_diamondhoe.png",
on_place = function(itemstack, user, pointed_thing)
if create_soil(pointed_thing.under, user:get_inventory()) then
2015-06-29 20:55:56 +03:00
if not minetest.setting_getbool("creative_mode") then
2017-01-04 13:05:41 +03:00
itemstack:add_wear(65535/1562)
2015-06-29 20:55:56 +03:00
end
return itemstack
end
2017-01-17 02:44:37 +03:00
end,
groups = { tool=1 },
2017-01-17 02:44:37 +03:00
tool_capabilities = {
full_punch_interval = 0.25,
damage_groups = { fleshy = 1, }
},
2015-06-29 20:55:56 +03:00
})
minetest.register_craft({
2017-01-31 14:35:59 +03:00
output = "mcl_farming:hoe_diamond",
2015-06-29 20:55:56 +03:00
recipe = {
2017-02-01 01:32:56 +03:00
{"mcl_core:diamond", "mcl_core:diamond"},
{"", "mcl_core:stick"},
{"", "mcl_core:stick"}
2015-06-29 20:55:56 +03:00
}
})
2017-01-10 03:59:21 +03:00
minetest.register_craft({
2017-01-31 14:35:59 +03:00
output = "mcl_farming:hoe_diamond",
2017-01-10 03:59:21 +03:00
recipe = {
2017-02-01 01:32:56 +03:00
{"mcl_core:diamond", "mcl_core:diamond"},
{"mcl_core:stick", ""},
{"mcl_core:stick", ""}
2017-01-10 03:59:21 +03:00
}
})