Skip to content
Snippets Groups Projects
init.lua 56.2 KiB
Newer Older
-- Minetest 0.4 mod: default
-- See README.txt for licensing and other information.
Perttu Ahola's avatar
Perttu Ahola committed

-- The API documentation in here was moved into doc/lua_api.txt

WATER_ALPHA = 160
WATER_VISC = 1
LAVA_VISC = 7
LIGHT_MAX = 14

-- Definitions made by this mod that other mods can use too
default = {}

dofile(minetest.get_modpath("default").."/player.lua")
dofile(minetest.get_modpath("default").."/mapgen.lua")
dofile(minetest.get_modpath("default").."/leafdecay.lua")
Perttu Ahola's avatar
Perttu Ahola committed
--
-- Tool definition
--

-- The hand
minetest.register_item(":", {
	type = "none",
	wield_image = "wieldhand.png",
	wield_scale = {x=1,y=1,z=2.5},
	tool_capabilities = {
Calinou's avatar
Calinou committed
		full_punch_interval = 0.9,
Perttu Ahola's avatar
Perttu Ahola committed
		max_drop_level = 0,
		groupcaps = {
Calinou's avatar
Calinou committed
			fleshy = {times={[2]=0.75, [3]=0.6}, uses=0, maxlevel=1},
			crumbly = {times={[2]=3.00, [3]=0.70}, uses=0, maxlevel=1},
			snappy = {times={[3]=0.40}, uses=0, maxlevel=1},
Calinou's avatar
Calinou committed
			oddly_breakable_by_hand = {times={[1]=7.00,[2]=4.00,[3]=1.40}, uses=0, maxlevel=3}
Perttu Ahola's avatar
Perttu Ahola committed
		}
	}
})

