[mesecons] Update

This commit is contained in:
LeMagnesium 2016-01-09 15:20:32 +01:00
parent c9bf1c67a9
commit 151f4cbb1e
33 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, register_gate("nor", 2, function (val1, val2) return not (val1 or val2) end,
{{"mesecons:mesecon", "", ""}, {{"mesecons:mesecon", "", ""},
{"", "mesecons_materials:mesecon_torch_on", "mesecons_materials:silicon"}, {"", "mesecons:mesecon", "mesecons_torch:mesecon_torch_on"},
{"mesecons:mesecon", "", ""}}) {"mesecons:mesecon", "", ""}})
register_gate("or", 2, function (val1, val2) return (val1 or val2) end, 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)) print(dump(param))
end end
local function safe_date()
return(os.date("*t",os.time()))
end
local function remove_functions(x) local function remove_functions(x)
local tp = type(x) local tp = type(x)
if tp == "table" then if tp == "table" then
@ -321,6 +325,7 @@ local function create_environment(pos, mem, event)
clock = os.clock, clock = os.clock,
difftime = os.difftime, difftime = os.difftime,
time = os.time, time = os.time,
datetable = safe_date,
}, },
} }
env._G = env env._G = env

View File

@ -1,21 +1,15 @@
minetest.register_node("mesecons_noteblock:noteblock", { minetest.register_node("mesecons_noteblock:noteblock", {
description = "Noteblock", description = "Noteblock",
tiles = {"mesecons_noteblock.png"}, tiles = {"mesecons_noteblock.png"},
groups = {snappy=2,choppy=2,oddly_breakable_by_hand=2}, groups = {snappy=2, choppy=2, oddly_breakable_by_hand=2},
visual_scale = 1.3, on_punch = function(pos, node) -- change sound when punched
paramtype="light", node.param2 = (node.param2+1)%12
after_place_node = function(pos) mesecon.noteblock_play(pos, node.param2)
minetest.add_node(pos, {name="mesecons_noteblock:noteblock", param2=0}) minetest.add_node(pos, node)
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)
end, end,
sounds = default.node_sound_wood_defaults(), sounds = default.node_sound_wood_defaults(),
mesecons = {effector = { -- play sound when activated mesecons = {effector = { -- play sound when activated
action_on = function (pos, node) action_on = function(pos, node)
mesecon.noteblock_play(pos, node.param2) mesecon.noteblock_play(pos, node.param2)
end end
}} }}
@ -30,58 +24,46 @@ minetest.register_craft({
} }
}) })
mesecon.noteblock_play = function (pos, param2) local soundnames = {
local soundname [0] = "mesecons_noteblock_csharp",
if param2==8 then "mesecons_noteblock_d",
soundname="mesecons_noteblock_a" "mesecons_noteblock_dsharp",
elseif param2==9 then "mesecons_noteblock_e",
soundname="mesecons_noteblock_asharp" "mesecons_noteblock_f",
elseif param2==10 then "mesecons_noteblock_fsharp",
soundname="mesecons_noteblock_b" "mesecons_noteblock_g",
elseif param2==11 then "mesecons_noteblock_gsharp",
soundname="mesecons_noteblock_c"
elseif param2==0 then "mesecons_noteblock_a",
soundname="mesecons_noteblock_csharp" "mesecons_noteblock_asharp",
elseif param2==1 then "mesecons_noteblock_b",
soundname="mesecons_noteblock_d" "mesecons_noteblock_c"
elseif param2==2 then }
soundname="mesecons_noteblock_dsharp"
elseif param2==3 then local node_sounds = {
soundname="mesecons_noteblock_e" ["default:glass"] = "mesecons_noteblock_hihat",
elseif param2==4 then ["default:stone"] = "mesecons_noteblock_kick",
soundname="mesecons_noteblock_f" ["default:lava_source"] = "fire_large",
elseif param2==5 then ["default:chest"] = "mesecons_noteblock_snare",
soundname="mesecons_noteblock_fsharp" ["default:tree"] = "mesecons_noteblock_crash",
elseif param2==6 then ["default:wood"] = "mesecons_noteblock_litecrash",
soundname="mesecons_noteblock_g" ["default:coalblock"] = "tnt_explode",
elseif param2==7 then }
soundname="mesecons_noteblock_gsharp"
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 end
local block_below_name = minetest.get_node({x=pos.x, y=pos.y-1, z=pos.z}).name pos.y = pos.y+1
if block_below_name == "default:glass" then minetest.sound_play(soundname, {pos = pos})
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,})
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.

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.

View File

Before

Width:  |  Height:  |  Size: 889 B

After

Width:  |  Height:  |  Size: 889 B