From 0ec503f32cd4622863fe33ad8ba92ba63b64d71d Mon Sep 17 00:00:00 2001 From: HybridDog Date: Wed, 30 Dec 2015 19:08:09 +0100 Subject: [PATCH] Noteblock: Code cleanup --- mesecons_noteblock/init.lua | 112 ++++++++---------- .../textures/mesecons_noteblock.png | Bin 900 -> 889 bytes 2 files changed, 47 insertions(+), 65 deletions(-) diff --git a/mesecons_noteblock/init.lua b/mesecons_noteblock/init.lua index 6321882..d5e49ff 100644 --- a/mesecons_noteblock/init.lua +++ b/mesecons_noteblock/init.lua @@ -1,21 +1,15 @@ minetest.register_node("mesecons_noteblock:noteblock", { description = "Noteblock", tiles = {"mesecons_noteblock.png"}, - groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2}, - visual_scale = 1.3, - paramtype="light", - after_place_node = function(pos) - minetest.add_node(pos, {name="mesecons_noteblock:noteblock", param2=0}) - end, - on_punch = function (pos, node) -- change sound when punched - local param2 = node.param2+1 - if param2==12 then param2=0 end - minetest.add_node(pos, {name = node.name, param2 = param2}) - mesecon.noteblock_play(pos, param2) + groups = {snappy=2, choppy=2, oddly_breakable_by_hand=2}, + on_punch = function(pos, node) -- change sound when punched + node.param2 = (node.param2+1)%12 + mesecon.noteblock_play(pos, node.param2) + minetest.add_node(pos, node) end, sounds = default.node_sound_wood_defaults(), mesecons = {effector = { -- play sound when activated - action_on = function (pos, node) + action_on = function(pos, node) mesecon.noteblock_play(pos, node.param2) end }} @@ -30,58 +24,46 @@ minetest.register_craft({ } }) -mesecon.noteblock_play = function (pos, param2) - local soundname - if param2==8 then - soundname="mesecons_noteblock_a" - elseif param2==9 then - soundname="mesecons_noteblock_asharp" - elseif param2==10 then - soundname="mesecons_noteblock_b" - elseif param2==11 then - soundname="mesecons_noteblock_c" - elseif param2==0 then - soundname="mesecons_noteblock_csharp" - elseif param2==1 then - soundname="mesecons_noteblock_d" - elseif param2==2 then - soundname="mesecons_noteblock_dsharp" - elseif param2==3 then - soundname="mesecons_noteblock_e" - elseif param2==4 then - soundname="mesecons_noteblock_f" - elseif param2==5 then - soundname="mesecons_noteblock_fsharp" - elseif param2==6 then - soundname="mesecons_noteblock_g" - elseif param2==7 then - soundname="mesecons_noteblock_gsharp" +local soundnames = { + [0] = "mesecons_noteblock_csharp", + "mesecons_noteblock_d", + "mesecons_noteblock_dsharp", + "mesecons_noteblock_e", + "mesecons_noteblock_f", + "mesecons_noteblock_fsharp", + "mesecons_noteblock_g", + "mesecons_noteblock_gsharp", + + "mesecons_noteblock_a", + "mesecons_noteblock_asharp", + "mesecons_noteblock_b", + "mesecons_noteblock_c" +} + +local node_sounds = { + ["default:glass"] = "mesecons_noteblock_hihat", + ["default:stone"] = "mesecons_noteblock_kick", + ["default:lava_source"] = "fire_large", + ["default:chest"] = "mesecons_noteblock_snare", + ["default:tree"] = "mesecons_noteblock_crash", + ["default:wood"] = "mesecons_noteblock_litecrash", + ["default:coalblock"] = "tnt_explode", +} + +mesecon.noteblock_play = function(pos, param2) + pos.y = pos.y-1 + local nodeunder = minetest.get_node(pos).name + local soundname = node_sounds[nodeunder] + if not soundname then + soundname = soundnames[param2] + if not soundname then + minetest.log("error", "[mesecons_noteblock] No soundname found, test param2") + return + end + if nodeunder == "default:steelblock" then + soundname = soundname.. 2 + end end - local block_below_name = minetest.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:steelblock" then - soundname=soundname.."2" -- Go up an octave. - end - if block_below_name == "default:stone" then - soundname="mesecons_noteblock_kick" - end - if block_below_name == "default:lava_source" then - soundname="fire_large" - 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 - if block_below_name == "default:coalblock" then - soundname="tnt_explode" - end - minetest.sound_play(soundname, - {pos = pos, gain = 1.0, max_hear_distance = 32,}) + pos.y = pos.y+1 + minetest.sound_play(soundname, {pos = pos}) end diff --git a/mesecons_noteblock/textures/mesecons_noteblock.png b/mesecons_noteblock/textures/mesecons_noteblock.png index d13e61b12324ce892944c54dac32b3dd014cf740..7158a49b3b5804c88f24c358a9ae9926f6c8d4a2 100644 GIT binary patch delta 813 zcmV+|1JeA22l)n&S$_*jL_t(26%A2qNE2}Yzq|iE<{qa`r`y!|)}=`$J+RW!2(svd zLK;YgK~(f1`Vd4AMTj2)iINcVOGHFP*b@sxkxG25oKCUCC0d)K-QDhPx9zrjc3*y< zem{OM_(ZKm(U4pVfg-S`=o(67TWuyBmvmi|rHmwJ0ZoO0rhh9*NlvFTXr2Y%Wi^n=nUB7X|o<+jC-gfAS ztI(OB@9G822SHPH!TCFb4~K?aq`k!B*|~j(kVyPk_)gJL zqfAvL=j7hMemYO88^j$K*(H9tS+E-Zi`Xkv2WWcx`~ zSMzcm@87;V-`fi?930={U8E!ng4TKK{ecDFk7Js{oaOSyMv*S!|p_2n5LryP6U>hFchGQrbD_e zrbStn63L{PPK%H%YlutU;LXvMtelR{t|!l*SqPJV*_yiBzK9YqqAdgW20~S>(cC;F{dGb_tm&GQ80c*<)ng|5i^NnCyWBKiVpn;5BQV4twW(t00000NkvXXu0mjf@XCg} delta 824 zcmV-81IPUN280KYS$`HuL_t(2&jrD4XcK1u0O0rTy^l1xyVSI4lh~&A)3mkdWKKG@ zt`$Km{%FB=AltAo>hQ<#haiKoF-m_7WNbx*`A5bWDpJ2jHz+MdE&WJs+E}X6Ozf64 zGfJpMLcZ8#^ z2M(&5_Hu277jk}vZQ0ix3hmA1viX8Cc=3zrd%qEZ>R@I!_coc_-_oYY(&pPYtE{zGagz3=Qd>BL<#L&(J*=0_s%q26v92>8rqbzPAcSL>AmnI@ zPHwy+2}szE3tZPI8J1;gx^9$82Cyv0My6vJhN@|5QBw+vBumwrs_8nRsaj=Cvn5Ip z!p3OB`hUh+Q7Od#TCy$Mi_wNrtP4jl9FrA^W!S{7h|8+l*VDVX^?EVB7_O;pZEmG# z8kSuK(j-ZCbi@!sGjlWBnRH{cKFte+AWAJw4HV0AoL|U`pLCySYS_25vdl8f2VDm- zfNj0|2NGnYu5KsupQP$AR_WRml>>uAcmDX@M}K<~8;Q2&HX$zrtAY^1`K1Mf(EH54 z7l()be0V>b&cLPsnca*}uWyZyjZe+a$a%3?EOLzBah#oOh8IPe^PTSPot%7-N+wMN zpx;YrxX)Jqw8no@GiNPTo*aNwiEhvN&+Uo9;=E-(?mj<$szLj?d3 zmN9M;YsGskNH0000