minetest.register_tool("default:pick_wood", {
	description = "Wooden Pickaxe",
	inventory_image = "default_tool_woodpick.png",
	tool_capabilities = {
Calinou's avatar
Calinou committed
		full_punch_interval = 1.2,
Perttu Ahola's avatar
Perttu Ahola committed
		max_drop_level=0,
		groupcaps={
Calinou's avatar
Calinou committed
			cracky = {times={[2]=2.00, [3]=1.20}, uses=10, maxlevel=1},
			fleshy = {times={[2]=0.95, [3]=0.6}, uses=15, maxlevel=1}
Perttu Ahola's avatar
Perttu Ahola committed
		}
	},
})
minetest.register_tool("default:pick_stone", {
	description = "Stone Pickaxe",
	inventory_image = "default_tool_stonepick.png",
	tool_capabilities = {
Calinou's avatar
Calinou committed
		full_punch_interval = 1.3,
Perttu Ahola's avatar
Perttu Ahola committed
		max_drop_level=0,
		groupcaps={
Calinou's avatar
Calinou committed
			cracky = {times={[1]=3.00, [2]=1.20, [3]=0.80}, uses=20, maxlevel=1},
			fleshy = {times={[2]=0.7, [3]=0.5}, uses=25, maxlevel=1}
Perttu Ahola's avatar
Perttu Ahola committed
		}
	},
})
minetest.register_tool("default:pick_steel", {
	description = "Steel Pickaxe",
	inventory_image = "default_tool_steelpick.png",
	tool_capabilities = {
Calinou's avatar
Calinou committed
		full_punch_interval = 1.0,
Perttu Ahola's avatar
Perttu Ahola committed
		max_drop_level=1,
		groupcaps={
Calinou's avatar
Calinou committed
			cracky = {times={[1]=4.00, [2]=1.60, [3]=1.00}, uses=30, maxlevel=2},
			fleshy = {times={[2]=0.6, [3]=0.35}, uses=35, maxlevel=1}
Perttu Ahola's avatar
Perttu Ahola committed
		}
	},
})
minetest.register_tool("default:pick_mese", {
	description = "Mese Pickaxe",
	inventory_image = "default_tool_mesepick.png",
	tool_capabilities = {
Calinou's avatar
Calinou committed
		full_punch_interval = 0.65,
Perttu Ahola's avatar
Perttu Ahola committed
		max_drop_level=3,
		groupcaps={
Calinou's avatar
Calinou committed
			cracky = {times={[1]=2.0, [2]=1.0, [3]=0.5}, uses=20, maxlevel=3},
			crumbly = {times={[1]=2.0, [2]=1.0, [3]=0.5}, uses=20, maxlevel=3},
			snappy = {times={[1]=2.0, [2]=1.0, [3]=0.5}, uses=20, maxlevel=3},
			fleshy = {times={[2]=0.6, [3]=0.5}, uses=80, maxlevel=1}
Perttu Ahola's avatar
Perttu Ahola committed
		}
	},
})
minetest.register_tool("default:shovel_wood", {
	description = "Wooden Shovel",
	inventory_image = "default_tool_woodshovel.png",
	wield_image = "default_tool_woodshovel.png^[transformR90",
Perttu Ahola's avatar
Perttu Ahola committed
	tool_capabilities = {
Calinou's avatar
Calinou committed
		full_punch_interval = 1.2,
Perttu Ahola's avatar
Perttu Ahola committed
		max_drop_level=0,
		groupcaps={
Calinou's avatar
Calinou committed
			crumbly = {times={[1]=3.00, [2]=0.80, [3]=0.50}, uses=10, maxlevel=1},
			fleshy = {times={[2]=1.05, [3]=0.70}, uses=25, maxlevel=1}
Perttu Ahola's avatar
Perttu Ahola committed
		}
	},
})
minetest.register_tool("default:shovel_stone", {
	description = "Stone Shovel",
	inventory_image = "default_tool_stoneshovel.png",
	wield_image = "default_tool_stoneshovel.png^[transformR90",
Perttu Ahola's avatar
Perttu Ahola committed
	tool_capabilities = {
Calinou's avatar
Calinou committed
		full_punch_interval = 1.4,
Perttu Ahola's avatar
Perttu Ahola committed
		max_drop_level=0,
		groupcaps={
Calinou's avatar
Calinou committed
			crumbly = {times={[1]=1.50, [2]=0.50, [3]=0.30}, uses=20, maxlevel=1},
			fleshy = {times={[2]=0.75, [3]=0.50}, uses=40, maxlevel=1}
Perttu Ahola's avatar
Perttu Ahola committed
		}
	},
})
minetest.register_tool("default:shovel_steel", {
	description = "Steel Shovel",
	inventory_image = "default_tool_steelshovel.png",
	wield_image = "default_tool_steelshovel.png^[transformR90",
Perttu Ahola's avatar
Perttu Ahola committed
	tool_capabilities = {
Calinou's avatar
Calinou committed
		full_punch_interval = 1.1,
Perttu Ahola's avatar
Perttu Ahola committed
		max_drop_level=1,
		groupcaps={
Calinou's avatar
Calinou committed
			crumbly = {times={[1]=1.50, [2]=0.70, [3]=0.60}, uses=30, maxlevel=2},
			fleshy = {times={[2]=0.45, [3]=0.30}, uses=50, maxlevel=1}
Perttu Ahola's avatar
Perttu Ahola committed
		}
	},
})
minetest.register_tool("default:axe_wood", {
	description = "Wooden Axe",
	inventory_image = "default_tool_woodaxe.png",
	tool_capabilities = {
Calinou's avatar
Calinou committed
		full_punch_interval = 1.0,
Perttu Ahola's avatar
Perttu Ahola committed
		max_drop_level=0,
		groupcaps={
jojoa1997's avatar
jojoa1997 committed
			choppy = {times={[2]=1.60, [3]=1.20}, uses=10, maxlevel=1},
Calinou's avatar
Calinou committed
			fleshy = {times={[2]=0.70, [3]=0.50}, uses=5, maxlevel=1}
Perttu Ahola's avatar
Perttu Ahola committed
		}
	},
})
minetest.register_tool("default:axe_stone", {
	description = "Stone Axe",
	inventory_image = "default_tool_stoneaxe.png",
	tool_capabilities = {
Calinou's avatar
Calinou committed
		full_punch_interval = 1.2,
Perttu Ahola's avatar
Perttu Ahola committed
		max_drop_level=0,
		groupcaps={
jojoa1997's avatar
jojoa1997 committed
			choppy={times={[1]=3.00, [2]=1.40, [3]=1.00}, uses=20, maxlevel=1},
Calinou's avatar
Calinou committed
			fleshy={times={[2]=0.60, [3]=0.40}, uses=15, maxlevel=1}
Perttu Ahola's avatar
Perttu Ahola committed
		}
	},
})
minetest.register_tool("default:axe_steel", {
	description = "Steel Axe",
	inventory_image = "default_tool_steelaxe.png",
	tool_capabilities = {
Calinou's avatar
Calinou committed
		full_punch_interval = 0.9,
Perttu Ahola's avatar
Perttu Ahola committed
		max_drop_level=1,
		groupcaps={
jojoa1997's avatar
jojoa1997 committed
			choppy={times={[1]=2.60, [2]=1.00, [3]=0.60}, uses=30, maxlevel=2},
Calinou's avatar
Calinou committed
			fleshy={times={[2]=0.40, [3]=0.25}, uses=25, maxlevel=1}
Perttu Ahola's avatar
Perttu Ahola committed
		}
	},
})
minetest.register_tool("default:sword_wood", {
	description = "Wooden Sword",
	inventory_image = "default_tool_woodsword.png",
	tool_capabilities = {
Calinou's avatar
Calinou committed
		full_punch_interval = 0.9,
Perttu Ahola's avatar
Perttu Ahola committed
		max_drop_level=0,
		groupcaps={
			fleshy={times={[2]=1.10, [3]=0.60}, uses=10, maxlevel=1},
Calinou's avatar
Calinou committed
			snappy={times={[2]=0.9, [3]=0.45}, uses=10, maxlevel=1},
			choppy={times={[3]=0.90}, uses=20, maxlevel=0}
Perttu Ahola's avatar
Perttu Ahola committed
		}
	}
})
minetest.register_tool("default:sword_stone", {
	description = "Stone Sword",
	inventory_image = "default_tool_stonesword.png",
	tool_capabilities = {
Calinou's avatar
Calinou committed
		full_punch_interval = 1.1,
Perttu Ahola's avatar
Perttu Ahola committed
		max_drop_level=0,
		groupcaps={
			fleshy={times={[2]=0.80, [3]=0.40}, uses=20, maxlevel=1},
Calinou's avatar
Calinou committed
			snappy={times={[2]=0.75, [3]=0.35}, uses=20, maxlevel=1},
			choppy={times={[3]=0.70}, uses=20, maxlevel=0}
Perttu Ahola's avatar
Perttu Ahola committed
		}
	}
})
minetest.register_tool("default:sword_steel", {
	description = "Steel Sword",
	inventory_image = "default_tool_steelsword.png",
	tool_capabilities = {
Calinou's avatar
Calinou committed
		full_punch_interval = 0.8,
Perttu Ahola's avatar
Perttu Ahola committed
		max_drop_level=1,
		groupcaps={
			fleshy={times={[1]=2.00, [2]=0.80, [3]=0.40}, uses=10, maxlevel=2},
			snappy={times={[2]=0.70, [3]=0.30}, uses=40, maxlevel=1},
Calinou's avatar
Calinou committed
			choppy={times={[3]=0.65}, uses=40, maxlevel=0}
Perttu Ahola's avatar
Perttu Ahola committed
		}
	}
})

