2015-10-04 02:07:04 +02:00
|
|
|
--
|
|
|
|
-- Crafting items
|
|
|
|
--
|
|
|
|
|
2017-05-12 04:29:55 +02:00
|
|
|
minetest.register_craftitem(
|
2015-10-04 02:07:04 +02:00
|
|
|
"default:fiber",
|
|
|
|
{
|
|
|
|
description = "Fiber",
|
|
|
|
inventory_image = "default_fiber.png",
|
2017-05-10 19:19:28 +02:00
|
|
|
})
|
2015-10-04 02:07:04 +02:00
|
|
|
|
2017-05-12 04:29:55 +02:00
|
|
|
minetest.register_craftitem(
|
2015-10-04 02:07:04 +02:00
|
|
|
"default:stick",
|
|
|
|
{
|
|
|
|
description = "Stick",
|
|
|
|
inventory_image = "default_stick.png",
|
|
|
|
groups = {stick = 1}
|
2017-05-10 19:19:28 +02:00
|
|
|
})
|
2015-10-04 02:07:04 +02:00
|
|
|
|
2017-05-12 04:29:55 +02:00
|
|
|
minetest.register_craftitem(
|
2015-10-04 02:07:04 +02:00
|
|
|
"default:paper",
|
|
|
|
{
|
|
|
|
description = "Paper",
|
|
|
|
inventory_image = "default_paper.png",
|
2017-05-10 19:19:28 +02:00
|
|
|
})
|
2015-10-04 02:07:04 +02:00
|
|
|
|
2017-05-12 04:29:55 +02:00
|
|
|
minetest.register_craftitem(
|
2015-10-04 02:07:04 +02:00
|
|
|
"default:book",
|
|
|
|
{
|
|
|
|
description = "Book",
|
|
|
|
inventory_image = "default_book.png",
|
|
|
|
wield_scale = {x=1,y=1,z=2},
|
2015-10-23 19:36:47 +02:00
|
|
|
stack_max = 1,
|
2017-05-10 19:19:28 +02:00
|
|
|
})
|
2015-10-04 02:07:04 +02:00
|
|
|
|
2017-05-12 04:29:55 +02:00
|
|
|
minetest.register_craftitem(
|
2015-10-04 02:07:04 +02:00
|
|
|
"default:lump_coal",
|
|
|
|
{
|
|
|
|
description = "Coal Lump",
|
|
|
|
inventory_image = "default_lump_coal.png",
|
2017-05-10 19:19:28 +02:00
|
|
|
})
|
2015-10-04 02:07:04 +02:00
|
|
|
|
2017-05-12 04:29:55 +02:00
|
|
|
minetest.register_craftitem(
|
2015-10-04 02:07:04 +02:00
|
|
|
"default:lump_iron",
|
|
|
|
{
|
|
|
|
description = "Iron Lump",
|
|
|
|
inventory_image = "default_lump_iron.png",
|
2017-05-10 19:19:28 +02:00
|
|
|
})
|
2015-10-04 02:07:04 +02:00
|
|
|
|
2017-05-12 04:29:55 +02:00
|
|
|
minetest.register_craftitem(
|
2015-10-04 02:07:04 +02:00
|
|
|
"default:dust_carbonsteel",
|
|
|
|
{
|
|
|
|
description = "Carbon Steel Dust",
|
|
|
|
inventory_image = "default_dust_carbonsteel.png",
|
2017-05-10 19:19:28 +02:00
|
|
|
})
|
2015-10-04 02:07:04 +02:00
|
|
|
|
2017-05-12 04:29:55 +02:00
|
|
|
minetest.register_craftitem(
|
2015-10-04 02:07:04 +02:00
|
|
|
"default:ingot_steel",
|
|
|
|
{
|
|
|
|
description = "Steel Ingot",
|
|
|
|
inventory_image = "default_ingot_steel.png",
|
2017-05-10 19:19:28 +02:00
|
|
|
})
|
2015-10-04 02:07:04 +02:00
|
|
|
|
2017-05-12 04:29:55 +02:00
|
|
|
minetest.register_craftitem(
|
2015-10-04 02:07:04 +02:00
|
|
|
"default:ingot_carbonsteel",
|
|
|
|
{
|
|
|
|
description = "Carbon Steel Ingot",
|
|
|
|
inventory_image = "default_ingot_carbonsteel.png",
|
2017-05-10 19:19:28 +02:00
|
|
|
})
|
2015-10-04 02:07:04 +02:00
|
|
|
|
2017-05-12 04:29:55 +02:00
|
|
|
minetest.register_craftitem(
|
2015-10-04 02:07:04 +02:00
|
|
|
"default:lump_sugar",
|
|
|
|
{
|
2015-10-05 21:14:47 +02:00
|
|
|
description = "Sugar Lump",
|
2015-10-04 02:07:04 +02:00
|
|
|
inventory_image = "default_lump_sugar.png",
|
2017-05-12 04:29:55 +02:00
|
|
|
on_use = minetest.item_eat({hp = 1, sat = 10})
|
2017-05-10 19:19:28 +02:00
|
|
|
})
|
2015-10-04 02:07:04 +02:00
|
|
|
|
2017-05-12 04:29:55 +02:00
|
|
|
minetest.register_craftitem(
|
2015-10-05 21:14:47 +02:00
|
|
|
"default:pearl",
|
|
|
|
{
|
|
|
|
description = "Pearl",
|
|
|
|
inventory_image = "default_pearl.png",
|
2017-05-10 19:19:28 +02:00
|
|
|
})
|
2015-10-05 21:14:47 +02:00
|
|
|
|
2017-05-12 04:29:55 +02:00
|
|
|
minetest.register_craftitem(
|
2015-10-04 02:07:04 +02:00
|
|
|
"default:flint",
|
|
|
|
{
|
|
|
|
description = "Flint Shard",
|
|
|
|
inventory_image = "default_flint.png",
|
2017-05-10 19:19:28 +02:00
|
|
|
})
|
2015-10-04 02:07:04 +02:00
|
|
|
|
2017-05-12 04:29:55 +02:00
|
|
|
minetest.register_craftitem(
|
2015-10-04 02:07:04 +02:00
|
|
|
"default:bucket_water",
|
|
|
|
{
|
|
|
|
description = "Water Bucket",
|
|
|
|
inventory_image = "default_bucket_water.png",
|
|
|
|
stack_max = 1,
|
|
|
|
wield_scale = {x=1,y=1,z=2},
|
|
|
|
liquids_pointable = true,
|
|
|
|
on_place = function(itemstack, user, pointed_thing)
|
2017-05-10 19:19:28 +02:00
|
|
|
if pointed_thing.type ~= "node" then return end
|
2015-10-04 02:07:04 +02:00
|
|
|
|
2017-05-12 04:29:55 +02:00
|
|
|
local pos_protected = minetest.get_pointed_thing_position(pointed_thing, true)
|
|
|
|
if minetest.is_protected(pos_protected, user) then return end
|
2015-11-13 20:51:45 +01:00
|
|
|
|
2017-05-10 19:19:28 +02:00
|
|
|
local inv=user:get_inventory()
|
2015-10-04 02:07:04 +02:00
|
|
|
|
2017-05-10 19:19:28 +02:00
|
|
|
if inv:room_for_item("main", {name="default:bucket"}) then
|
|
|
|
inv:add_item("main", "default:bucket")
|
|
|
|
else
|
|
|
|
local pos = user:getpos()
|
|
|
|
pos.y = math.floor(pos.y + 0.5)
|
2017-05-12 04:29:55 +02:00
|
|
|
minetest.add_item(pos, "default:bucket")
|
2017-05-10 19:19:28 +02:00
|
|
|
end
|
2015-10-04 02:07:04 +02:00
|
|
|
|
2017-05-10 19:19:28 +02:00
|
|
|
local pos = pointed_thing.above
|
2017-05-12 17:07:39 +02:00
|
|
|
local above_nodedef = minetest.registered_nodes[minetest.get_node(pointed_thing.above).name]
|
|
|
|
local under_nodedef = minetest.registered_nodes[minetest.get_node(pointed_thing.under).name]
|
|
|
|
|
|
|
|
if under_nodedef.buildable_to then
|
2017-05-10 19:19:28 +02:00
|
|
|
pos=pointed_thing.under
|
|
|
|
end
|
2017-05-12 17:07:39 +02:00
|
|
|
|
|
|
|
if not above_nodedef.walkable then
|
|
|
|
minetest.add_node(pos, {name = "default:water_source"})
|
|
|
|
end
|
2017-05-10 19:19:28 +02:00
|
|
|
|
|
|
|
return itemstack
|
|
|
|
end
|
|
|
|
})
|
2015-10-04 02:07:04 +02:00
|
|
|
|
2017-05-12 04:29:55 +02:00
|
|
|
minetest.register_craftitem(
|
2015-10-04 02:07:04 +02:00
|
|
|
"default:bucket_river_water",
|
|
|
|
{
|
|
|
|
description = "River Water Bucket",
|
|
|
|
inventory_image = "default_bucket_river_water.png",
|
|
|
|
stack_max = 1,
|
|
|
|
wield_scale = {x=1,y=1,z=2},
|
|
|
|
liquids_pointable = true,
|
|
|
|
on_place = function(itemstack, user, pointed_thing)
|
2017-05-10 19:19:28 +02:00
|
|
|
if pointed_thing.type ~= "node" then return end
|
|
|
|
|
2017-05-12 04:29:55 +02:00
|
|
|
local pos_protected = minetest.get_pointed_thing_position(pointed_thing, true)
|
|
|
|
if minetest.is_protected(pos_protected, user) then return end
|
2015-10-04 02:07:04 +02:00
|
|
|
|
2017-05-10 19:19:28 +02:00
|
|
|
itemstack:take_item()
|
2015-11-13 20:51:45 +01:00
|
|
|
|
2017-05-10 19:19:28 +02:00
|
|
|
local inv=user:get_inventory()
|
2015-10-04 02:07:04 +02:00
|
|
|
|
2017-05-10 19:19:28 +02:00
|
|
|
if inv:room_for_item("main", {name="default:bucket"}) then
|
|
|
|
inv:add_item("main", "default:bucket")
|
|
|
|
else
|
|
|
|
local pos = user:getpos()
|
|
|
|
pos.y = math.floor(pos.y + 0.5)
|
2017-05-12 04:29:55 +02:00
|
|
|
minetest.add_item(pos, "default:bucket")
|
2017-05-10 19:19:28 +02:00
|
|
|
end
|
2015-10-04 02:07:04 +02:00
|
|
|
|
2017-05-10 19:19:28 +02:00
|
|
|
local pos = pointed_thing.above
|
2017-05-12 17:07:39 +02:00
|
|
|
local above_nodedef = minetest.registered_nodes[minetest.get_node(pointed_thing.above).name]
|
|
|
|
local under_nodedef = minetest.registered_nodes[minetest.get_node(pointed_thing.under).name]
|
|
|
|
|
|
|
|
if under_nodedef.buildable_to then
|
2017-05-10 19:19:28 +02:00
|
|
|
pos=pointed_thing.under
|
|
|
|
end
|
2017-05-12 17:07:39 +02:00
|
|
|
|
|
|
|
if not above_nodedef.walkable then
|
|
|
|
minetest.add_node(pos, {name = "default:river_water_source"})
|
|
|
|
end
|
2015-10-04 02:07:04 +02:00
|
|
|
|
2017-05-10 19:19:28 +02:00
|
|
|
return itemstack
|
|
|
|
end
|
|
|
|
})
|
2015-10-04 02:07:04 +02:00
|
|
|
|
2017-05-12 04:29:55 +02:00
|
|
|
minetest.register_craftitem(
|
2015-10-04 02:07:04 +02:00
|
|
|
"default:bucket_swamp_water",
|
|
|
|
{
|
|
|
|
description = "Swamp Water Bucket",
|
|
|
|
inventory_image = "default_bucket_swamp_water.png",
|
|
|
|
stack_max = 1,
|
|
|
|
wield_scale = {x=1,y=1,z=2},
|
|
|
|
liquids_pointable = true,
|
|
|
|
on_place = function(itemstack, user, pointed_thing)
|
2017-05-10 19:19:28 +02:00
|
|
|
if pointed_thing.type ~= "node" then return end
|
2015-10-04 02:07:04 +02:00
|
|
|
|
2017-05-12 04:29:55 +02:00
|
|
|
local pos_protected = minetest.get_pointed_thing_position(pointed_thing, true)
|
|
|
|
if minetest.is_protected(pos_protected, user) then return end
|
2015-11-13 20:51:45 +01:00
|
|
|
|
2017-05-10 19:19:28 +02:00
|
|
|
itemstack:take_item()
|
2015-10-04 02:07:04 +02:00
|
|
|
|
2017-05-10 19:19:28 +02:00
|
|
|
local inv=user:get_inventory()
|
2015-10-04 02:07:04 +02:00
|
|
|
|
2017-05-10 19:19:28 +02:00
|
|
|
if inv:room_for_item("main", {name="default:bucket"}) then
|
|
|
|
inv:add_item("main", "default:bucket")
|
|
|
|
else
|
|
|
|
local pos = user:getpos()
|
|
|
|
pos.y = math.floor(pos.y + 0.5)
|
2017-05-12 04:29:55 +02:00
|
|
|
minetest.add_item(pos, "default:bucket")
|
2017-05-10 19:19:28 +02:00
|
|
|
end
|
2015-10-04 02:07:04 +02:00
|
|
|
|
2017-05-10 19:19:28 +02:00
|
|
|
local pos = pointed_thing.above
|
2017-05-12 17:07:39 +02:00
|
|
|
local above_nodedef = minetest.registered_nodes[minetest.get_node(pointed_thing.above).name]
|
|
|
|
local under_nodedef = minetest.registered_nodes[minetest.get_node(pointed_thing.under).name]
|
|
|
|
|
|
|
|
if under_nodedef.buildable_to then
|
2017-05-10 19:19:28 +02:00
|
|
|
pos=pointed_thing.under
|
|
|
|
end
|
2017-05-12 17:07:39 +02:00
|
|
|
|
|
|
|
if not above_nodedef.walkable then
|
|
|
|
minetest.add_node(pos, {name = "default:swamp_water_source"})
|
|
|
|
end
|
2017-05-10 19:19:28 +02:00
|
|
|
|
|
|
|
return itemstack
|
|
|
|
end
|
|
|
|
})
|
2015-10-04 02:07:04 +02:00
|
|
|
|
2017-05-12 04:29:55 +02:00
|
|
|
minetest.register_craftitem(
|
2015-10-04 02:07:04 +02:00
|
|
|
"default:bucket",
|
|
|
|
{
|
|
|
|
description = "Empty Bucket",
|
|
|
|
inventory_image = "default_bucket.png",
|
|
|
|
stack_max = 10,
|
|
|
|
wield_scale = {x=1,y=1,z=2},
|
|
|
|
liquids_pointable = true,
|
|
|
|
on_use = function(itemstack, user, pointed_thing)
|
2017-05-10 19:19:28 +02:00
|
|
|
if pointed_thing.type ~= "node" then return end
|
|
|
|
|
2017-05-12 04:29:55 +02:00
|
|
|
local nodename=minetest.get_node(pointed_thing.under).name
|
2017-05-10 19:19:28 +02:00
|
|
|
|
|
|
|
if nodename == "default:water_source" then
|
|
|
|
itemstack:take_item()
|
|
|
|
|
|
|
|
local inv=user:get_inventory()
|
|
|
|
|
|
|
|
if inv:room_for_item("main", {name="default:bucket_water"}) then
|
|
|
|
inv:add_item("main", "default:bucket_water")
|
|
|
|
else
|
|
|
|
local pos = user:getpos()
|
|
|
|
pos.y = math.floor(pos.y + 0.5)
|
2017-05-12 04:29:55 +02:00
|
|
|
minetest.add_item(pos, "default:bucket_water")
|
2017-05-10 19:19:28 +02:00
|
|
|
end
|
|
|
|
|
2017-05-12 04:29:55 +02:00
|
|
|
minetest.remove_node(pointed_thing.under)
|
2017-05-10 19:19:28 +02:00
|
|
|
elseif nodename == "default:river_water_source" then
|
|
|
|
itemstack:take_item()
|
|
|
|
|
|
|
|
local inv=user:get_inventory()
|
|
|
|
|
|
|
|
if inv:room_for_item("main", {name="default:bucket_river_water"}) then
|
|
|
|
inv:add_item("main", "default:bucket_river_water")
|
|
|
|
else
|
|
|
|
local pos = user:getpos()
|
|
|
|
pos.y = math.floor(pos.y + 0.5)
|
2017-05-12 04:29:55 +02:00
|
|
|
minetest.add_item(pos, "default:bucket_river_water")
|
2017-05-10 19:19:28 +02:00
|
|
|
end
|
|
|
|
|
2017-05-12 04:29:55 +02:00
|
|
|
minetest.remove_node(pointed_thing.under)
|
2017-05-10 19:19:28 +02:00
|
|
|
elseif nodename == "default:swamp_water_source" then
|
|
|
|
itemstack:take_item()
|
|
|
|
|
|
|
|
local inv=user:get_inventory()
|
|
|
|
|
|
|
|
if inv:room_for_item("main", {name="default:bucket_swamp_water"}) then
|
|
|
|
inv:add_item("main", "default:bucket_swamp_water")
|
|
|
|
else
|
|
|
|
local pos = user:getpos()
|
|
|
|
pos.y = math.floor(pos.y + 0.5)
|
2017-05-12 04:29:55 +02:00
|
|
|
minetest.add_item(pos, "default:bucket_swamp_water")
|
2017-05-10 19:19:28 +02:00
|
|
|
end
|
|
|
|
|
2017-05-12 04:29:55 +02:00
|
|
|
minetest.remove_node(pointed_thing.under)
|
2017-05-10 19:19:28 +02:00
|
|
|
end
|
|
|
|
|
|
|
|
return itemstack
|
|
|
|
end
|
|
|
|
|
|
|
|
})
|
2015-10-04 02:07:04 +02:00
|
|
|
|
2015-10-18 02:31:07 +02:00
|
|
|
|
2017-05-12 04:29:55 +02:00
|
|
|
minetest.register_craftitem(
|
2015-10-18 02:31:07 +02:00
|
|
|
"default:fertilizer",
|
|
|
|
{
|
|
|
|
description = "Fertilizer",
|
|
|
|
inventory_image = "default_fertilizer_inventory.png",
|
|
|
|
wield_scale = {x=1,y=1,z=2},
|
|
|
|
on_place = function(itemstack, user, pointed_thing)
|
2017-05-10 19:19:28 +02:00
|
|
|
local pos = pointed_thing.above
|
2015-10-18 02:31:07 +02:00
|
|
|
|
2017-05-12 04:29:55 +02:00
|
|
|
local underdef = minetest.registered_nodes[minetest.get_node(pointed_thing.under).name]
|
2015-10-18 02:31:07 +02:00
|
|
|
|
2017-05-10 19:19:28 +02:00
|
|
|
if underdef.groups then
|
|
|
|
if underdef.groups.plantable_soil then
|
2017-05-12 04:29:55 +02:00
|
|
|
minetest.remove_node(pos)
|
|
|
|
minetest.set_node(pointed_thing.under, {name = "default:fertilized_dirt"})
|
2017-05-10 19:19:28 +02:00
|
|
|
elseif underdef.groups.plantable_sandy then
|
2017-05-12 04:29:55 +02:00
|
|
|
minetest.remove_node(pos)
|
|
|
|
minetest.set_node(pointed_thing.under, {name = "default:fertilized_sand"})
|
2017-05-10 19:19:28 +02:00
|
|
|
end
|
|
|
|
end
|
2015-10-18 02:31:07 +02:00
|
|
|
|
2017-05-10 19:19:28 +02:00
|
|
|
itemstack:take_item()
|
2015-10-18 02:31:07 +02:00
|
|
|
|
2017-05-10 19:19:28 +02:00
|
|
|
return itemstack
|
|
|
|
end,
|
|
|
|
})
|
2015-10-18 02:31:07 +02:00
|
|
|
|
2015-11-13 20:51:45 +01:00
|
|
|
default.log("craftitems", "loaded")
|