Added broken tools

Tools now get broken when used.
You can now craft broken glass with the broken tools.
You can smelt broken glass back into glass
master
asgasg 2014-02-07 20:56:06 +00:00
parent 6f3c85332d
commit 3223e78e64
7 changed files with 142 additions and 2 deletions

144
init.lua
View File

@ -3,33 +3,107 @@ minetest.register_tool("glasstools:pick_glass", {
inventory_image = "glasstools_tool_glasspick.png",
})
minetest.register_tool("glasstools:pick_glass_broken", {
description = "Broken Glass Pickaxe",
inventory_image = "glasstools_tool_glasspick_broken.png",
})
minetest.register_tool("glasstools:shovel_glass", {
description = "Glass Shovel",
inventory_image = "glasstools_tool_glassshovel.png",
wield_image = "glasstools_tool_glassshovel.png^[transformR90",
})
minetest.register_tool("glasstools:shovel_glass_broken", {
description = "Broken Glass Shovel",
inventory_image = "glasstools_tool_glassshovel_broken.png",
wield_image = "glasstools_tool_glassshovel_broken.png^[transformR90",
})
minetest.register_tool("glasstools:axe_glass", {
description = "Glass Axe",
inventory_image = "glasstools_tool_glassaxe.png",
})
minetest.register_tool("glasstools:axe_glass_broken", {
description = "Broken Glass Axe",
inventory_image = "glasstools_tool_glassaxe_broken.png",
})
minetest.register_tool("glasstools:sword_glass", {
description = "Glass Sword",
inventory_image = "glasstools_tool_glasssword.png",
})
minetest.register_tool("glasstools:sword_glass_broken", {
description = "Broken Glass Sword",
inventory_image = "glasstools_tool_glasssword_broken.png",
})
minetest.register_tool("glasstools:hoe_glass", {
description = "Glass Hoe",
inventory_image = "glasstools_tool_glasshoe.png",
})
minetest.register_tool("glasstools:hoe_glass_broken", {
description = "Broken Glass Hoe",
inventory_image = "glasstools_tool_glasshoe_broken.png",
})
minetest.register_on_punchnode(function(pos, node, puncher, pointed_thing)
tool = puncher:get_wielded_item():get_name()
if (tool == "glasstools:pick_glass") or (tool == "glasstools:shovel_glass") or (tool == "glasstools:axe_glass") or (tool == "glasstools:sword_glass") or (tool == "glasstools:hoe_glass") and node.name ~= "air" then
if (tool == "glasstools:pick_glass") and node.name ~= "air" then
local inv = puncher:get_inventory()
inv:remove_item("main", tool)
puncher:set_wielded_item("default:stick")
puncher:set_wielded_item("glasstools:pick_glass_broken")
minetest.sound_play("default_break_glass", {pos = pointed_thing.above, gain = 1.0, max_hear_distance = 10,})
minetest.place_node(pointed_thing.above, {name = "glasstools:glass_fragments"})
end
end
)
minetest.register_on_punchnode(function(pos, node, puncher, pointed_thing)
tool = puncher:get_wielded_item():get_name()
if (tool == "glasstools:axe_glass") and node.name ~= "air" then
local inv = puncher:get_inventory()
inv:remove_item("main", tool)
puncher:set_wielded_item("glasstools:axe_glass_broken")
minetest.sound_play("default_break_glass", {pos = pointed_thing.above, gain = 1.0, max_hear_distance = 10,})
minetest.place_node(pointed_thing.above, {name = "glasstools:glass_fragments"})
end
end
)
minetest.register_on_punchnode(function(pos, node, puncher, pointed_thing)
tool = puncher:get_wielded_item():get_name()
if (tool == "glasstools:shovel_glass") and node.name ~= "air" then
local inv = puncher:get_inventory()
inv:remove_item("main", tool)
puncher:set_wielded_item("glasstools:shovel_glass_broken")
minetest.sound_play("default_break_glass", {pos = pointed_thing.above, gain = 1.0, max_hear_distance = 10,})
minetest.place_node(pointed_thing.above, {name = "glasstools:glass_fragments"})
end
end
)
minetest.register_on_punchnode(function(pos, node, puncher, pointed_thing)
tool = puncher:get_wielded_item():get_name()
if (tool == "glasstools:sword_glass") and node.name ~= "air" then
local inv = puncher:get_inventory()
inv:remove_item("main", tool)
puncher:set_wielded_item("glasstools:sword_glass_broken")
minetest.sound_play("default_break_glass", {pos = pointed_thing.above, gain = 1.0, max_hear_distance = 10,})
minetest.place_node(pointed_thing.above, {name = "glasstools:glass_fragments"})
end
end
)
minetest.register_on_punchnode(function(pos, node, puncher, pointed_thing)
tool = puncher:get_wielded_item():get_name()
if (tool == "glasstools:hoe_glass") and node.name ~= "air" then
local inv = puncher:get_inventory()
inv:remove_item("main", tool)
puncher:set_wielded_item("glasstools:hoe_glass_broken")
minetest.sound_play("default_break_glass", {pos = pointed_thing.above, gain = 1.0, max_hear_distance = 10,})
minetest.place_node(pointed_thing.above, {name = "glasstools:glass_fragments"})
end
@ -96,4 +170,70 @@ minetest.register_craft({
{"","group:stick"},
{"","group:stick"},
}
})
minetest.register_craftitem("glasstools:glass_broken", {
description = "Broken Glass",
inventory_image = "glasstools_glass_broken.png",
})
minetest.register_craft({
type = "cooking",
output = "default:glass",
recipe = "glasstools:glass_broken",
})
minetest.register_craft({
output = "glasstools:glass_broken",
recipe = {
{"glasstools:pick_glass_broken"},
},
replacements = {
{"glasstools:pick_glass_broken", "default:stick"},
},
})
minetest.register_craft({
output = "glasstools:glass_broken",
recipe = {
{"glasstools:axe_glass_broken"},
},
replacements = {
{"glasstools:axe_glass_broken", "default:stick"},
},
})
minetest.register_craft({
output = "glasstools:glass_broken",
recipe = {
{"glasstools:shovel_glass_broken"},
},
replacements = {
{"glasstools:shovel_glass_broken", "default:stick"},
},
})
minetest.register_craft({
output = "glasstools:glass_broken",
recipe = {
{"glasstools:sword_glass_broken"},
},
replacements = {
{"glasstools:sword_glass_broken", "default:stick"},
},
})
minetest.register_craft({
output = "glasstools:glass_broken",
recipe = {
{"glasstools:hoe_glass_broken"},
},
replacements = {
{"glasstools:hoe_glass_broken", "default:stick"},
},
})

Binary file not shown.

After

Width:  |  Height:  |  Size: 276 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 204 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 296 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 283 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 235 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 285 B