--
-- Crafting definition
--

minetest.register_craft({
	output = 'default:wood 4',
	recipe = {
		{'default:tree'},
	}
})

minetest.register_craft({
	output = 'default:junglewood 4',
	recipe = {
		{'default:jungletree'},
	}
})

Perttu Ahola's avatar
Perttu Ahola committed
minetest.register_craft({
	output = 'default:stick 4',
	recipe = {
PilzAdam's avatar
PilzAdam committed
		{'group:wood'},
Perttu Ahola's avatar
Perttu Ahola committed
	}
})

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 = {
PilzAdam's avatar
PilzAdam committed
		{'group:wood', 'group:wood', 'group:wood'},
		{'group:wood', 'group:wood', 'group:wood'},
Perttu Ahola's avatar
Perttu Ahola committed
		{'', 'default:stick', ''},
	}
})

minetest.register_craft({
	output = 'default:torch 4',
	recipe = {
		{'default:coal_lump'},
		{'default:stick'},
	}
})

minetest.register_craft({
	output = 'default:pick_wood',
	recipe = {
PilzAdam's avatar
PilzAdam committed
		{'group:wood', 'group:wood', 'group:wood'},
Perttu Ahola's avatar
Perttu Ahola committed
		{'', 'default:stick', ''},
		{'', 'default:stick', ''},
	}
})

