Implement block sounds! 😳
parent
2dca06cba1
commit
2195da170e
|
@ -8,7 +8,7 @@ def download(url, name):
|
|||
|
||||
def check_sound_and_download(url, name):
|
||||
if not Path(name).exists():
|
||||
print("File \"%s\"doesn't exist, let's download it." % name)
|
||||
print("File \"%s\" doesn't exist, let's download it." % name)
|
||||
download(url, name)
|
||||
else:
|
||||
print("File \"%s\" already exists." % name)
|
||||
|
@ -24,6 +24,12 @@ def main():
|
|||
for i in range(1,4):
|
||||
check_sound_and_download("https://betacraft.pl/MinecraftResources/newmusic/piano%s.ogg" % i, Path("mods/minecraft_music/sounds/piano%s.ogg" % i))
|
||||
|
||||
# step sounds
|
||||
step_sounds = [ 'cloth', 'grass', 'gravel', 'sand', 'snow', 'stone', 'wood' ]
|
||||
for step_sound in step_sounds:
|
||||
for i in range(1,5):
|
||||
check_sound_and_download("https://betacraft.pl/MinecraftResources/newsound/step/%s%s.ogg" % (step_sound, i), Path("mods/minecraft/sounds/%s.%s.ogg" % (step_sound, i)))
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
||||
|
|
|
@ -2,7 +2,8 @@ minetest.register_node("minecraft:stone", {
|
|||
description = "Stone",
|
||||
tiles = {"terrain.png^[sheet:16x16:1,0"},
|
||||
groups = {cracky=3},
|
||||
drop = "minecraft:cobble"
|
||||
drop = "minecraft:cobble",
|
||||
sounds = block_sound('stone'),
|
||||
})
|
||||
|
||||
minetest.register_node("minecraft:grass", {
|
||||
|
@ -12,19 +13,26 @@ minetest.register_node("minecraft:grass", {
|
|||
{name = "terrain.png^[sheet:16x16:3,0",
|
||||
tileable_vertical = false}},
|
||||
groups = {crumbly=3, soil=1, cultivatable=1},
|
||||
sounds = block_sound('grass'),
|
||||
})
|
||||
|
||||
minetest.register_node("minecraft:dirt", {
|
||||
description = "Dirt",
|
||||
tiles ={"terrain.png^[sheet:16x16:2,0"},
|
||||
groups = {crumbly=3, soil=1, cultivatable=1},
|
||||
sounds = block_sound('gravel'),
|
||||
})
|
||||
|
||||
minetest.register_node("minecraft:oak", {
|
||||
description = "Wood",
|
||||
tiles = {"terrain.png^[sheet:16x16:5,1", "terrain.png^[sheet:16x16:5,1", "terrain.png^[sheet:16x16:4,1"},
|
||||
tiles = {
|
||||
"terrain.png^[sheet:16x16:5,1",
|
||||
"terrain.png^[sheet:16x16:5,1",
|
||||
"terrain.png^[sheet:16x16:4,1"
|
||||
},
|
||||
is_ground_content = false,
|
||||
groups = {choppy=2,oddly_breakable_by_hand=2},
|
||||
sounds = block_sound('wood'),
|
||||
})
|
||||
|
||||
minetest.register_node("minecraft:leaves", {
|
||||
|
@ -44,6 +52,7 @@ minetest.register_node("minecraft:leaves", {
|
|||
},
|
||||
}
|
||||
},
|
||||
sounds = block_sound('grass'),
|
||||
})
|
||||
|
||||
minetest.register_node("minecraft:plank", {
|
||||
|
@ -51,6 +60,7 @@ minetest.register_node("minecraft:plank", {
|
|||
tiles = {"terrain.png^[sheet:16x16:4,0"},
|
||||
is_ground_content = false,
|
||||
groups = {choppy=2,oddly_breakable_by_hand=2},
|
||||
sounds = block_sound('wood'),
|
||||
})
|
||||
|
||||
minetest.register_node("minecraft:glass", {
|
||||
|
@ -62,18 +72,21 @@ minetest.register_node("minecraft:glass", {
|
|||
is_ground_content = false,
|
||||
sunlight_propagates = true,
|
||||
groups = {cracky=3,oddly_breakable_by_hand=3},
|
||||
sounds = block_sound('glass'),
|
||||
})
|
||||
|
||||
minetest.register_node("minecraft:sand", {
|
||||
description = "Sand",
|
||||
tiles ={"terrain.png^[sheet:16x16:2,1"},
|
||||
groups = {falling_node=1,crumbly=3},
|
||||
sounds = block_sound('sand'),
|
||||
})
|
||||
|
||||
minetest.register_node("minecraft:gravel", {
|
||||
description = "Gravel",
|
||||
tiles ={"terrain.png^[sheet:16x16:3,1"},
|
||||
groups = {falling_node=1,crumbly=3},
|
||||
sounds = block_sound('gravel'),
|
||||
})
|
||||
|
||||
minetest.register_node("minecraft:cobble", {
|
||||
|
@ -81,6 +94,7 @@ minetest.register_node("minecraft:cobble", {
|
|||
tiles ={"terrain.png^[sheet:16x16:0,1"},
|
||||
is_ground_content = false,
|
||||
groups = {cracky=3},
|
||||
sounds = block_sound('stone'),
|
||||
})
|
||||
|
||||
minetest.register_node("minecraft:mossycobble", {
|
||||
|
@ -88,6 +102,7 @@ minetest.register_node("minecraft:mossycobble", {
|
|||
tiles ={"terrain.png^[sheet:16x16:4,2"},
|
||||
is_ground_content = false,
|
||||
groups = {cracky=3},
|
||||
sounds = block_sound('stone'),
|
||||
})
|
||||
|
||||
minetest.register_node("minecraft:bedrock", {
|
||||
|
@ -95,6 +110,7 @@ minetest.register_node("minecraft:bedrock", {
|
|||
tiles ={"terrain.png^[sheet:16x16:1,1"},
|
||||
is_ground_content = false,
|
||||
groups = {unbreakable=1},
|
||||
sounds = block_sound('stone'),
|
||||
})
|
||||
|
||||
minetest.register_node("minecraft:bricks", {
|
||||
|
@ -102,6 +118,7 @@ minetest.register_node("minecraft:bricks", {
|
|||
tiles ={"terrain.png^[sheet:16x16:7,0"},
|
||||
is_ground_content = false,
|
||||
groups = {cracky=3},
|
||||
sounds = block_sound('stone'),
|
||||
})
|
||||
|
||||
minetest.register_node("minecraft:bookshelf", {
|
||||
|
@ -109,32 +126,37 @@ minetest.register_node("minecraft:bookshelf", {
|
|||
tiles = {"terrain.png^[sheet:16x16:4,0", "terrain.png^[sheet:16x16:4,0", "terrain.png^[sheet:16x16:3,2"},
|
||||
is_ground_content = false,
|
||||
groups = {choppy=2,oddly_breakable_by_hand=2},
|
||||
sounds = block_sound('wood'),
|
||||
})
|
||||
|
||||
minetest.register_node("minecraft:coal_ore", {
|
||||
description = "Coal Ore",
|
||||
tiles = {"terrain.png^[sheet:16x16:2,2"},
|
||||
groups = {cracky = 3},
|
||||
drop = "minecraft:coal"
|
||||
drop = "minecraft:coal",
|
||||
sounds = block_sound('stone'),
|
||||
})
|
||||
|
||||
minetest.register_node("minecraft:iron_ore", {
|
||||
description = "Iron Ore",
|
||||
tiles = {"terrain.png^[sheet:16x16:1,2"},
|
||||
groups = {cracky=2,level=1},
|
||||
sounds = block_sound('stone'),
|
||||
})
|
||||
|
||||
minetest.register_node("minecraft:gold_ore", {
|
||||
description = "Gold Ore",
|
||||
tiles = {"terrain.png^[sheet:16x16:0,2"},
|
||||
groups = {cracky=2,level=1},
|
||||
sounds = block_sound('stone'),
|
||||
})
|
||||
|
||||
minetest.register_node("minecraft:diamond_ore", {
|
||||
description = "Diamond Ore",
|
||||
tiles = {"terrain.png^[sheet:16x16:2,3"},
|
||||
groups = {cracky=1,level=2},
|
||||
drop = "minecraft:diamond"
|
||||
drop = "minecraft:diamond",
|
||||
sounds = block_sound('stone'),
|
||||
})
|
||||
|
||||
minetest.register_node("minecraft:plank_stairs", {
|
||||
|
@ -151,7 +173,8 @@ minetest.register_node("minecraft:plank_stairs", {
|
|||
{-0.5, -0.5, -0.5, 0.5, 0, 0.5}, -- NodeBox1
|
||||
{-0.5, -0.5, 0, 0.5, 0.5, 0.5}, -- NodeBox2
|
||||
}
|
||||
}
|
||||
},
|
||||
sounds = block_sound('wood'),
|
||||
})
|
||||
|
||||
minetest.register_node("minecraft:cobble_stairs", {
|
||||
|
@ -168,7 +191,8 @@ minetest.register_node("minecraft:cobble_stairs", {
|
|||
{-0.5, -0.5, -0.5, 0.5, 0, 0.5}, -- NodeBox1
|
||||
{-0.5, -0.5, 0, 0.5, 0.5, 0.5}, -- NodeBox2
|
||||
}
|
||||
}
|
||||
},
|
||||
sounds = block_sound('stone'),
|
||||
})
|
||||
|
||||
minetest.register_node("minecraft:plank_slab", {
|
||||
|
@ -183,7 +207,8 @@ minetest.register_node("minecraft:plank_slab", {
|
|||
fixed = {
|
||||
{-0.5, -0.5, -0.5, 0.5, 0, 0.5}, -- NodeBox1
|
||||
}
|
||||
}
|
||||
},
|
||||
sounds = block_sound('wood'),
|
||||
})
|
||||
|
||||
minetest.register_node("minecraft:cobble_slab", {
|
||||
|
@ -198,7 +223,8 @@ minetest.register_node("minecraft:cobble_slab", {
|
|||
fixed = {
|
||||
{-0.5, -0.5, -0.5, 0.5, 0, 0.5}, -- NodeBox1
|
||||
}
|
||||
}
|
||||
},
|
||||
sounds = block_sound('stone'),
|
||||
})
|
||||
|
||||
minetest.register_node("minecraft:stone_slab", {
|
||||
|
@ -220,7 +246,8 @@ minetest.register_node("minecraft:stone_slab", {
|
|||
fixed = {
|
||||
{-0.5, -0.5, -0.5, 0.5, 0, 0.5}, -- NodeBox1
|
||||
}
|
||||
}
|
||||
},
|
||||
sounds = block_sound('stone'),
|
||||
})
|
||||
|
||||
minetest.register_node("minecraft:stone_slab_block", {
|
||||
|
@ -235,7 +262,8 @@ minetest.register_node("minecraft:stone_slab_block", {
|
|||
},
|
||||
is_ground_content = false,
|
||||
groups = {cracky=3},
|
||||
drop = "minecraft:stone_slab"
|
||||
drop = "minecraft:stone_slab",
|
||||
sounds = block_sound('stone'),
|
||||
})
|
||||
|
||||
|
||||
|
@ -251,6 +279,7 @@ minetest.register_node("minecraft:iron_block", {
|
|||
"terrain.png^[sheet:16x16:6,2", -- z-
|
||||
},
|
||||
groups = {cracky=2,level=1},
|
||||
sounds = block_sound('metal'),
|
||||
})
|
||||
|
||||
minetest.register_node("minecraft:gold_block", {
|
||||
|
@ -264,6 +293,7 @@ minetest.register_node("minecraft:gold_block", {
|
|||
"terrain.png^[sheet:16x16:7,2", -- z-
|
||||
},
|
||||
groups = {cracky=2,level=1},
|
||||
sounds = block_sound('metal'),
|
||||
})
|
||||
|
||||
minetest.register_node("minecraft:diamond_block", {
|
||||
|
@ -277,6 +307,7 @@ minetest.register_node("minecraft:diamond_block", {
|
|||
"terrain.png^[sheet:16x16:8,2", -- z-
|
||||
},
|
||||
groups = {cracky=1,level=2},
|
||||
sounds = block_sound('metal'),
|
||||
})
|
||||
|
||||
minetest.register_node("minecraft:crafting_table", {
|
||||
|
@ -308,12 +339,14 @@ minetest.register_node("minecraft:crafting_table", {
|
|||
|
||||
minetest.show_formspec(player:get_player_name(), "main", form)
|
||||
end,
|
||||
sounds = block_sound('wood'),
|
||||
})
|
||||
|
||||
minetest.register_node("minecraft:obsidian", {
|
||||
description = "Obsidian",
|
||||
tiles = {"terrain.png^[sheet:16x16:5,2"},
|
||||
groups = {cracky=1, level=3},
|
||||
sounds = block_sound('stone'),
|
||||
})
|
||||
|
||||
minetest.register_node("minecraft:tnt", {
|
||||
|
@ -322,7 +355,8 @@ minetest.register_node("minecraft:tnt", {
|
|||
"terrain.png^[sheet:16x16:10,0",
|
||||
"terrain.png^[sheet:16x16:8,0"},
|
||||
is_ground_content = false,
|
||||
groups = {dig_immediate=2}
|
||||
groups = {dig_immediate=2},
|
||||
sounds = block_sound('grass'),
|
||||
})
|
||||
|
||||
minetest.register_node("minecraft:flower", {
|
||||
|
@ -334,7 +368,8 @@ minetest.register_node("minecraft:flower", {
|
|||
tiles = {"terrain.png^[sheet:16x16:13,0"},
|
||||
groups = {dig_immediate=3,snappy=3,attached_node = 1},
|
||||
inventory_image = "terrain.png^[sheet:16x16:13,0",
|
||||
waving = 1
|
||||
waving = 1,
|
||||
sounds = block_sound('grass'),
|
||||
})
|
||||
|
||||
minetest.register_node("minecraft:rose", {
|
||||
|
@ -346,7 +381,8 @@ minetest.register_node("minecraft:rose", {
|
|||
tiles = {"terrain.png^[sheet:16x16:12,0"},
|
||||
groups = {dig_immediate=3,snappy=3,attached_node = 1},
|
||||
inventory_image = "terrain.png^[sheet:16x16:12,0",
|
||||
waving = 1
|
||||
waving = 1,
|
||||
sounds = block_sound('grass'),
|
||||
})
|
||||
|
||||
minetest.register_node("minecraft:mushroom", {
|
||||
|
@ -358,7 +394,8 @@ minetest.register_node("minecraft:mushroom", {
|
|||
tiles = {"terrain.png^[sheet:16x16:12,1"},
|
||||
groups = {dig_immediate=3,attached_node = 1},
|
||||
inventory_image = "terrain.png^[sheet:16x16:12,1",
|
||||
waving = 1
|
||||
waving = 1,
|
||||
sounds = block_sound('grass'),
|
||||
})
|
||||
|
||||
minetest.register_node("minecraft:mushroom2", {
|
||||
|
@ -370,13 +407,15 @@ minetest.register_node("minecraft:mushroom2", {
|
|||
tiles = {"terrain.png^[sheet:16x16:13,1"},
|
||||
groups = {dig_immediate=3,attached_node = 1},
|
||||
inventory_image = "terrain.png^[sheet:16x16:13,1",
|
||||
waving = 1
|
||||
waving = 1,
|
||||
sounds = block_sound('grass'),
|
||||
})
|
||||
|
||||
minetest.register_node("minecraft:wool", {
|
||||
description = "Wool",
|
||||
tiles = {"terrain.png^[sheet:16x16:0,4"},
|
||||
groups = {snappy=1,choppy=2,oddly_breakable_by_hand=3}
|
||||
groups = {snappy=1,choppy=2,oddly_breakable_by_hand=3},
|
||||
sounds = block_sound('cloth'),
|
||||
})
|
||||
|
||||
minetest.register_node("minecraft:spawner", {
|
||||
|
@ -387,6 +426,7 @@ minetest.register_node("minecraft:spawner", {
|
|||
is_ground_content = false,
|
||||
groups = {choppy=1},
|
||||
drop = "",
|
||||
sounds = block_sound('metal'),
|
||||
})
|
||||
|
||||
-- More blocks that are in their separate code file.
|
||||
|
|
|
@ -155,6 +155,8 @@ minetest.register_node(small_name, {
|
|||
drop = small_name,
|
||||
groups = {handy=1,axey=1, container=2, deco_block=1, material_wood=1,flammable=-1,not_in_creative_inventory=1,choppy=2},
|
||||
|
||||
sounds = block_sound('wood'),
|
||||
|
||||
is_ground_content = false,
|
||||
on_construct = function(pos)
|
||||
local param2 = minetest.get_node(pos).param2
|
||||
|
@ -258,6 +260,7 @@ minetest.register_node(left_name, {
|
|||
groups = {handy=1,axey=1, container=5,not_in_creative_inventory=1, material_wood=1,flammable=-1,double_chest=1,choppy=2},
|
||||
drop = small_name,
|
||||
is_ground_content = false,
|
||||
sounds = block_sound('wood'),
|
||||
on_construct = function(pos)
|
||||
local n = minetest.get_node(pos)
|
||||
local param2 = n.param2
|
||||
|
|
|
@ -298,6 +298,8 @@ function doors.register(name, def)
|
|||
def.collision_box = {type = "fixed", fixed = {-1/2,-1/2,-1/2,1/2,3/2,-5/16}}
|
||||
def.use_texture_alpha = "clip"
|
||||
|
||||
def.sounds = block_sound('wood')
|
||||
|
||||
def.mesh = "door_a.obj"
|
||||
minetest.register_node(":" .. name .. "_a", def)
|
||||
|
||||
|
|
|
@ -335,6 +335,7 @@ minetest.register_node("minecraft:furnace", {
|
|||
allow_metadata_inventory_put = allow_metadata_inventory_put,
|
||||
allow_metadata_inventory_move = allow_metadata_inventory_move,
|
||||
allow_metadata_inventory_take = allow_metadata_inventory_take,
|
||||
sounds = block_sound('stone')
|
||||
})
|
||||
|
||||
minetest.register_node("minecraft:lit_furnace", {
|
||||
|
@ -355,4 +356,5 @@ minetest.register_node("minecraft:lit_furnace", {
|
|||
allow_metadata_inventory_put = allow_metadata_inventory_put,
|
||||
allow_metadata_inventory_move = allow_metadata_inventory_move,
|
||||
allow_metadata_inventory_take = allow_metadata_inventory_take,
|
||||
sounds = block_sound('stone')
|
||||
})
|
|
@ -13,6 +13,7 @@ minetest.register_node("minecraft:ladder", {
|
|||
sunlight_propagates = true,
|
||||
walkable = true,
|
||||
climbable = true,
|
||||
sounds = block_sound('wood'),
|
||||
node_box = {
|
||||
type = "wallmounted",
|
||||
wall_side = { -0.5, -0.5, -0.5, -7/16, 0.5, 0.5 },
|
||||
|
|
|
@ -5,7 +5,8 @@ minetest.register_node("minecraft:sponge", {
|
|||
groups = {crumbly=3},
|
||||
on_construct = function(pos)
|
||||
sponge_behavior(pos)
|
||||
end
|
||||
end,
|
||||
sounds = block_sound('grass')
|
||||
})
|
||||
|
||||
minetest.register_abm({
|
||||
|
|
|
@ -38,6 +38,7 @@ local floordef = {
|
|||
light_source = minetest.LIGHT_MAX,
|
||||
groups = groups,
|
||||
drop = itemstring,
|
||||
sounds = block_sound('wood'),
|
||||
selection_box = {
|
||||
type = "wallmounted",
|
||||
wall_top = {-1/16, -1/16, -1/16, 1/16, 0.5, 1/16},
|
||||
|
|
|
@ -1,11 +1,14 @@
|
|||
dofile(minetest.get_modpath("minecraft") .. "/misc/farming.lua")
|
||||
|
||||
dofile(minetest.get_modpath("minecraft") .. "/sounds.lua")
|
||||
|
||||
dofile(minetest.get_modpath("minecraft") .. "/blocks.lua")
|
||||
dofile(minetest.get_modpath("minecraft") .. "/helpers.lua")
|
||||
dofile(minetest.get_modpath("minecraft") .. "/items.lua")
|
||||
dofile(minetest.get_modpath("minecraft") .. "/mapgen.lua")
|
||||
dofile(minetest.get_modpath("minecraft") .. "/recipes.lua")
|
||||
|
||||
|
||||
-- devs drop apples on death!
|
||||
minetest.register_on_dieplayer(function(entity, reason)
|
||||
if entity:get_player_name() == "ROllerozxa" or entity:get_player_name() == "Danil_2461" then
|
||||
|
|
|
@ -0,0 +1,25 @@
|
|||
|
||||
-- Returns a table with sounds for the given material.
|
||||
function block_sound(material)
|
||||
-- TODO: metal sounds
|
||||
if material == "metal" then
|
||||
material = "stone"
|
||||
end
|
||||
|
||||
local table = {
|
||||
footstep = {
|
||||
name = material,
|
||||
gain = 1.0
|
||||
},
|
||||
dug = {
|
||||
name = material,
|
||||
gain = 1.0
|
||||
},
|
||||
place = {
|
||||
name = material,
|
||||
gain = 1.0
|
||||
}
|
||||
}
|
||||
|
||||
return table
|
||||
end
|
Loading…
Reference in New Issue