forked from luanti-org/minetest_game
		
	Split init.lua into several files
This commit is contained in:
		
							
								
								
									
										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 | ||||
|   | ||||
							
								
								
									
										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}, | ||||
| 	} | ||||
| }) | ||||
		Reference in New Issue
	
	Block a user