2017-10-29 16:32:37 -07:00
|
|
|
-- Crafitems
|
|
|
|
--
|
|
|
|
|
|
|
|
minetest.register_craftitem("lavastuff:ingot", {
|
2018-10-17 16:34:43 -07:00
|
|
|
description = "Lava ingot",
|
|
|
|
inventory_image = "lavastuff_ingot.png",
|
2017-10-28 01:06:04 -07:00
|
|
|
})
|
2017-11-16 10:45:07 +10:00
|
|
|
|
|
|
|
minetest.register_craft({
|
|
|
|
type = 'shapeless',
|
|
|
|
output = 'lavastuff:ingot',
|
|
|
|
recipe = {"default:mese_crystal", "lavastuff:orb"}
|
2017-10-27 12:29:35 -07:00
|
|
|
})
|
2017-10-29 16:32:37 -07:00
|
|
|
|
|
|
|
--
|
|
|
|
-- Crafitem Crafts
|
|
|
|
--
|
|
|
|
|
2017-11-16 10:45:07 +10:00
|
|
|
if not minetest.get_modpath("mobs_monster") then
|
|
|
|
minetest.register_craftitem("lavastuff:orb", {
|
2018-10-17 16:34:43 -07:00
|
|
|
description = "Lava orb",
|
|
|
|
inventory_image = "zmobs_lava_orb.png"
|
2017-11-16 10:45:07 +10:00
|
|
|
})
|
|
|
|
|
|
|
|
minetest.register_alias("mobs:lava_orb", "lavastuff:orb")
|
|
|
|
|
|
|
|
minetest.register_craft({
|
2018-10-17 16:34:43 -07:00
|
|
|
output = 'lavastuff:orb',
|
|
|
|
recipe = {
|
|
|
|
{"bucket:bucket_lava", "bucket:bucket_lava", "bucket:bucket_lava"},
|
|
|
|
{"bucket:bucket_lava", "default:mese_crystal", "bucket:bucket_lava"},
|
|
|
|
{"bucket:bucket_lava", "bucket:bucket_lava", "bucket:bucket_lava"}
|
|
|
|
}
|
2017-11-16 10:45:07 +10:00
|
|
|
})
|
|
|
|
else
|
|
|
|
minetest.register_alias("lavastuff:orb", "mobs:lava_orb")
|
|
|
|
end
|
2017-10-29 16:32:37 -07:00
|
|
|
|
|
|
|
--
|
|
|
|
-- Tools
|
|
|
|
--
|
|
|
|
|
2017-10-08 17:49:28 -07:00
|
|
|
minetest.register_tool("lavastuff:sword", {
|
2018-10-17 16:34:43 -07:00
|
|
|
description = "Lava Sword",
|
|
|
|
inventory_image = "lavastuff_sword.png",
|
|
|
|
tool_capabilities = {
|
|
|
|
full_punch_interval = 0.6,
|
|
|
|
max_drop_level=1,
|
|
|
|
groupcaps={
|
|
|
|
snappy={times={[1]=1.90, [2]=0.90, [3]=0.30}, uses=50, maxlevel=3},
|
|
|
|
},
|
|
|
|
damage_groups = {fleshy=8},
|
|
|
|
},
|
|
|
|
sound = {breaks = "default_tool_breaks"},
|
2017-10-08 17:49:28 -07:00
|
|
|
})
|
2018-10-17 16:34:43 -07:00
|
|
|
|
2017-11-16 11:43:55 +10:00
|
|
|
if not minetest.get_modpath("mobs_monster") then
|
2018-10-17 16:34:43 -07:00
|
|
|
minetest.register_alias("mobs:pick_lava", "lavastuff:pick")
|
2017-11-16 11:43:55 +10:00
|
|
|
|
2018-10-17 16:34:43 -07:00
|
|
|
minetest.register_tool("lavastuff:pick", {
|
|
|
|
description = ("Lava Pickaxe"),
|
|
|
|
inventory_image = "lavastuff_pick.png",
|
|
|
|
tool_capabilities = {
|
|
|
|
full_punch_interval = 0.7,
|
|
|
|
max_drop_level=3,
|
|
|
|
groupcaps={
|
|
|
|
cracky = {times={[1]=1.80, [2]=0.80, [3]=0.40}, uses=50, maxlevel=3},
|
|
|
|
},
|
|
|
|
damage_groups = {fleshy=5},
|
|
|
|
},
|
|
|
|
})
|
2017-11-16 11:43:55 +10:00
|
|
|
|
2018-10-17 16:34:43 -07:00
|
|
|
-- Lava Pick (restores autosmelt functionality)
|
|
|
|
|
|
|
|
local old_handle_node_drops = minetest.handle_node_drops
|
|
|
|
|
|
|
|
function minetest.handle_node_drops(pos, drops, digger)
|
|
|
|
if digger:get_wielded_item():get_name() ~= ("lavastuff:pick") then -- are we holding Lava Pick?
|
|
|
|
return old_handle_node_drops(pos, drops, digger)
|
|
|
|
end
|
|
|
|
|
|
|
|
-- reset new smelted drops
|
|
|
|
local hot_drops = {}
|
|
|
|
|
|
|
|
-- loop through current node drops
|
|
|
|
for _, drop in pairs(drops) do -- get cooked output of current drops
|
|
|
|
local stack = ItemStack(drop)
|
|
|
|
local output = minetest.get_craft_result({
|
|
|
|
method = "cooking",
|
|
|
|
width = 1,
|
|
|
|
items = {drop}
|
|
|
|
})
|
|
|
|
|
|
|
|
-- if we have cooked result then add to new list
|
|
|
|
if output and output.item and not output.item:is_empty() then
|
|
|
|
table.insert(hot_drops,
|
|
|
|
ItemStack({
|
|
|
|
name = output.item:get_name(),
|
|
|
|
count = output.item:to_table().count,
|
|
|
|
})
|
|
|
|
)
|
|
|
|
else -- if not then return normal drops
|
|
|
|
table.insert(hot_drops, stack)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
return old_handle_node_drops(pos, hot_drops, digger)
|
|
|
|
end
|
2017-11-16 11:43:55 +10:00
|
|
|
else
|
2018-10-17 16:34:43 -07:00
|
|
|
minetest.register_alias("lavastuff:pick", "mobs:pick_lava")
|
|
|
|
|
|
|
|
minetest.register_tool(":mobs:pick_lava", {
|
|
|
|
description = ("Lava Pickaxe"),
|
|
|
|
inventory_image = "lavastuff_pick.png",
|
|
|
|
tool_capabilities = {
|
|
|
|
full_punch_interval = 0.7,
|
|
|
|
max_drop_level=3,
|
|
|
|
groupcaps={
|
|
|
|
cracky = {times={[1]=1.80, [2]=0.80, [3]=0.40}, uses=50, maxlevel=3},
|
|
|
|
},
|
|
|
|
damage_groups = {fleshy=5},
|
|
|
|
},
|
|
|
|
})
|
2017-11-15 15:55:40 -08:00
|
|
|
end
|
2018-10-17 16:34:43 -07:00
|
|
|
|
2017-10-29 16:32:37 -07:00
|
|
|
minetest.register_tool("lavastuff:shovel", {
|
2018-10-17 16:34:43 -07:00
|
|
|
description = "Lava Shovel",
|
|
|
|
inventory_image = "lavastuff_shovel.png",
|
|
|
|
wield_image = "lavastuff_shovel.png^[transformR90",
|
|
|
|
tool_capabilities = {
|
|
|
|
full_punch_interval = 0.7,
|
|
|
|
max_drop_level=1,
|
|
|
|
groupcaps={
|
|
|
|
crumbly = {times={[1]=1.0, [2]=0.40, [3]=0.20}, uses=50, maxlevel=3},
|
|
|
|
},
|
|
|
|
damage_groups = {fleshy=4},
|
|
|
|
},
|
|
|
|
sound = {breaks = "default_tool_breaks"},
|
2017-10-29 16:32:37 -07:00
|
|
|
})
|
2018-10-17 16:34:43 -07:00
|
|
|
|
2017-10-29 16:32:37 -07:00
|
|
|
minetest.register_tool("lavastuff:axe", {
|
2018-10-17 16:34:43 -07:00
|
|
|
description = "Lava Axe",
|
|
|
|
inventory_image = "lavastuff_axe.png",
|
|
|
|
tool_capabilities = {
|
|
|
|
full_punch_interval = 0.7,
|
|
|
|
max_drop_level=1,
|
|
|
|
groupcaps={
|
|
|
|
choppy={times={[1]=2.0, [2]=0.80, [3]=0.40}, uses=50, maxlevel=3},
|
|
|
|
},
|
|
|
|
damage_groups = {fleshy=7},
|
|
|
|
},
|
|
|
|
sound = {breaks = "default_tool_breaks"},
|
2017-10-29 16:32:37 -07:00
|
|
|
})
|
|
|
|
|
|
|
|
--
|
|
|
|
-- Tool Crafts
|
|
|
|
--
|
|
|
|
|
2017-10-08 17:49:28 -07:00
|
|
|
minetest.register_craft({
|
2018-10-17 16:34:43 -07:00
|
|
|
output = 'lavastuff:sword',
|
|
|
|
recipe = {
|
|
|
|
{'lavastuff:ingot'},
|
|
|
|
{'lavastuff:ingot'},
|
|
|
|
{'default:obsidian_shard'},
|
|
|
|
}
|
2017-10-08 17:49:28 -07:00
|
|
|
})
|
2018-10-17 16:34:43 -07:00
|
|
|
|
2017-11-15 15:55:40 -08:00
|
|
|
minetest.register_craft({
|
2018-10-17 16:34:43 -07:00
|
|
|
output = "lavastuff:pick",
|
|
|
|
recipe = {
|
|
|
|
{"lavastuff:ingot", "lavastuff:ingot", "lavastuff:ingot"},
|
|
|
|
{"", "default:obsidian_shard", ""},
|
|
|
|
{"", "default:obsidian_shard", ""},
|
|
|
|
}
|
2017-11-15 15:55:40 -08:00
|
|
|
})
|
2018-10-17 16:34:43 -07:00
|
|
|
|
2017-10-29 16:32:37 -07:00
|
|
|
minetest.register_craft({
|
2018-10-17 16:34:43 -07:00
|
|
|
output = 'lavastuff:shovel',
|
|
|
|
recipe = {
|
|
|
|
{'lavastuff:ingot'},
|
|
|
|
{'default:obsidian_shard'},
|
|
|
|
{'default:obsidian_shard'},
|
|
|
|
}
|
2017-10-08 17:49:28 -07:00
|
|
|
})
|
2018-10-17 16:34:43 -07:00
|
|
|
|
2017-10-08 17:49:28 -07:00
|
|
|
minetest.register_craft({
|
2018-10-17 16:34:43 -07:00
|
|
|
output = 'lavastuff:axe',
|
|
|
|
recipe = {
|
|
|
|
{'lavastuff:ingot', 'lavastuff:ingot', ''},
|
|
|
|
{'lavastuff:ingot', 'default:obsidian_shard', ''},
|
|
|
|
{'', 'default:obsidian_shard', ''},
|
|
|
|
}
|
2017-10-08 17:49:28 -07:00
|
|
|
})
|
2018-10-17 16:34:43 -07:00
|
|
|
|
2017-11-16 11:43:55 +10:00
|
|
|
if minetest.get_modpath("mobs_monster") then
|
2018-10-17 16:34:43 -07:00
|
|
|
minetest.clear_craft({
|
|
|
|
recipe = {
|
|
|
|
{"mobs:lava_orb", "mobs:lava_orb", "mobs:lava_orb"},
|
|
|
|
{"", "default:obsidian_shard", ""},
|
|
|
|
{"", "default:obsidian_shard", ""},
|
|
|
|
}
|
|
|
|
})
|
2017-11-15 15:55:40 -08:00
|
|
|
end
|
2017-10-29 16:32:37 -07:00
|
|
|
|
|
|
|
--
|
|
|
|
-- Armor
|
|
|
|
--
|
|
|
|
|
2017-11-15 23:09:46 -08:00
|
|
|
if minetest.get_modpath("3d_armor") then
|
2018-10-17 16:42:23 -07:00
|
|
|
armor:register_armor("lavastuff:helmet", {
|
2018-10-17 16:34:43 -07:00
|
|
|
description = "Lava Helmet",
|
|
|
|
inventory_image = "lavastuff_inv_helmet.png",
|
2018-10-17 16:42:23 -07:00
|
|
|
groups = {armor_head=17, armor_heal=10, armor_use=100, armor_fire=10},
|
|
|
|
armor_groups = {fleshy=20},
|
|
|
|
damage_groups = {cracky=2, snappy=1, level=3},
|
2018-10-17 16:34:43 -07:00
|
|
|
wear = 0,
|
|
|
|
})
|
|
|
|
|
2018-10-17 16:42:23 -07:00
|
|
|
armor:register_armor("lavastuff:chestplate", {
|
2018-10-17 16:34:43 -07:00
|
|
|
description = "Lava Chestplate",
|
|
|
|
inventory_image = "lavastuff_inv_chestplate.png",
|
|
|
|
groups = {armor_torso=10, armor_heal=10, armor_use=100, armor_fire=10},
|
2018-10-17 16:42:23 -07:00
|
|
|
armor_groups = {fleshy=20},
|
|
|
|
damage_groups = {cracky=2, snappy=1, level=3},
|
2018-10-17 16:34:43 -07:00
|
|
|
wear = 0,
|
|
|
|
})
|
|
|
|
|
2018-10-17 16:42:23 -07:00
|
|
|
armor:register_armor("lavastuff:leggings", {
|
2018-10-17 16:34:43 -07:00
|
|
|
description = "Lava Leggings",
|
|
|
|
inventory_image = "lavastuff_inv_leggings.png",
|
|
|
|
groups = {armor_legs=10, armor_heal=10, armor_use=100, armor_fire=10},
|
2018-10-17 16:42:23 -07:00
|
|
|
armor_groups = {fleshy=20},
|
|
|
|
damage_groups = {cracky=2, snappy=1, level=3},
|
2018-10-17 16:34:43 -07:00
|
|
|
wear = 0,
|
|
|
|
})
|
|
|
|
|
2018-10-17 16:42:23 -07:00
|
|
|
armor:register_armor("lavastuff:boots", {
|
2018-10-17 16:34:43 -07:00
|
|
|
description = "Lava Boots",
|
|
|
|
inventory_image = "lavastuff_inv_boots.png",
|
|
|
|
groups = {armor_feet=10, armor_heal=10, armor_use=100, armor_fire=10},
|
2018-10-17 16:42:23 -07:00
|
|
|
armor_groups = {fleshy=17},
|
|
|
|
damage_groups = {cracky=2, snappy=1, level=3},
|
2018-10-17 16:34:43 -07:00
|
|
|
wear = 0,
|
|
|
|
})
|
|
|
|
|
2018-10-17 16:42:23 -07:00
|
|
|
armor:register_armor("lavastuff:shield", {
|
2018-10-17 16:34:43 -07:00
|
|
|
description = "Lava Shield",
|
|
|
|
inventory_image = "lavastuff_inven_shield.png",
|
|
|
|
groups = {armor_shield=10, armor_heal=10, armor_use=100, armor_fire=10},
|
2018-10-17 16:42:23 -07:00
|
|
|
armor_groups = {fleshy=20},
|
|
|
|
damage_groups = {cracky=2, snappy=1, level=3},
|
2018-10-17 16:34:43 -07:00
|
|
|
wear = 0,
|
|
|
|
})
|
2017-11-15 23:09:46 -08:00
|
|
|
end
|
2017-10-29 16:32:37 -07:00
|
|
|
--
|
|
|
|
-- Armor Crafts
|
|
|
|
--
|
|
|
|
|
2017-11-15 23:09:46 -08:00
|
|
|
if minetest.get_modpath("3d_armor") then
|
2018-10-17 16:34:43 -07:00
|
|
|
minetest.register_craft({
|
|
|
|
output = 'lavastuff:helmet',
|
|
|
|
recipe = {
|
|
|
|
{'lavastuff:ingot', 'lavastuff:ingot', 'lavastuff:ingot'},
|
|
|
|
{'lavastuff:ingot', '', 'lavastuff:ingot'},
|
|
|
|
{'', '', ''},
|
|
|
|
}
|
|
|
|
})
|
|
|
|
|
|
|
|
minetest.register_craft({
|
|
|
|
output = 'lavastuff:chestplate',
|
|
|
|
recipe = {
|
|
|
|
{'lavastuff:ingot', '', 'lavastuff:ingot'},
|
|
|
|
{'lavastuff:ingot', 'lavastuff:ingot', 'lavastuff:ingot'},
|
|
|
|
{'lavastuff:ingot', 'lavastuff:ingot', 'lavastuff:ingot'},
|
|
|
|
}
|
|
|
|
})
|
|
|
|
|
|
|
|
minetest.register_craft({
|
|
|
|
output = 'lavastuff:leggings',
|
|
|
|
recipe = {
|
|
|
|
{'lavastuff:ingot', 'lavastuff:ingot', 'lavastuff:ingot'},
|
|
|
|
{'lavastuff:ingot', '', 'lavastuff:ingot'},
|
|
|
|
{'lavastuff:ingot', '', 'lavastuff:ingot'},
|
|
|
|
}
|
|
|
|
})
|
|
|
|
|
|
|
|
minetest.register_craft({
|
|
|
|
output = 'lavastuff:boots',
|
|
|
|
recipe = {
|
|
|
|
{'lavastuff:ingot', '', 'lavastuff:ingot'},
|
|
|
|
{'lavastuff:ingot', '', 'lavastuff:ingot'},
|
|
|
|
}
|
|
|
|
})
|
|
|
|
|
|
|
|
minetest.register_craft({
|
|
|
|
output = 'lavastuff:shield',
|
|
|
|
recipe = {
|
|
|
|
{'lavastuff:ingot', 'lavastuff:ingot', 'lavastuff:ingot'},
|
|
|
|
{'lavastuff:ingot', 'lavastuff:ingot', 'lavastuff:ingot'},
|
|
|
|
{'', 'lavastuff:ingot', ''},
|
|
|
|
}
|
|
|
|
})
|
2017-11-15 23:09:46 -08:00
|
|
|
end
|
2017-10-29 16:32:37 -07:00
|
|
|
|
2018-10-17 16:34:43 -07:00
|
|
|
--
|
|
|
|
-- Nodes
|
|
|
|
--
|
|
|
|
|
|
|
|
minetest.register_node ("lavastuff:block", {
|
|
|
|
description = "Lava Block",
|
|
|
|
tiles = {"lavastuff_block.png"},
|
|
|
|
is_ground_content = false,
|
|
|
|
sounds = default.node_sound_stone_defaults(),
|
|
|
|
groups = {cracky = 1, level = 2},
|
|
|
|
light_source = default.LIGHT_MAX,
|
|
|
|
})
|
|
|
|
|
|
|
|
minetest.register_node("lavastuff:stair", {
|
2017-10-29 16:32:37 -07:00
|
|
|
description = 'Lava Stair',
|
|
|
|
drawtype = "mesh",
|
|
|
|
mesh = "stairs_stair.obj",
|
|
|
|
tiles = {"lavastuff_block.png"},
|
|
|
|
paramtype = "light",
|
|
|
|
paramtype2 = "facedir",
|
|
|
|
is_ground_content = false,
|
|
|
|
groups = {cracky = 1, level = 2},
|
|
|
|
light_source = default.LIGHT_MAX,
|
|
|
|
selection_box = {
|
2018-10-17 16:34:43 -07:00
|
|
|
type = "fixed",
|
|
|
|
fixed = {
|
2017-10-29 16:32:37 -07:00
|
|
|
{-0.5, -0.5, -0.5, 0.5, 0, 0.5},
|
|
|
|
{-0.5, 0, 0, 0.5, 0.5, 0.5},
|
2018-10-17 16:34:43 -07:00
|
|
|
},
|
2017-10-29 16:32:37 -07:00
|
|
|
},
|
|
|
|
collision_box = {
|
2018-10-17 16:34:43 -07:00
|
|
|
type = "fixed",
|
|
|
|
fixed = {
|
2017-10-29 16:32:37 -07:00
|
|
|
{-0.5, -0.5, -0.5, 0.5, 0, 0.5},
|
|
|
|
{-0.5, 0, 0, 0.5, 0.5, 0.5},
|
2018-10-17 16:34:43 -07:00
|
|
|
},
|
2017-10-29 16:32:37 -07:00
|
|
|
},
|
2018-10-17 16:34:43 -07:00
|
|
|
})
|
2017-10-29 16:32:37 -07:00
|
|
|
|
2018-10-17 16:34:43 -07:00
|
|
|
minetest.register_node("lavastuff:slab", {
|
|
|
|
description = "Lava Slab",
|
|
|
|
drawtype = "nodebox",
|
|
|
|
tiles = {"lavastuff_block.png"},
|
|
|
|
paramtype = "light",
|
|
|
|
groups = {cracky = 1, level = 2},
|
|
|
|
light_source = default.LIGHT_MAX,
|
|
|
|
node_box = {
|
|
|
|
type = "fixed",
|
|
|
|
fixed = {-0.5, -0.5, -0.5, 0.5, 0.0, 0.5}
|
|
|
|
}
|
|
|
|
})
|
|
|
|
|
|
|
|
--
|
|
|
|
-- Node Crafts
|
|
|
|
--
|
|
|
|
|
|
|
|
minetest.register_craft({
|
|
|
|
output = 'lavastuff:block',
|
|
|
|
recipe = {
|
|
|
|
{'lavastuff:ingot', 'lavastuff:ingot', 'lavastuff:ingot'},
|
|
|
|
{'lavastuff:ingot', 'lavastuff:ingot', 'lavastuff:ingot'},
|
|
|
|
{'lavastuff:ingot', 'lavastuff:ingot', 'lavastuff:ingot'},
|
|
|
|
}
|
|
|
|
})
|
2017-10-29 16:32:37 -07:00
|
|
|
|
2018-10-17 16:34:43 -07:00
|
|
|
minetest.register_craft ({
|
|
|
|
output = "lavastuff:stair 6",
|
|
|
|
recipe = {
|
|
|
|
{'', '', 'lavastuff:block'},
|
|
|
|
{'', 'lavastuff:block', 'lavastuff:block'},
|
|
|
|
{'lavastuff:block', 'lavastuff:block', 'lavastuff:block'}
|
|
|
|
}
|
|
|
|
})
|
|
|
|
|
|
|
|
minetest.register_craft ({
|
|
|
|
type = 'shapeless',
|
|
|
|
output = "lavastuff:slab 4",
|
|
|
|
recipe = {'lavastuff:block', 'lavastuff:block'}
|
|
|
|
})
|
2017-11-16 20:16:01 -08:00
|
|
|
|
|
|
|
--
|
|
|
|
--Toolranks support
|
|
|
|
--
|
|
|
|
|
|
|
|
if minetest.get_modpath("toolranks") then
|
|
|
|
minetest.override_item("lavastuff:sword", {
|
2018-10-17 16:34:43 -07:00
|
|
|
description = toolranks.create_description("Lava Sword", 0, 1),
|
|
|
|
original_description = "Lava Sword",
|
|
|
|
after_use = toolranks.new_afteruse
|
|
|
|
})
|
|
|
|
|
|
|
|
minetest.override_item("lavastuff:pick", {
|
|
|
|
description = toolranks.create_description("Lava Pickaxe", 0, 1),
|
|
|
|
original_description = "Lava Pickaxe",
|
|
|
|
after_use = toolranks.new_afteruse
|
|
|
|
})
|
|
|
|
|
|
|
|
minetest.override_item("lavastuff:axe", {
|
|
|
|
description = toolranks.create_description("Lava Axe", 0, 1),
|
|
|
|
original_description = "Lava Axe",
|
|
|
|
after_use = toolranks.new_afteruse
|
|
|
|
})
|
|
|
|
|
|
|
|
minetest.override_item("lavastuff:shovel", {
|
|
|
|
description = toolranks.create_description("Lava Shovel", 0, 1),
|
|
|
|
original_description = "Lava Shovel",
|
|
|
|
after_use = toolranks.new_afteruse
|
|
|
|
})
|
2017-11-16 20:16:01 -08:00
|
|
|
end
|