[mesecons] Update

master
LeMagnesium 2016-01-09 15:30:29 +01:00
parent 9331fb661e
commit c8416b1a53
32 changed files with 53 additions and 66 deletions

View File

@ -125,7 +125,7 @@ register_gate("xor", 2, function (val1, val2) return (val1 or val2) and not (val
register_gate("nor", 2, function (val1, val2) return not (val1 or val2) end,
{{"mesecons:mesecon", "", ""},
{"", "mesecons_materials:mesecon_torch_on", "mesecons_materials:silicon"},
{"", "mesecons:mesecon", "mesecons_torch:mesecon_torch_on"},
{"mesecons:mesecon", "", ""}})
register_gate("or", 2, function (val1, val2) return (val1 or val2) end,

View File

@ -201,6 +201,10 @@ local function safe_print(param)
print(dump(param))
end
local function safe_date()
return(os.date("*t",os.time()))
end
local function remove_functions(x)
local tp = type(x)
if tp == "table" then
@ -321,6 +325,7 @@ local function create_environment(pos, mem, event)
clock = os.clock,
difftime = os.difftime,
time = os.time,
datetable = safe_date,
},
}
env._G = env

View File

@ -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

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.

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.