minetest.register_craft({
	output = 'default:pick_stone',
	recipe = {
PilzAdam's avatar
PilzAdam committed
		{'group:stone', 'group:stone', 'group:stone'},
Perttu Ahola's avatar
Perttu Ahola committed
		{'', '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_mese',
	recipe = {
		{'default:mese_crystal', 'default:mese_crystal', 'default:mese_crystal'},
Perttu Ahola's avatar
Perttu Ahola committed
		{'', 'default:stick', ''},
		{'', 'default:stick', ''},
	}
})

minetest.register_craft({
	output = 'default:shovel_wood',
	recipe = {
PilzAdam's avatar
PilzAdam committed
		{'group:wood'},
Perttu Ahola's avatar
Perttu Ahola committed
		{'default:stick'},
		{'default:stick'},
	}
})

minetest.register_craft({
	output = 'default:shovel_stone',
	recipe = {
PilzAdam's avatar
PilzAdam committed
		{'group:stone'},
Perttu Ahola's avatar
Perttu Ahola committed
		{'default:stick'},
		{'default:stick'},
	}
})

minetest.register_craft({
	output = 'default:shovel_steel',
	recipe = {
		{'default:steel_ingot'},
		{'default:stick'},
		{'default:stick'},
	}
})

minetest.register_craft({
	output = 'default:axe_wood',
	recipe = {
PilzAdam's avatar
PilzAdam committed
		{'group:wood', 'group:wood'},
		{'group:wood', 'default:stick'},
Perttu Ahola's avatar
Perttu Ahola committed
		{'', 'default:stick'},
	}
})

minetest.register_craft({
	output = 'default:axe_stone',
	recipe = {
PilzAdam's avatar
PilzAdam committed
		{'group:stone', 'group:stone'},
		{'group:stone', 'default:stick'},
Perttu Ahola's avatar
Perttu Ahola committed
		{'', '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:sword_wood',
	recipe = {
PilzAdam's avatar
PilzAdam committed
		{'group:wood'},
		{'group:wood'},
Perttu Ahola's avatar
Perttu Ahola committed
		{'default:stick'},
	}
})

minetest.register_craft({
	output = 'default:sword_stone',
	recipe = {
PilzAdam's avatar
PilzAdam committed
		{'group:stone'},
		{'group:stone'},
Perttu Ahola's avatar
Perttu Ahola committed
		{'default:stick'},
	}
})

minetest.register_craft({
	output = 'default:sword_steel',
	recipe = {
		{'default:steel_ingot'},
		{'default:steel_ingot'},
		{'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 = {
PilzAdam's avatar
PilzAdam committed
		{'group:wood', 'group:wood', 'group:wood'},
		{'group:wood', '', 'group:wood'},
		{'group:wood', 'group:wood', 'group:wood'},
Perttu Ahola's avatar
Perttu Ahola committed
	}
})

minetest.register_craft({
	output = 'default:chest_locked',
	recipe = {
PilzAdam's avatar
PilzAdam committed
		{'group:wood', 'group:wood', 'group:wood'},
		{'group:wood', 'default:steel_ingot', 'group:wood'},
		{'group:wood', 'group:wood', 'group:wood'},
Perttu Ahola's avatar
Perttu Ahola committed
	}
})

minetest.register_craft({
	output = 'default:furnace',
	recipe = {
PilzAdam's avatar
PilzAdam committed
		{'group:stone', 'group:stone', 'group:stone'},
		{'group:stone', '', 'group:stone'},
		{'group:stone', 'group:stone', 'group:stone'},
Perttu Ahola's avatar
Perttu Ahola committed
	}
})

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'},
	}
})

Perttu Ahola's avatar
Perttu Ahola committed
minetest.register_craft({
	output = 'default:sandstone',
	recipe = {
PilzAdam's avatar
PilzAdam committed
		{'group:sand', 'group:sand'},
		{'group:sand', 'group:sand'},
minetest.register_craft({
	output = 'default:sand 4',
	recipe = {
		{'default:sandstone'},
	}
})

Perttu Ahola's avatar
Perttu Ahola committed
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'},
	}
})

Perttu Ahola's avatar
Perttu Ahola committed
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 = {
PilzAdam's avatar
PilzAdam committed
		{'group:wood', 'group:wood', 'group:wood'},
Perttu Ahola's avatar
Perttu Ahola committed
		{'default:book', 'default:book', 'default:book'},
PilzAdam's avatar
PilzAdam committed
		{'group:wood', 'group:wood', 'group:wood'},
Perttu Ahola's avatar
Perttu Ahola committed
	}
})

