diff options
Diffstat (limited to 'data/mods/bucket/init.lua')
-rw-r--r-- | data/mods/bucket/init.lua | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/data/mods/bucket/init.lua b/data/mods/bucket/init.lua new file mode 100644 index 000000000..b2947274f --- /dev/null +++ b/data/mods/bucket/init.lua @@ -0,0 +1,78 @@ +local craftitem_place_item = function(item, player, pos) + minetest.env:add_item(pos, 'CraftItem "' .. item .. '" 1') + return true +end + +minetest.register_craft({ + output = 'CraftItem "bucket" 1', + recipe = { + {'CraftItem "steel_ingot"', '', 'CraftItem "steel_ingot"'}, + {'', 'CraftItem "steel_ingot"', ''}, + } +}) + +minetest.register_craftitem("bucket", { + image = "bucket.png", + stack_max = 1, + liquids_pointable = true, + on_place_on_ground = craftitem_place_item, + on_use = function(item, player, pointed_thing) + if pointed_thing.type == "node" then + n = minetest.env:get_node(pointed_thing.under) + if n.name == "water_source" then + minetest.env:add_node(pointed_thing.under, {name="air"}) + player:add_to_inventory_later('CraftItem "water_bucket" 1') + return true + elseif n.name == "lava_source" then + minetest.env:add_node(pointed_thing.under, {name="air"}) + player:add_to_inventory_later('CraftItem "lava_bucket" 1') + return true + end + end + return false + end, +}) + +minetest.register_craftitem("water_bucket", { + image = "bucket_water.png", + stack_max = 1, + liquids_pointable = true, + on_place_on_ground = craftitem_place_item, + on_use = function(item, player, pointed_thing) + if pointed_thing.type == "node" then + n = minetest.env:get_node(pointed_thing.under) + if n.name == "water_source" then + -- unchanged + elseif n.name == "water_flowing" or n.name == "lava_source" or n.name == "lava_flowing" then + minetest.env:add_node(pointed_thing.under, {name="water_source"}) + else + minetest.env:add_node(pointed_thing.above, {name="water_source"}) + end + player:add_to_inventory_later('CraftItem "bucket" 1') + return true + end + return false + end, +}) + +minetest.register_craftitem("lava_bucket", { + image = "bucket_lava.png", + stack_max = 1, + liquids_pointable = true, + on_place_on_ground = craftitem_place_item, + on_use = function(item, player, pointed_thing) + if pointed_thing.type == "node" then + n = minetest.env:get_node(pointed_thing.under) + if n.name == "lava_source" then + -- unchanged + elseif n.name == "water_source" or n.name == "water_flowing" or n.name == "lava_flowing" then + minetest.env:add_node(pointed_thing.under, {name="lava_source"}) + else + minetest.env:add_node(pointed_thing.above, {name="lava_source"}) + end + player:add_to_inventory_later('CraftItem "bucket" 1') + return true + end + return false + end, +}) |