2020-04-18 15:31:17 +02:00
|
|
|
function spears_register_spear(spear_type, desc, base_damage, toughness, material)
|
2015-10-03 20:45:32 +02:00
|
|
|
|
2020-04-18 15:31:17 +02:00
|
|
|
minetest.register_tool("spears:spear_" .. spear_type, {
|
2015-10-03 20:45:32 +02:00
|
|
|
description = desc .. " spear",
|
2020-04-20 23:50:20 +02:00
|
|
|
wield_image = "spears_spear_" .. spear_type .. ".png^[transform4",
|
|
|
|
inventory_image = "spears_spear_" .. spear_type .. ".png",
|
2020-04-19 22:06:25 +02:00
|
|
|
wield_scale= {x = 1.5, y = 1.5, z = 1.5},
|
2020-04-18 15:31:17 +02:00
|
|
|
on_secondary_use = function(itemstack, user, pointed_thing)
|
2020-04-19 18:50:54 +02:00
|
|
|
spears_throw(itemstack, user, pointed_thing)
|
2022-09-28 23:44:35 +02:00
|
|
|
if not minetest.settings:get_bool("creative_mode") then
|
2015-10-03 20:45:32 +02:00
|
|
|
itemstack:take_item()
|
|
|
|
end
|
|
|
|
return itemstack
|
|
|
|
end,
|
2020-04-19 11:55:40 +02:00
|
|
|
on_place = function(itemstack, user, pointed_thing)
|
2020-04-19 18:50:54 +02:00
|
|
|
spears_throw(itemstack, user, pointed_thing)
|
2022-09-28 23:44:35 +02:00
|
|
|
if not minetest.settings:get_bool("creative_mode") then
|
2020-04-19 11:55:40 +02:00
|
|
|
itemstack:take_item()
|
|
|
|
end
|
|
|
|
return itemstack
|
|
|
|
end,
|
2015-10-03 20:45:32 +02:00
|
|
|
tool_capabilities = {
|
|
|
|
full_punch_interval = 1.5,
|
|
|
|
max_drop_level=1,
|
|
|
|
groupcaps={
|
|
|
|
cracky = {times={[3]=2}, uses=toughness, maxlevel=1},
|
|
|
|
},
|
2020-04-18 15:31:17 +02:00
|
|
|
damage_groups = {fleshy=base_damage},
|
2020-04-19 11:55:40 +02:00
|
|
|
},
|
|
|
|
sound = {breaks = "default_tool_breaks"},
|
|
|
|
groups = {flammable = 1}
|
2015-10-03 20:45:32 +02:00
|
|
|
})
|
|
|
|
|
2020-04-19 11:55:40 +02:00
|
|
|
local SPEAR_ENTITY = spears_set_entity(spear_type, base_damage, toughness)
|
2015-10-03 20:45:32 +02:00
|
|
|
|
2020-04-18 15:31:17 +02:00
|
|
|
minetest.register_entity("spears:spear_" .. spear_type .. "_entity", SPEAR_ENTITY)
|
2015-10-03 20:45:32 +02:00
|
|
|
|
|
|
|
minetest.register_craft({
|
2020-04-18 15:31:17 +02:00
|
|
|
output = 'spears:spear_' .. spear_type,
|
2015-10-03 20:45:32 +02:00
|
|
|
recipe = {
|
2022-09-28 23:44:35 +02:00
|
|
|
{"", "", material},
|
|
|
|
{"", "group:stick", ""},
|
|
|
|
{"group:stick", "", ""}
|
2015-10-03 20:45:32 +02:00
|
|
|
}
|
|
|
|
})
|
|
|
|
|
|
|
|
minetest.register_craft({
|
2020-04-18 15:31:17 +02:00
|
|
|
output = 'spears:spear_' .. spear_type,
|
2015-10-03 20:45:32 +02:00
|
|
|
recipe = {
|
2022-09-28 23:44:35 +02:00
|
|
|
{material, "", ""},
|
|
|
|
{"", "group:stick", ""},
|
|
|
|
{"", "", "group:stick"}
|
2015-10-03 20:45:32 +02:00
|
|
|
}
|
|
|
|
})
|
|
|
|
end
|
|
|
|
|
|
|
|
if not DISABLE_STONE_SPEAR then
|
|
|
|
spears_register_spear('stone', 'Stone', 4, 20, 'group:stone')
|
|
|
|
end
|
|
|
|
|
2022-10-12 23:51:07 +02:00
|
|
|
if minetest.get_modpath("pigiron") then
|
|
|
|
if not DISABLE_IRON_SPEAR then
|
|
|
|
spears_register_spear('iron', 'Iron', 5.5, 30, 'pigiron:iron_ingot')
|
|
|
|
end
|
|
|
|
if not DISABLE_STEEL_SPEAR then
|
|
|
|
spears_register_spear('steel', 'Steel', 6, 35, 'default:steel_ingot')
|
|
|
|
end
|
|
|
|
if not DISABLE_COPPER_SPEAR then
|
|
|
|
spears_register_spear('copper', 'Copper', 4.8, 30, 'default:copper_ingot')
|
|
|
|
end
|
|
|
|
if not DISABLE_BRONZE_SPEAR then
|
|
|
|
spears_register_spear('bronze', 'Bronze', 5.5, 35, 'default:bronze_ingot')
|
|
|
|
end
|
|
|
|
else
|
|
|
|
if not DISABLE_STEEL_SPEAR then
|
|
|
|
spears_register_spear('steel', 'Steel', 6, 30, 'default:steel_ingot')
|
|
|
|
end
|
|
|
|
if not DISABLE_COPPER_SPEAR then
|
|
|
|
spears_register_spear('copper', 'Copper', 5, 30, 'default:copper_ingot')
|
|
|
|
end
|
|
|
|
if not DISABLE_BRONZE_SPEAR then
|
|
|
|
spears_register_spear('bronze', 'Bronze', 6, 35, 'default:bronze_ingot')
|
|
|
|
end
|
2015-10-03 20:45:32 +02:00
|
|
|
end
|
|
|
|
|
2016-01-06 22:05:49 +01:00
|
|
|
|
2015-10-03 20:45:32 +02:00
|
|
|
if not DISABLE_OBSIDIAN_SPEAR then
|
|
|
|
spears_register_spear('obsidian', 'Obsidian', 8, 30, 'default:obsidian')
|
|
|
|
end
|
|
|
|
|
|
|
|
if not DISABLE_DIAMOND_SPEAR then
|
|
|
|
spears_register_spear('diamond', 'Diamond', 8, 40, 'default:diamond')
|
|
|
|
end
|
2020-04-19 21:53:10 +02:00
|
|
|
|
|
|
|
if not DISABLE_GOLD_SPEAR then
|
|
|
|
spears_register_spear('gold', 'Golden', 5, 40, 'default:gold_ingot')
|
|
|
|
end
|