minetest.register_craft({
	output = 'default:ladder',
	recipe = {
		{'default:stick', '', 'default:stick'},
		{'default:stick', 'default:stick', 'default:stick'},
		{'default:stick', '', 'default:stick'},
	}
})

	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 = {
	}
})

minetest.register_craft({
	output = 'default:mese_crystal_fragment 9',
	recipe = {
		{'default:mese_crystal'},
	}
})

jojoa1997's avatar
jojoa1997 committed
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'},
	}
})
PilzAdam's avatar
PilzAdam committed

minetest.register_craft({
	output = 'default:stonebrick',
	recipe = {
		{'default:stone', 'default:stone'},
		{'default:stone', 'default:stone'},
	}
})

Perttu Ahola's avatar
Perttu Ahola committed
--
-- Crafting (tool repair)
--
minetest.register_craft({
	type = "toolrepair",
	additional_wear = -0.02,
})

--
-- Cooking recipes
--

minetest.register_craft({
	type = "cooking",
	output = "default:glass",
PilzAdam's avatar
PilzAdam committed
	recipe = "group:sand",
jojoa1997's avatar
jojoa1997 committed
minetest.register_craft({
	type = "cooking",
	output = "default:obsidian_glass",
	recipe = "default:obsidian_shard",
})

Perttu Ahola's avatar
Perttu Ahola committed
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:clay_brick",
	recipe = "default:clay_lump",
})

--
-- Fuels
--

minetest.register_craft({
	type = "fuel",
PilzAdam's avatar
PilzAdam committed
	recipe = "group:tree",
Perttu Ahola's avatar
Perttu Ahola committed
	burntime = 30,
})

minetest.register_craft({
	type = "fuel",
	recipe = "default:junglegrass",
	burntime = 2,
})

minetest.register_craft({
	type = "fuel",
	recipe = "group:leaves",
Perttu Ahola's avatar
Perttu Ahola committed
	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",
PilzAdam's avatar
PilzAdam committed
	recipe = "group:wood",
Perttu Ahola's avatar
Perttu Ahola committed
	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:junglesapling",
	burntime = 10,
})

PilzAdam's avatar
PilzAdam committed
minetest.register_craft({
	type = "fuel",
	recipe = "default:grass_1",
	burntime = 2,
})

Perttu Ahola's avatar
Perttu Ahola committed
--
-- Node definitions
--

-- Default node 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}
	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
DannyDark's avatar
DannyDark committed
			{name="default_hard_footstep", gain=0.25}
Perttu Ahola's avatar
Perttu Ahola committed
	table.dug = table.dug or
			{name="default_break_glass", gain=1.0}
	default.node_sound_defaults(table)
	return table
end

--

minetest.register_node("default:stone", {
	description = "Stone",
	tiles = {"default_stone.png"},
Perttu Ahola's avatar
Perttu Ahola committed
	is_ground_content = true,
PilzAdam's avatar
PilzAdam committed
	groups = {cracky=3, stone=1},
Perttu Ahola's avatar
Perttu Ahola committed
	drop = 'default:cobble',
	legacy_mineral = true,
	sounds = default.node_sound_stone_defaults(),
})

