Merge pull request #1 from taikedz/patch-1

Rewrite
master
zander999 2016-10-13 17:43:02 +10:00 committed by GitHub
commit 7a3077049d
1 changed files with 61 additions and 43 deletions

104
init.lua
View File

@ -1,43 +1,61 @@
minetest.register_craftitem("taillant:taillant", {
description = "The Taillant",
inventory_image = "stone_extractor.png"
})
minetest.register_on_punchnode(function(pos, node, puncher, pointed_thing)
if puncher:get_wielded_item():get_name() == "taillant:taillant"
and node.name == "default:stone" then
minetest.set_node(pos, {name="default:cobble"})
puncher:get_inventory():add_item('main', "default:gravel")
end
end
)
minetest.register_craftitem("taillant:taillant_reverse", {
description = "The Taillant(in reverse)",
inventory_image = "stone_extractor_reverse.png"
})
minetest.register_on_punchnode(function(pos, node, puncher, pointed_thing)
if puncher:get_wielded_item():get_name() == "taillant:taillant_reverse"
and node.name == "default:cobble" then
minetest.set_node(pos, {name="default:stone"})
puncher:get_inventory():remove_item('main', "default:gravel")
end
end
)
minetest.register_craftitem("taillant:taillant_smash", {
description = "The Taillant Destroyer",
inventory_image = "stone_extractor_blase.png"
})
minetest.register_on_punchnode(function(pos, node, puncher, pointed_thing)
if puncher:get_wielded_item():get_name() == "taillant:taillant_smash"
and node.name == "default:cobble" then
minetest.remove_node(pos, {name="default:cobble"})
puncher:get_inventory():add_item('main', "default:gravel")
end
end
)
-- Supporting functions
local hasitem = function(inventory,itemstring)
for idx,x in pairs(inventory:get_list("main") ) do
if x:get_name() == itemstring then
return true
end
end
return false
end
local playdig = function(playername)
minetest.sound_play("default_dig_cracky",{
to_player = playername,
})
end
-- Item defintions
minetest.register_craftitem("taillant:taillant", {
description = "Taillant",
inventory_image = "stone_extractor.png",
stack_max = 1,
on_use = function(itemstack,puncher,pointedthing)
if pointedthing.type ~= "node" then return end
local pos = pointedthing.under
local node = minetest.get_node(pos)
if node.name == "default:stone" then
minetest.set_node(pos, {name="default:cobble"})
puncher:get_inventory():add_item('main', "default:gravel")
playdig(puncher:get_player_name())
elseif node.name == "default:cobble" then
minetest.dig_node(pos)
puncher:get_inventory():add_item('main', "default:gravel")
playdig(puncher:get_player_name())
end
return
end
})
minetest.register_craftitem("taillant:taillant_reverse", {
description = "Reverse Taillant",
inventory_image = "stone_extractor_reverse.png",
stack_max = 1,
on_use = function(itemstack,puncher,pointedthing)
if pointedthing.type ~= "node" then return end
local pos = pointedthing.under
local node = minetest.get_node(pos)
if node.name == "default:cobble"
and hasitem(puncher:get_inventory(),"default:gravel") then
playdig(puncher:get_player_name())
minetest.set_node(pos, {name="default:stone"})
puncher:get_inventory():remove_item('main', "default:gravel")
end
return
end
})