major rework
parent
cee620ba6f
commit
3023e777b9
103
init.lua
103
init.lua
|
@ -1,42 +1,61 @@
|
|||
-- Suporting functions
|
||||
|
||||
local hasitem = function(inventory,itemstring)
|
||||
for idx,x in pairs(inventory:get_list("main") ) do
|
||||
if x:get_name() == itemstring then
|
||||
return ture
|
||||
end
|
||||
end
|
||||
return false
|
||||
end
|
||||
|
||||
-- Item defintions
|
||||
|
||||
minetest.register_craftitem("taillant:taillant", {
|
||||
description = "The Taillant",
|
||||
inventory_image = "stone_extractor.png"
|
||||
})
|
||||
|
||||
minetest.register_craftitem("taillant:taillant_reverse", {
|
||||
description = "The Reverse Taillant",
|
||||
inventory_image = "stone_extractor_reverse.png"
|
||||
})
|
||||
|
||||
-- Effects
|
||||
|
||||
minetest.register_on_punchnode(function(pos, node, puncher, pointed_thing)
|
||||
if puncher:get_wielded_item():get_name() == "taillant:taillant" then
|
||||
if node.name == "default:stone" then
|
||||
minetest.set_node(pos, {name="default:cobble"})
|
||||
puncher:get_inventory():add_item('main', "default:gravel")
|
||||
elseif node.name == "default:cobble" then
|
||||
minetest.remove_node(pos, {name="default:cobble"})
|
||||
puncher:get_inventory():add_item('main', "default:gravel")
|
||||
end
|
||||
elseif puncher:get_wielded_item():get_name() == "taillant:taillant_reverse"
|
||||
and node.name == "default:cobble"
|
||||
and hasitem(puncher:get_inventory(),"default:gravel") then
|
||||
minetest.set_node(pos, {name="default:stone"})
|
||||
puncher:get_inventory():remove_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
|
||||
})
|
||||
|
||||
|
|
Loading…
Reference in New Issue