minetest.register_node("default:desert_stone", {
	description = "Desert Stone",
	tiles = {"default_desert_stone.png"},
	is_ground_content = true,
PilzAdam's avatar
PilzAdam committed
	groups = {cracky=3, stone=1},
	drop = 'default:desert_stone',
	legacy_mineral = true,
	sounds = default.node_sound_stone_defaults(),
})

Perttu Ahola's avatar
Perttu Ahola committed
minetest.register_node("default:stone_with_coal", {
	description = "Coal Ore",
	tiles = {"default_stone.png^default_mineral_coal.png"},
Perttu Ahola's avatar
Perttu Ahola committed
	is_ground_content = true,
	groups = {cracky=3},
	drop = 'default:coal_lump',
	sounds = default.node_sound_stone_defaults(),
})

minetest.register_node("default:stone_with_iron", {
	description = "Iron Ore",
	tiles = {"default_stone.png^default_mineral_iron.png"},
Perttu Ahola's avatar
Perttu Ahola committed
	is_ground_content = true,
	groups = {cracky=3},
	drop = 'default:iron_lump',
	sounds = default.node_sound_stone_defaults(),
})

minetest.register_node("default:stone_with_mese", {
	description = "Mese Crystals in Stone",
	tiles = {"default_stone.png^default_mineral_mese.png"},
	is_ground_content = true,
	groups = {cracky=1},
	drop = "default:mese_crystal",
	sounds = default.node_sound_stone_defaults(),
})

PilzAdam's avatar
PilzAdam committed
minetest.register_node("default:stonebrick", {
	description = "Stone Brick",
	tiles = {"default_stone_brick.png"},
	is_ground_content = true,
	groups = {cracky=3, stone=1},
	sounds = default.node_sound_stone_defaults(),
})

Perttu Ahola's avatar
Perttu Ahola committed
minetest.register_node("default:dirt_with_grass", {
	description = "Dirt with Grass",
	tiles = {"default_grass.png", "default_dirt.png", "default_dirt.png^default_grass_side.png"},
Perttu Ahola's avatar
Perttu Ahola committed
	is_ground_content = true,
	groups = {crumbly=3},
	drop = 'default:dirt',
	sounds = default.node_sound_dirt_defaults({
		footstep = {name="default_grass_footstep", gain=0.4},
	}),
})

minetest.register_node("default:dirt_with_grass_footsteps", {
	description = "Dirt with Grass and Footsteps",
	tiles = {"default_grass_footsteps.png", "default_dirt.png", "default_dirt.png^default_grass_side.png"},
Perttu Ahola's avatar
Perttu Ahola committed
	is_ground_content = true,
	groups = {crumbly=3, not_in_creative_inventory=1},
Perttu Ahola's avatar
Perttu Ahola committed
	drop = 'default:dirt',
	sounds = default.node_sound_dirt_defaults({
		footstep = {name="default_grass_footstep", gain=0.4},
	}),
})

minetest.register_node("default:dirt", {
	description = "Dirt",
	tiles = {"default_dirt.png"},
Perttu Ahola's avatar
Perttu Ahola committed
	is_ground_content = true,
	groups = {crumbly=3},
	sounds = default.node_sound_dirt_defaults(),
})

minetest.register_node("default:sand", {
	description = "Sand",
	tiles = {"default_sand.png"},
Perttu Ahola's avatar
Perttu Ahola committed
	is_ground_content = true,
PilzAdam's avatar
PilzAdam committed
	groups = {crumbly=3, falling_node=1, sand=1},
Perttu Ahola's avatar
Perttu Ahola committed
	sounds = default.node_sound_sand_defaults(),
})

minetest.register_node("default:desert_sand", {
	description = "Desert Sand",
	tiles = {"default_desert_sand.png"},
	is_ground_content = true,
Jat's avatar
Jat committed
	groups = {crumbly=3, falling_node=1, sand=1},
	sounds = default.node_sound_sand_defaults(),
})

