Split init.lua into several files
This commit is contained in:
parent
a65f5b1564
commit
ea6d504b01
742
mods/default/crafting.lua
Normal file
742
mods/default/crafting.lua
Normal file
@ -0,0 +1,742 @@
|
|||||||
|
-- mods/default/crafting.lua
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'default:wood 4',
|
||||||
|
recipe = {
|
||||||
|
{'default:tree'},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'default:junglewood 4',
|
||||||
|
recipe = {
|
||||||
|
{'default:jungletree'},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'default:stick 4',
|
||||||
|
recipe = {
|
||||||
|
{'group:wood'},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'default:fence_wood 2',
|
||||||
|
recipe = {
|
||||||
|
{'default:stick', 'default:stick', 'default:stick'},
|
||||||
|
{'default:stick', 'default:stick', 'default:stick'},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'default:sign_wall',
|
||||||
|
recipe = {
|
||||||
|
{'group:wood', 'group:wood', 'group:wood'},
|
||||||
|
{'group:wood', 'group:wood', 'group:wood'},
|
||||||
|
{'', 'default:stick', ''},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'default:torch 4',
|
||||||
|
recipe = {
|
||||||
|
{'default:coal_lump'},
|
||||||
|
{'default:stick'},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'default:pick_wood',
|
||||||
|
recipe = {
|
||||||
|
{'group:wood', 'group:wood', 'group:wood'},
|
||||||
|
{'', 'default:stick', ''},
|
||||||
|
{'', 'default:stick', ''},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'default:pick_stone',
|
||||||
|
recipe = {
|
||||||
|
{'group:stone', 'group:stone', 'group:stone'},
|
||||||
|
{'', 'default:stick', ''},
|
||||||
|
{'', 'default:stick', ''},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'default:pick_steel',
|
||||||
|
recipe = {
|
||||||
|
{'default:steel_ingot', 'default:steel_ingot', 'default:steel_ingot'},
|
||||||
|
{'', 'default:stick', ''},
|
||||||
|
{'', 'default:stick', ''},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'default:pick_bronze',
|
||||||
|
recipe = {
|
||||||
|
{'default:bronze_ingot', 'default:bronze_ingot', 'default:bronze_ingot'},
|
||||||
|
{'', 'default:stick', ''},
|
||||||
|
{'', 'default:stick', ''},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'default:pick_mese',
|
||||||
|
recipe = {
|
||||||
|
{'default:mese_crystal', 'default:mese_crystal', 'default:mese_crystal'},
|
||||||
|
{'', 'default:stick', ''},
|
||||||
|
{'', 'default:stick', ''},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'default:pick_diamond',
|
||||||
|
recipe = {
|
||||||
|
{'default:diamond', 'default:diamond', 'default:diamond'},
|
||||||
|
{'', 'default:stick', ''},
|
||||||
|
{'', 'default:stick', ''},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'default:shovel_wood',
|
||||||
|
recipe = {
|
||||||
|
{'group:wood'},
|
||||||
|
{'default:stick'},
|
||||||
|
{'default:stick'},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'default:shovel_stone',
|
||||||
|
recipe = {
|
||||||
|
{'group:stone'},
|
||||||
|
{'default:stick'},
|
||||||
|
{'default:stick'},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'default:shovel_steel',
|
||||||
|
recipe = {
|
||||||
|
{'default:steel_ingot'},
|
||||||
|
{'default:stick'},
|
||||||
|
{'default:stick'},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'default:shovel_bronze',
|
||||||
|
recipe = {
|
||||||
|
{'default:bronze_ingot'},
|
||||||
|
{'default:stick'},
|
||||||
|
{'default:stick'},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'default:shovel_mese',
|
||||||
|
recipe = {
|
||||||
|
{'default:mese_crystal'},
|
||||||
|
{'default:stick'},
|
||||||
|
{'default:stick'},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'default:shovel_diamond',
|
||||||
|
recipe = {
|
||||||
|
{'default:diamond'},
|
||||||
|
{'default:stick'},
|
||||||
|
{'default:stick'},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'default:axe_wood',
|
||||||
|
recipe = {
|
||||||
|
{'group:wood', 'group:wood'},
|
||||||
|
{'group:wood', 'default:stick'},
|
||||||
|
{'', 'default:stick'},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'default:axe_stone',
|
||||||
|
recipe = {
|
||||||
|
{'group:stone', 'group:stone'},
|
||||||
|
{'group:stone', 'default:stick'},
|
||||||
|
{'', 'default:stick'},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'default:axe_steel',
|
||||||
|
recipe = {
|
||||||
|
{'default:steel_ingot', 'default:steel_ingot'},
|
||||||
|
{'default:steel_ingot', 'default:stick'},
|
||||||
|
{'', 'default:stick'},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'default:axe_bronze',
|
||||||
|
recipe = {
|
||||||
|
{'default:bronze_ingot', 'default:bronze_ingot'},
|
||||||
|
{'default:bronze_ingot', 'default:stick'},
|
||||||
|
{'', 'default:stick'},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'default:axe_mese',
|
||||||
|
recipe = {
|
||||||
|
{'default:mese_crystal', 'default:mese_crystal'},
|
||||||
|
{'default:mese_crystal', 'default:stick'},
|
||||||
|
{'', 'default:stick'},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'default:axe_diamond',
|
||||||
|
recipe = {
|
||||||
|
{'default:diamond', 'default:diamond'},
|
||||||
|
{'default:diamond', 'default:stick'},
|
||||||
|
{'', 'default:stick'},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'default:sword_wood',
|
||||||
|
recipe = {
|
||||||
|
{'group:wood'},
|
||||||
|
{'group:wood'},
|
||||||
|
{'default:stick'},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'default:sword_stone',
|
||||||
|
recipe = {
|
||||||
|
{'group:stone'},
|
||||||
|
{'group:stone'},
|
||||||
|
{'default:stick'},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'default:sword_steel',
|
||||||
|
recipe = {
|
||||||
|
{'default:steel_ingot'},
|
||||||
|
{'default:steel_ingot'},
|
||||||
|
{'default:stick'},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'default:sword_bronze',
|
||||||
|
recipe = {
|
||||||
|
{'default:bronze_ingot'},
|
||||||
|
{'default:bronze_ingot'},
|
||||||
|
{'default:stick'},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'default:sword_mese',
|
||||||
|
recipe = {
|
||||||
|
{'default:mese_crystal'},
|
||||||
|
{'default:mese_crystal'},
|
||||||
|
{'default:stick'},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'default:sword_diamond',
|
||||||
|
recipe = {
|
||||||
|
{'default:diamond'},
|
||||||
|
{'default:diamond'},
|
||||||
|
{'default:stick'},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'default:rail 15',
|
||||||
|
recipe = {
|
||||||
|
{'default:steel_ingot', '', 'default:steel_ingot'},
|
||||||
|
{'default:steel_ingot', 'default:stick', 'default:steel_ingot'},
|
||||||
|
{'default:steel_ingot', '', 'default:steel_ingot'},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'default:chest',
|
||||||
|
recipe = {
|
||||||
|
{'group:wood', 'group:wood', 'group:wood'},
|
||||||
|
{'group:wood', '', 'group:wood'},
|
||||||
|
{'group:wood', 'group:wood', 'group:wood'},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'default:chest_locked',
|
||||||
|
recipe = {
|
||||||
|
{'group:wood', 'group:wood', 'group:wood'},
|
||||||
|
{'group:wood', 'default:steel_ingot', 'group:wood'},
|
||||||
|
{'group:wood', 'group:wood', 'group:wood'},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'default:furnace',
|
||||||
|
recipe = {
|
||||||
|
{'group:stone', 'group:stone', 'group:stone'},
|
||||||
|
{'group:stone', '', 'group:stone'},
|
||||||
|
{'group:stone', 'group:stone', 'group:stone'},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
type = "shapeless",
|
||||||
|
output = "default:bronze_ingot",
|
||||||
|
recipe = {"default:steel_ingot", "default:copper_ingot"},
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'default:coalblock',
|
||||||
|
recipe = {
|
||||||
|
{'default:coal_lump', 'default:coal_lump', 'default:coal_lump'},
|
||||||
|
{'default:coal_lump', 'default:coal_lump', 'default:coal_lump'},
|
||||||
|
{'default:coal_lump', 'default:coal_lump', 'default:coal_lump'},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'default:coal_lump 9',
|
||||||
|
recipe = {
|
||||||
|
{'default:coalblock'},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'default:steelblock',
|
||||||
|
recipe = {
|
||||||
|
{'default:steel_ingot', 'default:steel_ingot', 'default:steel_ingot'},
|
||||||
|
{'default:steel_ingot', 'default:steel_ingot', 'default:steel_ingot'},
|
||||||
|
{'default:steel_ingot', 'default:steel_ingot', 'default:steel_ingot'},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'default:steel_ingot 9',
|
||||||
|
recipe = {
|
||||||
|
{'default:steelblock'},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'default:copperblock',
|
||||||
|
recipe = {
|
||||||
|
{'default:copper_ingot', 'default:copper_ingot', 'default:copper_ingot'},
|
||||||
|
{'default:copper_ingot', 'default:copper_ingot', 'default:copper_ingot'},
|
||||||
|
{'default:copper_ingot', 'default:copper_ingot', 'default:copper_ingot'},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'default:copper_ingot 9',
|
||||||
|
recipe = {
|
||||||
|
{'default:copperblock'},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'default:bronzeblock',
|
||||||
|
recipe = {
|
||||||
|
{'default:bronze_ingot', 'default:bronze_ingot', 'default:bronze_ingot'},
|
||||||
|
{'default:bronze_ingot', 'default:bronze_ingot', 'default:bronze_ingot'},
|
||||||
|
{'default:bronze_ingot', 'default:bronze_ingot', 'default:bronze_ingot'},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'default:bronze_ingot 9',
|
||||||
|
recipe = {
|
||||||
|
{'default:bronzeblock'},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'default:goldblock',
|
||||||
|
recipe = {
|
||||||
|
{'default:gold_ingot', 'default:gold_ingot', 'default:gold_ingot'},
|
||||||
|
{'default:gold_ingot', 'default:gold_ingot', 'default:gold_ingot'},
|
||||||
|
{'default:gold_ingot', 'default:gold_ingot', 'default:gold_ingot'},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'default:gold_ingot 9',
|
||||||
|
recipe = {
|
||||||
|
{'default:goldblock'},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'default:diamondblock',
|
||||||
|
recipe = {
|
||||||
|
{'default:diamond', 'default:diamond', 'default:diamond'},
|
||||||
|
{'default:diamond', 'default:diamond', 'default:diamond'},
|
||||||
|
{'default:diamond', 'default:diamond', 'default:diamond'},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'default:diamond 9',
|
||||||
|
recipe = {
|
||||||
|
{'default:diamondblock'},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'default:sandstone',
|
||||||
|
recipe = {
|
||||||
|
{'group:sand', 'group:sand'},
|
||||||
|
{'group:sand', 'group:sand'},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'default:sand 4',
|
||||||
|
recipe = {
|
||||||
|
{'default:sandstone'},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'default:sandstonebrick',
|
||||||
|
recipe = {
|
||||||
|
{'default:sandstone', 'default:sandstone'},
|
||||||
|
{'default:sandstone', 'default:sandstone'},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'default:clay',
|
||||||
|
recipe = {
|
||||||
|
{'default:clay_lump', 'default:clay_lump'},
|
||||||
|
{'default:clay_lump', 'default:clay_lump'},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'default:brick',
|
||||||
|
recipe = {
|
||||||
|
{'default:clay_brick', 'default:clay_brick'},
|
||||||
|
{'default:clay_brick', 'default:clay_brick'},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'default:clay_brick 4',
|
||||||
|
recipe = {
|
||||||
|
{'default:brick'},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'default:paper',
|
||||||
|
recipe = {
|
||||||
|
{'default:papyrus', 'default:papyrus', 'default:papyrus'},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'default:book',
|
||||||
|
recipe = {
|
||||||
|
{'default:paper'},
|
||||||
|
{'default:paper'},
|
||||||
|
{'default:paper'},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'default:bookshelf',
|
||||||
|
recipe = {
|
||||||
|
{'group:wood', 'group:wood', 'group:wood'},
|
||||||
|
{'default:book', 'default:book', 'default:book'},
|
||||||
|
{'group:wood', 'group:wood', 'group:wood'},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'default:ladder',
|
||||||
|
recipe = {
|
||||||
|
{'default:stick', '', 'default:stick'},
|
||||||
|
{'default:stick', 'default:stick', 'default:stick'},
|
||||||
|
{'default:stick', '', 'default:stick'},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'default:mese',
|
||||||
|
recipe = {
|
||||||
|
{'default:mese_crystal', 'default:mese_crystal', 'default:mese_crystal'},
|
||||||
|
{'default:mese_crystal', 'default:mese_crystal', 'default:mese_crystal'},
|
||||||
|
{'default:mese_crystal', 'default:mese_crystal', 'default:mese_crystal'},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'default:mese_crystal 9',
|
||||||
|
recipe = {
|
||||||
|
{'default:mese'},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'default:mese_crystal_fragment 9',
|
||||||
|
recipe = {
|
||||||
|
{'default:mese_crystal'},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'default:obsidian_shard 9',
|
||||||
|
recipe = {
|
||||||
|
{'default:obsidian'}
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'default:obsidian',
|
||||||
|
recipe = {
|
||||||
|
{'default:obsidian_shard', 'default:obsidian_shard', 'default:obsidian_shard'},
|
||||||
|
{'default:obsidian_shard', 'default:obsidian_shard', 'default:obsidian_shard'},
|
||||||
|
{'default:obsidian_shard', 'default:obsidian_shard', 'default:obsidian_shard'},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'default:stonebrick',
|
||||||
|
recipe = {
|
||||||
|
{'default:stone', 'default:stone'},
|
||||||
|
{'default:stone', 'default:stone'},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'default:desert_stonebrick',
|
||||||
|
recipe = {
|
||||||
|
{'default:desert_stone', 'default:desert_stone'},
|
||||||
|
{'default:desert_stone', 'default:desert_stone'},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'default:snowblock',
|
||||||
|
recipe = {
|
||||||
|
{'default:snow', 'default:snow', 'default:snow'},
|
||||||
|
{'default:snow', 'default:snow', 'default:snow'},
|
||||||
|
{'default:snow', 'default:snow', 'default:snow'},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
output = 'default:snow 9',
|
||||||
|
recipe = {
|
||||||
|
{'default:snowblock'},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Crafting (tool repair)
|
||||||
|
--
|
||||||
|
minetest.register_craft({
|
||||||
|
type = "toolrepair",
|
||||||
|
additional_wear = -0.02,
|
||||||
|
})
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Cooking recipes
|
||||||
|
--
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
type = "cooking",
|
||||||
|
output = "default:glass",
|
||||||
|
recipe = "group:sand",
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
type = "cooking",
|
||||||
|
output = "default:obsidian_glass",
|
||||||
|
recipe = "default:obsidian_shard",
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
type = "cooking",
|
||||||
|
output = "default:stone",
|
||||||
|
recipe = "default:cobble",
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
type = "cooking",
|
||||||
|
output = "default:steel_ingot",
|
||||||
|
recipe = "default:iron_lump",
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
type = "cooking",
|
||||||
|
output = "default:copper_ingot",
|
||||||
|
recipe = "default:copper_lump",
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
type = "cooking",
|
||||||
|
output = "default:gold_ingot",
|
||||||
|
recipe = "default:gold_lump",
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
type = "cooking",
|
||||||
|
output = "default:clay_brick",
|
||||||
|
recipe = "default:clay_lump",
|
||||||
|
})
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Fuels
|
||||||
|
--
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
type = "fuel",
|
||||||
|
recipe = "group:tree",
|
||||||
|
burntime = 30,
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
type = "fuel",
|
||||||
|
recipe = "default:junglegrass",
|
||||||
|
burntime = 2,
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
type = "fuel",
|
||||||
|
recipe = "group:leaves",
|
||||||
|
burntime = 1,
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
type = "fuel",
|
||||||
|
recipe = "default:cactus",
|
||||||
|
burntime = 15,
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
type = "fuel",
|
||||||
|
recipe = "default:papyrus",
|
||||||
|
burntime = 1,
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
type = "fuel",
|
||||||
|
recipe = "default:bookshelf",
|
||||||
|
burntime = 30,
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
type = "fuel",
|
||||||
|
recipe = "default:fence_wood",
|
||||||
|
burntime = 15,
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
type = "fuel",
|
||||||
|
recipe = "default:ladder",
|
||||||
|
burntime = 5,
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
type = "fuel",
|
||||||
|
recipe = "group:wood",
|
||||||
|
burntime = 7,
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
type = "fuel",
|
||||||
|
recipe = "default:lava_source",
|
||||||
|
burntime = 60,
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
type = "fuel",
|
||||||
|
recipe = "default:torch",
|
||||||
|
burntime = 4,
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
type = "fuel",
|
||||||
|
recipe = "default:sign_wall",
|
||||||
|
burntime = 10,
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
type = "fuel",
|
||||||
|
recipe = "default:chest",
|
||||||
|
burntime = 30,
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
type = "fuel",
|
||||||
|
recipe = "default:chest_locked",
|
||||||
|
burntime = 30,
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
type = "fuel",
|
||||||
|
recipe = "default:nyancat",
|
||||||
|
burntime = 1,
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
type = "fuel",
|
||||||
|
recipe = "default:nyancat_rainbow",
|
||||||
|
burntime = 1,
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
type = "fuel",
|
||||||
|
recipe = "default:sapling",
|
||||||
|
burntime = 10,
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
type = "fuel",
|
||||||
|
recipe = "default:apple",
|
||||||
|
burntime = 3,
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
type = "fuel",
|
||||||
|
recipe = "default:coal_lump",
|
||||||
|
burntime = 40,
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
type = "fuel",
|
||||||
|
recipe = "default:coalblock",
|
||||||
|
burntime = 370,
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
type = "fuel",
|
||||||
|
recipe = "default:junglesapling",
|
||||||
|
burntime = 10,
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craft({
|
||||||
|
type = "fuel",
|
||||||
|
recipe = "default:grass_1",
|
||||||
|
burntime = 2,
|
||||||
|
})
|
91
mods/default/craftitems.lua
Normal file
91
mods/default/craftitems.lua
Normal file
@ -0,0 +1,91 @@
|
|||||||
|
-- mods/default/craftitems.lua
|
||||||
|
|
||||||
|
minetest.register_craftitem("default:stick", {
|
||||||
|
description = "Stick",
|
||||||
|
inventory_image = "default_stick.png",
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craftitem("default:paper", {
|
||||||
|
description = "Paper",
|
||||||
|
inventory_image = "default_paper.png",
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craftitem("default:book", {
|
||||||
|
description = "Book",
|
||||||
|
inventory_image = "default_book.png",
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craftitem("default:coal_lump", {
|
||||||
|
description = "Coal Lump",
|
||||||
|
inventory_image = "default_coal_lump.png",
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craftitem("default:iron_lump", {
|
||||||
|
description = "Iron Lump",
|
||||||
|
inventory_image = "default_iron_lump.png",
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craftitem("default:copper_lump", {
|
||||||
|
description = "Copper Lump",
|
||||||
|
inventory_image = "default_copper_lump.png",
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craftitem("default:mese_crystal", {
|
||||||
|
description = "Mese Crystal",
|
||||||
|
inventory_image = "default_mese_crystal.png",
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craftitem("default:gold_lump", {
|
||||||
|
description = "Gold Lump",
|
||||||
|
inventory_image = "default_gold_lump.png",
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craftitem("default:diamond", {
|
||||||
|
description = "Diamond",
|
||||||
|
inventory_image = "default_diamond.png",
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craftitem("default:clay_lump", {
|
||||||
|
description = "Clay Lump",
|
||||||
|
inventory_image = "default_clay_lump.png",
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craftitem("default:steel_ingot", {
|
||||||
|
description = "Steel Ingot",
|
||||||
|
inventory_image = "default_steel_ingot.png",
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craftitem("default:copper_ingot", {
|
||||||
|
description = "Copper Ingot",
|
||||||
|
inventory_image = "default_copper_ingot.png",
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craftitem("default:bronze_ingot", {
|
||||||
|
description = "Bronze Ingot",
|
||||||
|
inventory_image = "default_bronze_ingot.png",
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craftitem("default:gold_ingot", {
|
||||||
|
description = "Gold Ingot",
|
||||||
|
inventory_image = "default_gold_ingot.png"
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craftitem("default:mese_crystal_fragment", {
|
||||||
|
description = "Mese Crystal Fragment",
|
||||||
|
inventory_image = "default_mese_crystal_fragment.png",
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craftitem("default:clay_brick", {
|
||||||
|
description = "Clay Brick",
|
||||||
|
inventory_image = "default_clay_brick.png",
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craftitem("default:scorched_stuff", {
|
||||||
|
description = "Scorched Stuff",
|
||||||
|
inventory_image = "default_scorched_stuff.png",
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_craftitem("default:obsidian_shard", {
|
||||||
|
description = "Obsidian Shard",
|
||||||
|
inventory_image = "default_obsidian_shard.png",
|
||||||
|
})
|
301
mods/default/functions.lua
Normal file
301
mods/default/functions.lua
Normal file
@ -0,0 +1,301 @@
|
|||||||
|
-- mods/default/functions.lua
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Sounds
|
||||||
|
--
|
||||||
|
|
||||||
|
function default.node_sound_defaults(table)
|
||||||
|
table = table or {}
|
||||||
|
table.footstep = table.footstep or
|
||||||
|
{name="", gain=1.0}
|
||||||
|
table.dug = table.dug or
|
||||||
|
{name="default_dug_node", gain=1.0}
|
||||||
|
table.place = table.place or
|
||||||
|
{name="default_place_node", gain=0.5}
|
||||||
|
return table
|
||||||
|
end
|
||||||
|
|
||||||
|
function default.node_sound_stone_defaults(table)
|
||||||
|
table = table or {}
|
||||||
|
table.footstep = table.footstep or
|
||||||
|
{name="default_hard_footstep", gain=0.2}
|
||||||
|
default.node_sound_defaults(table)
|
||||||
|
return table
|
||||||
|
end
|
||||||
|
|
||||||
|
function default.node_sound_dirt_defaults(table)
|
||||||
|
table = table or {}
|
||||||
|
table.footstep = table.footstep or
|
||||||
|
{name="", gain=0.5}
|
||||||
|
--table.dug = table.dug or
|
||||||
|
-- {name="default_dirt_break", gain=0.5}
|
||||||
|
default.node_sound_defaults(table)
|
||||||
|
return table
|
||||||
|
end
|
||||||
|
|
||||||
|
function default.node_sound_sand_defaults(table)
|
||||||
|
table = table or {}
|
||||||
|
table.footstep = table.footstep or
|
||||||
|
{name="default_grass_footstep", gain=0.25}
|
||||||
|
--table.dug = table.dug or
|
||||||
|
-- {name="default_dirt_break", gain=0.25}
|
||||||
|
table.dug = table.dug or
|
||||||
|
{name="", gain=0.25}
|
||||||
|
default.node_sound_defaults(table)
|
||||||
|
return table
|
||||||
|
end
|
||||||
|
|
||||||
|
function default.node_sound_wood_defaults(table)
|
||||||
|
table = table or {}
|
||||||
|
table.footstep = table.footstep or
|
||||||
|
{name="default_hard_footstep", gain=0.3}
|
||||||
|
default.node_sound_defaults(table)
|
||||||
|
return table
|
||||||
|
end
|
||||||
|
|
||||||
|
function default.node_sound_leaves_defaults(table)
|
||||||
|
table = table or {}
|
||||||
|
table.footstep = table.footstep or
|
||||||
|
{name="default_grass_footstep", gain=0.25}
|
||||||
|
table.dig = table.dig or
|
||||||
|
{name="default_dig_crumbly", gain=0.4}
|
||||||
|
table.dug = table.dug or
|
||||||
|
{name="", gain=1.0}
|
||||||
|
default.node_sound_defaults(table)
|
||||||
|
return table
|
||||||
|
end
|
||||||
|
|
||||||
|
function default.node_sound_glass_defaults(table)
|
||||||
|
table = table or {}
|
||||||
|
table.footstep = table.footstep or
|
||||||
|
{name="default_hard_footstep", gain=0.25}
|
||||||
|
table.dug = table.dug or
|
||||||
|
{name="default_break_glass", gain=1.0}
|
||||||
|
default.node_sound_defaults(table)
|
||||||
|
return table
|
||||||
|
end
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Legacy
|
||||||
|
--
|
||||||
|
|
||||||
|
function default.spawn_falling_node(p, nodename)
|
||||||
|
spawn_falling_node(p, nodename)
|
||||||
|
end
|
||||||
|
|
||||||
|
-- Horrible crap to support old code
|
||||||
|
-- Don't use this and never do what this does, it's completely wrong!
|
||||||
|
-- (More specifically, the client and the C++ code doesn't get the group)
|
||||||
|
function default.register_falling_node(nodename, texture)
|
||||||
|
minetest.log("error", debug.traceback())
|
||||||
|
minetest.log('error', "WARNING: default.register_falling_node is deprecated")
|
||||||
|
if minetest.registered_nodes[nodename] then
|
||||||
|
minetest.registered_nodes[nodename].groups.falling_node = 1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Global callbacks
|
||||||
|
--
|
||||||
|
|
||||||
|
-- Global environment step function
|
||||||
|
function on_step(dtime)
|
||||||
|
-- print("on_step")
|
||||||
|
end
|
||||||
|
minetest.register_globalstep(on_step)
|
||||||
|
|
||||||
|
function on_placenode(p, node)
|
||||||
|
--print("on_placenode")
|
||||||
|
end
|
||||||
|
minetest.register_on_placenode(on_placenode)
|
||||||
|
|
||||||
|
function on_dignode(p, node)
|
||||||
|
--print("on_dignode")
|
||||||
|
end
|
||||||
|
minetest.register_on_dignode(on_dignode)
|
||||||
|
|
||||||
|
function on_punchnode(p, node)
|
||||||
|
end
|
||||||
|
minetest.register_on_punchnode(on_punchnode)
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Lavacooling
|
||||||
|
--
|
||||||
|
|
||||||
|
default.cool_lava_source = function(pos)
|
||||||
|
minetest.env:set_node(pos, {name="default:obsidian"})
|
||||||
|
end
|
||||||
|
|
||||||
|
default.cool_lava_flowing = function(pos)
|
||||||
|
minetest.env:set_node(pos, {name="default:stone"})
|
||||||
|
end
|
||||||
|
|
||||||
|
minetest.register_abm({
|
||||||
|
nodenames = {"default:lava_flowing"},
|
||||||
|
neighbors = {"group:water"},
|
||||||
|
interval = 1,
|
||||||
|
chance = 1,
|
||||||
|
action = function(pos, node, active_object_count, active_object_count_wider)
|
||||||
|
default.cool_lava_flowing(pos, node, active_object_count, active_object_count_wider)
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_abm({
|
||||||
|
nodenames = {"default:lava_source"},
|
||||||
|
neighbors = {"group:water"},
|
||||||
|
interval = 1,
|
||||||
|
chance = 1,
|
||||||
|
action = function(pos, node, active_object_count, active_object_count_wider)
|
||||||
|
default.cool_lava_source(pos, node, active_object_count, active_object_count_wider)
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Papyrus and cactus growing
|
||||||
|
--
|
||||||
|
|
||||||
|
minetest.register_abm({
|
||||||
|
nodenames = {"default:cactus"},
|
||||||
|
neighbors = {"group:sand"},
|
||||||
|
interval = 50,
|
||||||
|
chance = 20,
|
||||||
|
action = function(pos, node)
|
||||||
|
pos.y = pos.y-1
|
||||||
|
local name = minetest.env:get_node(pos).name
|
||||||
|
if minetest.get_item_group(name, "sand") ~= 0 then
|
||||||
|
pos.y = pos.y+1
|
||||||
|
local height = 0
|
||||||
|
while minetest.env:get_node(pos).name == "default:cactus" and height < 4 do
|
||||||
|
height = height+1
|
||||||
|
pos.y = pos.y+1
|
||||||
|
end
|
||||||
|
if height < 4 then
|
||||||
|
if minetest.env:get_node(pos).name == "air" then
|
||||||
|
minetest.env:set_node(pos, {name="default:cactus"})
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_abm({
|
||||||
|
nodenames = {"default:papyrus"},
|
||||||
|
neighbors = {"default:dirt", "default:dirt_with_grass"},
|
||||||
|
interval = 50,
|
||||||
|
chance = 20,
|
||||||
|
action = function(pos, node)
|
||||||
|
pos.y = pos.y-1
|
||||||
|
local name = minetest.env:get_node(pos).name
|
||||||
|
if name == "default:dirt" or name == "default:dirt_with_grass" then
|
||||||
|
if minetest.env:find_node_near(pos, 3, {"group:water"}) == nil then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
pos.y = pos.y+1
|
||||||
|
local height = 0
|
||||||
|
while minetest.env:get_node(pos).name == "default:papyrus" and height < 4 do
|
||||||
|
height = height+1
|
||||||
|
pos.y = pos.y+1
|
||||||
|
end
|
||||||
|
if height < 4 then
|
||||||
|
if minetest.env:get_node(pos).name == "air" then
|
||||||
|
minetest.env:set_node(pos, {name="default:papyrus"})
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end,
|
||||||
|
})
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Leafdecay
|
||||||
|
--
|
||||||
|
|
||||||
|
-- To enable leaf decay for a node, add it to the "leafdecay" group.
|
||||||
|
--
|
||||||
|
-- The rating of the group determines how far from a node in the group "tree"
|
||||||
|
-- the node can be without decaying.
|
||||||
|
--
|
||||||
|
-- If param2 of the node is ~= 0, the node will always be preserved. Thus, if
|
||||||
|
-- the player places a node of that kind, you will want to set param2=1 or so.
|
||||||
|
|
||||||
|
default.leafdecay_trunk_cache = {}
|
||||||
|
default.leafdecay_enable_cache = true
|
||||||
|
-- Spread the load of finding trunks
|
||||||
|
default.leafdecay_trunk_find_allow_accumulator = 0
|
||||||
|
|
||||||
|
minetest.register_globalstep(function(dtime)
|
||||||
|
local finds_per_second = 5000
|
||||||
|
default.leafdecay_trunk_find_allow_accumulator =
|
||||||
|
math.floor(dtime * finds_per_second)
|
||||||
|
end)
|
||||||
|
|
||||||
|
minetest.register_abm({
|
||||||
|
nodenames = {"group:leafdecay"},
|
||||||
|
neighbors = {"air", "group:liquid"},
|
||||||
|
-- A low interval and a high inverse chance spreads the load
|
||||||
|
interval = 2,
|
||||||
|
chance = 5,
|
||||||
|
|
||||||
|
action = function(p0, node, _, _)
|
||||||
|
--print("leafdecay ABM at "..p0.x..", "..p0.y..", "..p0.z..")")
|
||||||
|
local do_preserve = false
|
||||||
|
local d = minetest.registered_nodes[node.name].groups.leafdecay
|
||||||
|
if not d or d == 0 then
|
||||||
|
--print("not groups.leafdecay")
|
||||||
|
return
|
||||||
|
end
|
||||||
|
local n0 = minetest.env:get_node(p0)
|
||||||
|
if n0.param2 ~= 0 then
|
||||||
|
--print("param2 ~= 0")
|
||||||
|
return
|
||||||
|
end
|
||||||
|
local p0_hash = nil
|
||||||
|
if default.leafdecay_enable_cache then
|
||||||
|
p0_hash = minetest.hash_node_position(p0)
|
||||||
|
local trunkp = default.leafdecay_trunk_cache[p0_hash]
|
||||||
|
if trunkp then
|
||||||
|
local n = minetest.env:get_node(trunkp)
|
||||||
|
local reg = minetest.registered_nodes[n.name]
|
||||||
|
-- Assume ignore is a trunk, to make the thing work at the border of the active area
|
||||||
|
if n.name == "ignore" or (reg and reg.groups.tree and reg.groups.tree ~= 0) then
|
||||||
|
--print("cached trunk still exists")
|
||||||
|
return
|
||||||
|
end
|
||||||
|
--print("cached trunk is invalid")
|
||||||
|
-- Cache is invalid
|
||||||
|
table.remove(default.leafdecay_trunk_cache, p0_hash)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if default.leafdecay_trunk_find_allow_accumulator <= 0 then
|
||||||
|
return
|
||||||
|
end
|
||||||
|
default.leafdecay_trunk_find_allow_accumulator =
|
||||||
|
default.leafdecay_trunk_find_allow_accumulator - 1
|
||||||
|
-- Assume ignore is a trunk, to make the thing work at the border of the active area
|
||||||
|
local p1 = minetest.env:find_node_near(p0, d, {"ignore", "group:tree"})
|
||||||
|
if p1 then
|
||||||
|
do_preserve = true
|
||||||
|
if default.leafdecay_enable_cache then
|
||||||
|
--print("caching trunk")
|
||||||
|
-- Cache the trunk
|
||||||
|
default.leafdecay_trunk_cache[p0_hash] = p1
|
||||||
|
end
|
||||||
|
end
|
||||||
|
if not do_preserve then
|
||||||
|
-- Drop stuff other than the node itself
|
||||||
|
itemstacks = minetest.get_node_drops(n0.name)
|
||||||
|
for _, itemname in ipairs(itemstacks) do
|
||||||
|
if itemname ~= n0.name then
|
||||||
|
local p_drop = {
|
||||||
|
x = p0.x - 0.5 + math.random(),
|
||||||
|
y = p0.y - 0.5 + math.random(),
|
||||||
|
z = p0.z - 0.5 + math.random(),
|
||||||
|
}
|
||||||
|
minetest.env:add_item(p_drop, itemname)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
-- Remove node
|
||||||
|
minetest.env:remove_node(p0)
|
||||||
|
nodeupdate(p0)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
})
|
File diff suppressed because it is too large
Load Diff
@ -1,93 +0,0 @@
|
|||||||
-- minetest/default/leafdecay.lua
|
|
||||||
|
|
||||||
-- To enable leaf decay for a node, add it to the "leafdecay" group.
|
|
||||||
--
|
|
||||||
-- The rating of the group determines how far from a node in the group "tree"
|
|
||||||
-- the node can be without decaying.
|
|
||||||
--
|
|
||||||
-- If param2 of the node is ~= 0, the node will always be preserved. Thus, if
|
|
||||||
-- the player places a node of that kind, you will want to set param2=1 or so.
|
|
||||||
|
|
||||||
default.leafdecay_trunk_cache = {}
|
|
||||||
default.leafdecay_enable_cache = true
|
|
||||||
-- Spread the load of finding trunks
|
|
||||||
default.leafdecay_trunk_find_allow_accumulator = 0
|
|
||||||
|
|
||||||
minetest.register_globalstep(function(dtime)
|
|
||||||
local finds_per_second = 5000
|
|
||||||
default.leafdecay_trunk_find_allow_accumulator =
|
|
||||||
math.floor(dtime * finds_per_second)
|
|
||||||
end)
|
|
||||||
|
|
||||||
minetest.register_abm({
|
|
||||||
nodenames = {"group:leafdecay"},
|
|
||||||
neighbors = {"air", "group:liquid"},
|
|
||||||
-- A low interval and a high inverse chance spreads the load
|
|
||||||
interval = 2,
|
|
||||||
chance = 5,
|
|
||||||
|
|
||||||
action = function(p0, node, _, _)
|
|
||||||
--print("leafdecay ABM at "..p0.x..", "..p0.y..", "..p0.z..")")
|
|
||||||
local do_preserve = false
|
|
||||||
local d = minetest.registered_nodes[node.name].groups.leafdecay
|
|
||||||
if not d or d == 0 then
|
|
||||||
--print("not groups.leafdecay")
|
|
||||||
return
|
|
||||||
end
|
|
||||||
local n0 = minetest.env:get_node(p0)
|
|
||||||
if n0.param2 ~= 0 then
|
|
||||||
--print("param2 ~= 0")
|
|
||||||
return
|
|
||||||
end
|
|
||||||
local p0_hash = nil
|
|
||||||
if default.leafdecay_enable_cache then
|
|
||||||
p0_hash = minetest.hash_node_position(p0)
|
|
||||||
local trunkp = default.leafdecay_trunk_cache[p0_hash]
|
|
||||||
if trunkp then
|
|
||||||
local n = minetest.env:get_node(trunkp)
|
|
||||||
local reg = minetest.registered_nodes[n.name]
|
|
||||||
-- Assume ignore is a trunk, to make the thing work at the border of the active area
|
|
||||||
if n.name == "ignore" or (reg and reg.groups.tree and reg.groups.tree ~= 0) then
|
|
||||||
--print("cached trunk still exists")
|
|
||||||
return
|
|
||||||
end
|
|
||||||
--print("cached trunk is invalid")
|
|
||||||
-- Cache is invalid
|
|
||||||
table.remove(default.leafdecay_trunk_cache, p0_hash)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
if default.leafdecay_trunk_find_allow_accumulator <= 0 then
|
|
||||||
return
|
|
||||||
end
|
|
||||||
default.leafdecay_trunk_find_allow_accumulator =
|
|
||||||
default.leafdecay_trunk_find_allow_accumulator - 1
|
|
||||||
-- Assume ignore is a trunk, to make the thing work at the border of the active area
|
|
||||||
local p1 = minetest.env:find_node_near(p0, d, {"ignore", "group:tree"})
|
|
||||||
if p1 then
|
|
||||||
do_preserve = true
|
|
||||||
if default.leafdecay_enable_cache then
|
|
||||||
--print("caching trunk")
|
|
||||||
-- Cache the trunk
|
|
||||||
default.leafdecay_trunk_cache[p0_hash] = p1
|
|
||||||
end
|
|
||||||
end
|
|
||||||
if not do_preserve then
|
|
||||||
-- Drop stuff other than the node itself
|
|
||||||
itemstacks = minetest.get_node_drops(n0.name)
|
|
||||||
for _, itemname in ipairs(itemstacks) do
|
|
||||||
if itemname ~= n0.name then
|
|
||||||
local p_drop = {
|
|
||||||
x = p0.x - 0.5 + math.random(),
|
|
||||||
y = p0.y - 0.5 + math.random(),
|
|
||||||
z = p0.z - 0.5 + math.random(),
|
|
||||||
}
|
|
||||||
minetest.env:add_item(p_drop, itemname)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
-- Remove node
|
|
||||||
minetest.env:remove_node(p0)
|
|
||||||
nodeupdate(p0)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
})
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
|||||||
-- minetest/default/mapgen.lua
|
-- mods/default/mapgen.lua
|
||||||
|
|
||||||
--
|
--
|
||||||
-- Aliases for map generator outputs
|
-- Aliases for map generator outputs
|
||||||
|
1293
mods/default/nodes.lua
Normal file
1293
mods/default/nodes.lua
Normal file
File diff suppressed because it is too large
Load Diff
332
mods/default/tools.lua
Normal file
332
mods/default/tools.lua
Normal file
@ -0,0 +1,332 @@
|
|||||||
|
-- mods/default/tools.lua
|
||||||
|
|
||||||
|
-- The hand
|
||||||
|
minetest.register_item(":", {
|
||||||
|
type = "none",
|
||||||
|
wield_image = "wieldhand.png",
|
||||||
|
wield_scale = {x=1,y=1,z=2.5},
|
||||||
|
tool_capabilities = {
|
||||||
|
full_punch_interval = 0.9,
|
||||||
|
max_drop_level = 0,
|
||||||
|
groupcaps = {
|
||||||
|
crumbly = {times={[2]=3.00, [3]=0.70}, uses=0, maxlevel=1},
|
||||||
|
snappy = {times={[3]=0.40}, uses=0, maxlevel=1},
|
||||||
|
oddly_breakable_by_hand = {times={[1]=7.00,[2]=4.00,[3]=1.40}, uses=0, maxlevel=3}
|
||||||
|
},
|
||||||
|
damage_groups = {fleshy=1},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Picks
|
||||||
|
--
|
||||||
|
|
||||||
|
minetest.register_tool("default:pick_wood", {
|
||||||
|
description = "Wooden Pickaxe",
|
||||||
|
inventory_image = "default_tool_woodpick.png",
|
||||||
|
tool_capabilities = {
|
||||||
|
full_punch_interval = 1.2,
|
||||||
|
max_drop_level=0,
|
||||||
|
groupcaps={
|
||||||
|
cracky = {times={[3]=1.60}, uses=10, maxlevel=1},
|
||||||
|
},
|
||||||
|
damage_groups = {fleshy=2},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
minetest.register_tool("default:pick_stone", {
|
||||||
|
description = "Stone Pickaxe",
|
||||||
|
inventory_image = "default_tool_stonepick.png",
|
||||||
|
tool_capabilities = {
|
||||||
|
full_punch_interval = 1.3,
|
||||||
|
max_drop_level=0,
|
||||||
|
groupcaps={
|
||||||
|
cracky = {times={[2]=2.0, [3]=1.20}, uses=20, maxlevel=1},
|
||||||
|
},
|
||||||
|
damage_groups = {fleshy=3},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
minetest.register_tool("default:pick_steel", {
|
||||||
|
description = "Steel Pickaxe",
|
||||||
|
inventory_image = "default_tool_steelpick.png",
|
||||||
|
tool_capabilities = {
|
||||||
|
full_punch_interval = 1.0,
|
||||||
|
max_drop_level=1,
|
||||||
|
groupcaps={
|
||||||
|
cracky = {times={[1]=4.00, [2]=1.60, [3]=0.80}, uses=20, maxlevel=2},
|
||||||
|
},
|
||||||
|
damage_groups = {fleshy=4},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
minetest.register_tool("default:pick_bronze", {
|
||||||
|
description = "Bronze Pickaxe",
|
||||||
|
inventory_image = "default_tool_bronzepick.png",
|
||||||
|
tool_capabilities = {
|
||||||
|
full_punch_interval = 1.0,
|
||||||
|
max_drop_level=1,
|
||||||
|
groupcaps={
|
||||||
|
cracky = {times={[1]=4.00, [2]=1.60, [3]=0.80}, uses=30, maxlevel=2},
|
||||||
|
},
|
||||||
|
damage_groups = {fleshy=4},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
minetest.register_tool("default:pick_mese", {
|
||||||
|
description = "Mese Pickaxe",
|
||||||
|
inventory_image = "default_tool_mesepick.png",
|
||||||
|
tool_capabilities = {
|
||||||
|
full_punch_interval = 0.9,
|
||||||
|
max_drop_level=3,
|
||||||
|
groupcaps={
|
||||||
|
cracky = {times={[1]=2.4, [2]=1.2, [3]=0.60}, uses=20, maxlevel=3},
|
||||||
|
},
|
||||||
|
damage_groups = {fleshy=5},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
minetest.register_tool("default:pick_diamond", {
|
||||||
|
description = "Diamond Pickaxe",
|
||||||
|
inventory_image = "default_tool_diamondpick.png",
|
||||||
|
tool_capabilities = {
|
||||||
|
full_punch_interval = 0.9,
|
||||||
|
max_drop_level=3,
|
||||||
|
groupcaps={
|
||||||
|
cracky = {times={[1]=2.0, [2]=1.0, [3]=0.50}, uses=30, maxlevel=3},
|
||||||
|
},
|
||||||
|
damage_groups = {fleshy=5},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Shovels
|
||||||
|
--
|
||||||
|
|
||||||
|
minetest.register_tool("default:shovel_wood", {
|
||||||
|
description = "Wooden Shovel",
|
||||||
|
inventory_image = "default_tool_woodshovel.png",
|
||||||
|
wield_image = "default_tool_woodshovel.png^[transformR90",
|
||||||
|
tool_capabilities = {
|
||||||
|
full_punch_interval = 1.2,
|
||||||
|
max_drop_level=0,
|
||||||
|
groupcaps={
|
||||||
|
crumbly = {times={[1]=3.00, [2]=1.60, [3]=0.60}, uses=10, maxlevel=1},
|
||||||
|
},
|
||||||
|
damage_groups = {fleshy=2},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
minetest.register_tool("default:shovel_stone", {
|
||||||
|
description = "Stone Shovel",
|
||||||
|
inventory_image = "default_tool_stoneshovel.png",
|
||||||
|
wield_image = "default_tool_stoneshovel.png^[transformR90",
|
||||||
|
tool_capabilities = {
|
||||||
|
full_punch_interval = 1.4,
|
||||||
|
max_drop_level=0,
|
||||||
|
groupcaps={
|
||||||
|
crumbly = {times={[1]=1.80, [2]=1.20, [3]=0.50}, uses=20, maxlevel=1},
|
||||||
|
},
|
||||||
|
damage_groups = {fleshy=2},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
minetest.register_tool("default:shovel_steel", {
|
||||||
|
description = "Steel Shovel",
|
||||||
|
inventory_image = "default_tool_steelshovel.png",
|
||||||
|
wield_image = "default_tool_steelshovel.png^[transformR90",
|
||||||
|
tool_capabilities = {
|
||||||
|
full_punch_interval = 1.1,
|
||||||
|
max_drop_level=1,
|
||||||
|
groupcaps={
|
||||||
|
crumbly = {times={[1]=1.50, [2]=0.90, [3]=0.40}, uses=30, maxlevel=2},
|
||||||
|
},
|
||||||
|
damage_groups = {fleshy=3},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
minetest.register_tool("default:shovel_bronze", {
|
||||||
|
description = "Bronze Shovel",
|
||||||
|
inventory_image = "default_tool_bronzeshovel.png",
|
||||||
|
wield_image = "default_tool_bronzeshovel.png^[transformR90",
|
||||||
|
tool_capabilities = {
|
||||||
|
full_punch_interval = 1.1,
|
||||||
|
max_drop_level=1,
|
||||||
|
groupcaps={
|
||||||
|
crumbly = {times={[1]=1.50, [2]=0.90, [3]=0.40}, uses=40, maxlevel=2},
|
||||||
|
},
|
||||||
|
damage_groups = {fleshy=3},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
minetest.register_tool("default:shovel_mese", {
|
||||||
|
description = "Mese Shovel",
|
||||||
|
inventory_image = "default_tool_meseshovel.png",
|
||||||
|
wield_image = "default_tool_meseshovel.png^[transformR90",
|
||||||
|
tool_capabilities = {
|
||||||
|
full_punch_interval = 1.0,
|
||||||
|
max_drop_level=3,
|
||||||
|
groupcaps={
|
||||||
|
crumbly = {times={[1]=1.20, [2]=0.60, [3]=0.30}, uses=20, maxlevel=3},
|
||||||
|
},
|
||||||
|
damage_groups = {fleshy=4},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
minetest.register_tool("default:shovel_diamond", {
|
||||||
|
description = "Diamond Shovel",
|
||||||
|
inventory_image = "default_tool_diamondshovel.png",
|
||||||
|
wield_image = "default_tool_diamondshovel.png^[transformR90",
|
||||||
|
tool_capabilities = {
|
||||||
|
full_punch_interval = 1.0,
|
||||||
|
max_drop_level=1,
|
||||||
|
groupcaps={
|
||||||
|
crumbly = {times={[1]=1.10, [2]=0.50, [3]=0.30}, uses=30, maxlevel=3},
|
||||||
|
},
|
||||||
|
damage_groups = {fleshy=4},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Axes
|
||||||
|
--
|
||||||
|
|
||||||
|
minetest.register_tool("default:axe_wood", {
|
||||||
|
description = "Wooden Axe",
|
||||||
|
inventory_image = "default_tool_woodaxe.png",
|
||||||
|
tool_capabilities = {
|
||||||
|
full_punch_interval = 1.0,
|
||||||
|
max_drop_level=0,
|
||||||
|
groupcaps={
|
||||||
|
choppy = {times={[2]=3.00, [3]=2.00}, uses=10, maxlevel=1},
|
||||||
|
},
|
||||||
|
damage_groups = {fleshy=2},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
minetest.register_tool("default:axe_stone", {
|
||||||
|
description = "Stone Axe",
|
||||||
|
inventory_image = "default_tool_stoneaxe.png",
|
||||||
|
tool_capabilities = {
|
||||||
|
full_punch_interval = 1.2,
|
||||||
|
max_drop_level=0,
|
||||||
|
groupcaps={
|
||||||
|
choppy={times={[1]=3.00, [2]=2.00, [3]=1.50}, uses=20, maxlevel=1},
|
||||||
|
},
|
||||||
|
damage_groups = {fleshy=3},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
minetest.register_tool("default:axe_steel", {
|
||||||
|
description = "Steel Axe",
|
||||||
|
inventory_image = "default_tool_steelaxe.png",
|
||||||
|
tool_capabilities = {
|
||||||
|
full_punch_interval = 1.0,
|
||||||
|
max_drop_level=1,
|
||||||
|
groupcaps={
|
||||||
|
choppy={times={[1]=2.50, [2]=1.40, [3]=1.00}, uses=20, maxlevel=2},
|
||||||
|
},
|
||||||
|
damage_groups = {fleshy=4},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
minetest.register_tool("default:axe_bronze", {
|
||||||
|
description = "Bronze Axe",
|
||||||
|
inventory_image = "default_tool_bronzeaxe.png",
|
||||||
|
tool_capabilities = {
|
||||||
|
full_punch_interval = 1.0,
|
||||||
|
max_drop_level=1,
|
||||||
|
groupcaps={
|
||||||
|
choppy={times={[1]=2.50, [2]=1.40, [3]=1.00}, uses=30, maxlevel=2},
|
||||||
|
},
|
||||||
|
damage_groups = {fleshy=4},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
minetest.register_tool("default:axe_mese", {
|
||||||
|
description = "Mese Axe",
|
||||||
|
inventory_image = "default_tool_meseaxe.png",
|
||||||
|
tool_capabilities = {
|
||||||
|
full_punch_interval = 0.9,
|
||||||
|
max_drop_level=1,
|
||||||
|
groupcaps={
|
||||||
|
choppy={times={[1]=2.20, [2]=1.00, [3]=0.60}, uses=20, maxlevel=3},
|
||||||
|
},
|
||||||
|
damage_groups = {fleshy=6},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
minetest.register_tool("default:axe_diamond", {
|
||||||
|
description = "Diamond Axe",
|
||||||
|
inventory_image = "default_tool_diamondaxe.png",
|
||||||
|
tool_capabilities = {
|
||||||
|
full_punch_interval = 0.9,
|
||||||
|
max_drop_level=1,
|
||||||
|
groupcaps={
|
||||||
|
choppy={times={[1]=2.10, [2]=0.90, [3]=0.50}, uses=30, maxlevel=2},
|
||||||
|
},
|
||||||
|
damage_groups = {fleshy=7},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
|
||||||
|
--
|
||||||
|
-- Swords
|
||||||
|
--
|
||||||
|
|
||||||
|
minetest.register_tool("default:sword_wood", {
|
||||||
|
description = "Wooden Sword",
|
||||||
|
inventory_image = "default_tool_woodsword.png",
|
||||||
|
tool_capabilities = {
|
||||||
|
full_punch_interval = 1,
|
||||||
|
max_drop_level=0,
|
||||||
|
groupcaps={
|
||||||
|
snappy={times={[2]=1.6, [3]=0.40}, uses=10, maxlevel=1},
|
||||||
|
},
|
||||||
|
damage_groups = {fleshy=2},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
minetest.register_tool("default:sword_stone", {
|
||||||
|
description = "Stone Sword",
|
||||||
|
inventory_image = "default_tool_stonesword.png",
|
||||||
|
tool_capabilities = {
|
||||||
|
full_punch_interval = 1.2,
|
||||||
|
max_drop_level=0,
|
||||||
|
groupcaps={
|
||||||
|
snappy={times={[2]=1.4, [3]=0.40}, uses=20, maxlevel=1},
|
||||||
|
},
|
||||||
|
damage_groups = {fleshy=4},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
minetest.register_tool("default:sword_steel", {
|
||||||
|
description = "Steel Sword",
|
||||||
|
inventory_image = "default_tool_steelsword.png",
|
||||||
|
tool_capabilities = {
|
||||||
|
full_punch_interval = 0.8,
|
||||||
|
max_drop_level=1,
|
||||||
|
groupcaps={
|
||||||
|
snappy={times={[1]=2.5, [2]=1.20, [3]=0.35}, uses=30, maxlevel=2},
|
||||||
|
},
|
||||||
|
damage_groups = {fleshy=6},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
minetest.register_tool("default:sword_bronze", {
|
||||||
|
description = "Bronze Sword",
|
||||||
|
inventory_image = "default_tool_bronzesword.png",
|
||||||
|
tool_capabilities = {
|
||||||
|
full_punch_interval = 0.8,
|
||||||
|
max_drop_level=1,
|
||||||
|
groupcaps={
|
||||||
|
snappy={times={[1]=2.5, [2]=1.20, [3]=0.35}, uses=40, maxlevel=2},
|
||||||
|
},
|
||||||
|
damage_groups = {fleshy=6},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
minetest.register_tool("default:sword_mese", {
|
||||||
|
description = "Mese Sword",
|
||||||
|
inventory_image = "default_tool_mesesword.png",
|
||||||
|
tool_capabilities = {
|
||||||
|
full_punch_interval = 0.7,
|
||||||
|
max_drop_level=1,
|
||||||
|
groupcaps={
|
||||||
|
snappy={times={[1]=2.0, [2]=1.00, [3]=0.35}, uses=30, maxlevel=3},
|
||||||
|
},
|
||||||
|
damage_groups = {fleshy=7},
|
||||||
|
}
|
||||||
|
})
|
||||||
|
minetest.register_tool("default:sword_diamond", {
|
||||||
|
description = "Diamond Sword",
|
||||||
|
inventory_image = "default_tool_diamondsword.png",
|
||||||
|
tool_capabilities = {
|
||||||
|
full_punch_interval = 0.7,
|
||||||
|
max_drop_level=1,
|
||||||
|
groupcaps={
|
||||||
|
snappy={times={[1]=1.90, [2]=0.90, [3]=0.30}, uses=40, maxlevel=3},
|
||||||
|
},
|
||||||
|
damage_groups = {fleshy=8},
|
||||||
|
}
|
||||||
|
})
|
Loading…
Reference in New Issue
Block a user