Add Noteblock
This commit is contained in:
@@ -0,0 +1 @@
|
|||||||
|
mesecons
|
||||||
@@ -0,0 +1,76 @@
|
|||||||
|
minetest.register_node("mesecons_noteblock:noteblock", {
|
||||||
|
description = "Noteblock",
|
||||||
|
tile_images = {"mesecons_noteblock.png"},
|
||||||
|
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2},
|
||||||
|
drawtype = "allfaces_optional",
|
||||||
|
visual_scale = 1.3,
|
||||||
|
paramtype="light",
|
||||||
|
})
|
||||||
|
|
||||||
|
minetest.register_on_placenode(function (pos, node)
|
||||||
|
if node.name=="mesecons_noteblock:noteblock" then
|
||||||
|
minetest.env:add_node(pos, {name=node.name, param2=0})
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
|
||||||
|
minetest.register_on_punchnode(function (pos, node)
|
||||||
|
if node.name=="mesecons_noteblock:noteblock" then
|
||||||
|
local param2 = node.param2+1
|
||||||
|
if param2==12 then param2=0 end
|
||||||
|
minetest.env:add_node(pos, {name=node.name, param2=param2})
|
||||||
|
mesecon.noteblock_play(pos, node)
|
||||||
|
end
|
||||||
|
end)
|
||||||
|
|
||||||
|
mesecon.noteblock_play = function (pos, node)
|
||||||
|
local soundname
|
||||||
|
if node.param2==8 then
|
||||||
|
soundname="mesecons_noteblock_a"
|
||||||
|
elseif node.param2==9 then
|
||||||
|
soundname="mesecons_noteblock_asharp"
|
||||||
|
elseif node.param2==10 then
|
||||||
|
soundname="mesecons_noteblock_b"
|
||||||
|
elseif node.param2==11 then
|
||||||
|
soundname="mesecons_noteblock_c"
|
||||||
|
elseif node.param2==0 then
|
||||||
|
soundname="mesecons_noteblock_csharp"
|
||||||
|
elseif node.param2==1 then
|
||||||
|
soundname="mesecons_noteblock_d"
|
||||||
|
elseif node.param2==2 then
|
||||||
|
soundname="mesecons_noteblock_dsharp"
|
||||||
|
elseif node.param2==3 then
|
||||||
|
soundname="mesecons_noteblock_e"
|
||||||
|
elseif node.param2==4 then
|
||||||
|
soundname="mesecons_noteblock_f"
|
||||||
|
elseif node.param2==5 then
|
||||||
|
soundname="mesecons_noteblock_fsharp"
|
||||||
|
elseif node.param2==6 then
|
||||||
|
soundname="mesecons_noteblock_g"
|
||||||
|
elseif node.param2==7 then
|
||||||
|
soundname="mesecons_noteblock_gsharp"
|
||||||
|
end
|
||||||
|
local block_below_name = minetest.env:get_node({x=pos.x, y=pos.y-1, z=pos.z}).name
|
||||||
|
if block_below_name == "default:glass" then
|
||||||
|
soundname="mesecons_noteblock_hihat"
|
||||||
|
end
|
||||||
|
if block_below_name == "default:stone" then
|
||||||
|
soundname="mesecons_noteblock_kick"
|
||||||
|
end
|
||||||
|
if block_below_name == "default:chest" then
|
||||||
|
soundname="mesecons_noteblock_snare"
|
||||||
|
end
|
||||||
|
if block_below_name == "default:tree" then
|
||||||
|
soundname="mesecons_noteblock_crash"
|
||||||
|
end
|
||||||
|
if block_below_name == "default:wood" then
|
||||||
|
soundname="mesecons_noteblock_litecrash"
|
||||||
|
end
|
||||||
|
minetest.sound_play(soundname,
|
||||||
|
{pos = pos, gain = 1.0, max_hear_distance = 32,})
|
||||||
|
end
|
||||||
|
|
||||||
|
mesecon:register_on_signal_on(function(pos, node)
|
||||||
|
if node.name=="mesecons_noteblock:noteblock" then
|
||||||
|
mesecon.noteblock_play(pos, node)
|
||||||
|
end
|
||||||
|
end)
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
|
After Width: | Height: | Size: 808 B |
Reference in New Issue
Block a user