Perttu Ahola's avatar
Perttu Ahola committed
minetest.register_node("default:gravel", {
	description = "Gravel",
	tiles = {"default_gravel.png"},
Perttu Ahola's avatar
Perttu Ahola committed
	is_ground_content = true,
	groups = {crumbly=2, falling_node=1},
Perttu Ahola's avatar
Perttu Ahola committed
	sounds = default.node_sound_dirt_defaults({
		footstep = {name="default_gravel_footstep", gain=0.45},
	}),
})

minetest.register_node("default:sandstone", {
	description = "Sandstone",
	tiles = {"default_sandstone.png"},
Perttu Ahola's avatar
Perttu Ahola committed
	is_ground_content = true,
	groups = {crumbly=2,cracky=2},
	sounds = default.node_sound_stone_defaults(),
})

minetest.register_node("default:clay", {
	description = "Clay",
	tiles = {"default_clay.png"},
Perttu Ahola's avatar
Perttu Ahola committed
	is_ground_content = true,
	groups = {crumbly=3},
	drop = 'default:clay_lump 4',
	sounds = default.node_sound_dirt_defaults({
		footstep = "",
	}),
})

minetest.register_node("default:brick", {
	description = "Brick Block",
	tiles = {"default_brick.png"},
Perttu Ahola's avatar
Perttu Ahola committed
	is_ground_content = true,
	groups = {cracky=3},
	sounds = default.node_sound_stone_defaults(),
})

minetest.register_node("default:tree", {
	description = "Tree",
	tiles = {"default_tree_top.png", "default_tree_top.png", "default_tree.png"},
Perttu Ahola's avatar
Perttu Ahola committed
	is_ground_content = true,
	groups = {tree=1,snappy=1,choppy=2,oddly_breakable_by_hand=1,flammable=2},
Perttu Ahola's avatar
Perttu Ahola committed
	sounds = default.node_sound_wood_defaults(),
})

minetest.register_node("default:jungletree", {
	description = "Jungle Tree",
	tiles = {"default_jungletree_top.png", "default_jungletree_top.png", "default_jungletree.png"},
Perttu Ahola's avatar
Perttu Ahola committed
	is_ground_content = true,
	groups = {tree=1,snappy=1,choppy=2,oddly_breakable_by_hand=1,flammable=2},
Perttu Ahola's avatar
Perttu Ahola committed
	sounds = default.node_sound_wood_defaults(),
})

minetest.register_node("default:junglewood", {
	description = "Junglewood Planks",
	tiles = {"default_junglewood.png"},
	is_ground_content = true,
	groups = {snappy=1,choppy=2,oddly_breakable_by_hand=2,flammable=3,wood=1},
	sounds = default.node_sound_wood_defaults(),
})

minetest.register_node("default:jungleleaves", {
	description = "Jungle Leaves",
	drawtype = "allfaces_optional",
	visual_scale = 1.3,
	tiles = {"default_jungleleaves.png"},
	paramtype = "light",
	groups = {snappy=3, leafdecay=3, flammable=2, leaves=1},
	drop = {
		max_items = 1,
		items = {
			{
				-- player will get sapling with 1/20 chance
				items = {'default:junglesapling'},
				rarity = 20,
			},
			{
				-- player will get leaves only if he get no saplings,
				-- this is because max_items is 1
				items = {'default:jungleleaves'},
			}
		}
	},
	sounds = default.node_sound_leaves_defaults(),
})

minetest.register_node("default:junglesapling", {
	description = "Jungle Sapling",
	drawtype = "plantlike",
	visual_scale = 1.0,
	tiles = {"default_junglesapling.png"},
	inventory_image = "default_junglesapling.png",
	wield_image = "default_junglesapling.png",
	paramtype = "light",
	walkable = false,
	selection_box = {
		type = "fixed",
		fixed = {-0.3, -0.5, -0.3, 0.3, 0.35, 0.3}
	},
	groups = {snappy=2,dig_immediate=3,flammable=2,attached_node=1},
	sounds = default.node_sound_defaults(),
})
-- alias for tree growing abm in content_abm.cpp
minetest.register_alias("junglesapling", "default:junglesapling")

Perttu Ahola's avatar
Perttu Ahola committed
minetest.register_node("default:junglegrass", {
	description = "Jungle Grass",
	drawtype = "plantlike",