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 | -- 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