Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local load_time_start = os.clock()
- music = {}
- function music.reset()
- music.t1 = os.clock()
- music.tab = {}
- music.num = 1
- end
- music.reset()
- music.tab = {
- {"music_1", 0.2},
- {"music_1", 0.5},
- {"music_1", 1},
- }
- minetest.register_node("music:play", {
- description = "Play",
- tiles = {"default_steel_block.png","default_steel_block.png","default_wood.png"},
- groups = {bendy=2,cracky=1},
- sounds = default_stone_sounds,
- on_construct = function(pos)
- minetest.get_meta(pos):set_string("infotext", "Play")
- end,
- on_punch = function(pos, _, puncher)
- music.status = nil
- for _,i in ipairs(music.tab) do
- minetest.after(i[2], function(pos)
- if not music.status then
- minetest.sound_play(i[1], {pos = pos, gain = 1, max_hear_distance = 10})
- minetest.chat_send_player(puncher:get_player_name(), i[2]..' '..i[1])
- end
- end, pos)
- end
- end,
- })
- minetest.register_node("music:record", {
- description = "Record",
- tiles = {"default_steel_block.png","default_steel_block.png","default_wood.png"},
- groups = {bendy=2,cracky=1},
- sounds = default_stone_sounds,
- on_construct = function(pos)
- minetest.get_meta(pos):set_string("infotext", "Record")
- end,
- on_punch = function(pos, _, puncher)
- music.status = "recording"
- music.t1 = os.clock()
- music.tab = {}
- music.num = 1
- minetest.chat_send_player(puncher:get_player_name(), 'num, tab and t1 reset')
- end,
- })
- minetest.register_node("music:box", {
- description = "Sound Box",
- tiles = {"default_steel_block.png","default_steel_block.png","default_wood.png"},
- groups = {bendy=2,cracky=1},
- sounds = default_stone_sounds,
- on_construct = function(pos)
- local meta = minetest.get_meta(pos)
- meta:set_string("formspec", "field[text;;${text}]")
- meta:set_string("infotext", "\"\"")
- end,
- on_receive_fields = function(pos, formname, fields, sender)
- local meta = minetest.get_meta(pos)
- fields.text = fields.text or ""
- minetest.log("action", (sender:get_player_name() or "").." wrote \""..fields.text..
- "\" to musicbox at "..minetest.pos_to_string(pos))
- meta:set_string("text", fields.text)
- meta:set_string("infotext", '"'..fields.text..'"')
- end,
- on_punch = function(pos, _, puncher)
- local meta = minetest.get_meta(pos)
- local soundname = meta:get_string("text")
- if music.status == "recording" then
- local delay = os.clock() - music.t1
- music.tab[music.num] = {soundname, delay}
- music.num = music.num+1
- minetest.chat_send_player(puncher:get_player_name(), delay..' '..soundname)
- end
- minetest.sound_play(soundname, {pos = pos, gain = 1, max_hear_distance = 10})
- end,
- })
- print(string.format("[music] loaded after ca. %.2fs", os.clock() - load_time_start))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement