try to avoid crashing, i did try and remove something

master
Jordan Snelling 2014-06-18 15:43:52 +01:00
parent 80c050697b
commit fa08dfe6f9
5 changed files with 167 additions and 125 deletions

View File

@ -30,23 +30,23 @@ function IngotBlock(name, crackylevel)
groups = {cracky=crackylevel}, groups = {cracky=crackylevel},
}) })
minetest.register_craft({ -- minetest.register_craft({
output = qnodename .. " 1" -- output = qnodename .. " 1"
recipe = { -- recipe = {
{qingotname, qingotname, qingotname}, -- {qingotname, qingotname, qingotname},
{qingotname, qingotname, qingotname}, -- {qingotname, qingotname, qingotname},
{qingotname, qingotname, qingotname}, -- {qingotname, qingotname, qingotname},
} -- }
} -- }
minetest.register_craft({ -- minetest.register_craft({
output = qingotname .. " 1" -- output = qingotname .. " 1"
recipe = { -- recipe = {
{'', '', '',}, -- {'', '', '',},
{'', qnodename, '',}, -- {'', qnodename, '',},
{'', '', '',}, -- {'', '', '',},
} -- }
}) -- })
end end
IngotBlock("Aluminium", 2) IngotBlock("Aluminium", 2)

View File

@ -1,4 +1,6 @@
--init.lua --init.lua
active_tracks = {}
-- jukebox crafting -- jukebox crafting
@ -228,7 +230,12 @@ minetest.register_on_punchnode(function(pos, node, puncher)
if wield == "jdukebox:disc_1" then if wield == "jdukebox:disc_1" then
puncher:set_wielded_item("") puncher:set_wielded_item("")
minetest.set_node(pos, {name="jdukebox:box1"}) minetest.set_node(pos, {name="jdukebox:box1"})
track1 = minetest.sound_play("jukebox_track_1", { if active_tracks[puncher:get_player_name()] ~= nil then
minetest.sound_stop(active_tracks[puncher:get_player_name()])
else
--dont die
end
active_tracks[puncher:get_player_name()] = minetest.sound_play("jukebox_track_1", {
to_player = puncher:get_player_name(), to_player = puncher:get_player_name(),
--max_hear_distance = 16, --max_hear_distance = 16,
gain = 1, gain = 1,
@ -243,8 +250,8 @@ minetest.register_on_punchnode(function(pos, node, puncher)
lz = pos.z lz = pos.z
minetest.add_item({x=lx, y=ly, z=lz}, "jdukebox:disc_1 1") minetest.add_item({x=lx, y=ly, z=lz}, "jdukebox:disc_1 1")
minetest.set_node(pos, {name="jdukebox:box"}) minetest.set_node(pos, {name="jdukebox:box"})
if track1 ~= nil then if active_tracks[puncher:get_player_name()] ~= nil then
minetest.sound_stop(track1) minetest.sound_stop(active_tracks[puncher:get_player_name()])
else else
--dont die --dont die
end end
@ -255,7 +262,12 @@ minetest.register_on_punchnode(function(pos, node, puncher)
if wield == "jdukebox:disc_2" then if wield == "jdukebox:disc_2" then
puncher:set_wielded_item("") puncher:set_wielded_item("")
minetest.set_node(pos, {name="jdukebox:box2"}) minetest.set_node(pos, {name="jdukebox:box2"})
track2 = minetest.sound_play("jukebox_track_2", { if active_tracks[puncher:get_player_name()] ~= nil then
minetest.sound_stop(active_tracks[puncher:get_player_name()])
else
--dont die
end
active_tracks[puncher:get_player_name()] = minetest.sound_play("jukebox_track_2", {
to_player = puncher:get_player_name(), to_player = puncher:get_player_name(),
--max_hear_distance = 16, --max_hear_distance = 16,
gain = 1, gain = 1,
@ -270,8 +282,8 @@ minetest.register_on_punchnode(function(pos, node, puncher)
lz = pos.z lz = pos.z
minetest.add_item({x=lx, y=ly, z=lz}, "jdukebox:disc_2 1") minetest.add_item({x=lx, y=ly, z=lz}, "jdukebox:disc_2 1")
minetest.set_node(pos, {name="jdukebox:box"}) minetest.set_node(pos, {name="jdukebox:box"})
if track2 ~= nil then if active_tracks[puncher:get_player_name()] ~= nil then
minetest.sound_stop(track2) minetest.sound_stop(active_tracks[puncher:get_player_name()])
else else
--dont die --dont die
end end
@ -282,7 +294,12 @@ minetest.register_on_punchnode(function(pos, node, puncher)
if wield == "jdukebox:disc_3" then if wield == "jdukebox:disc_3" then
puncher:set_wielded_item("") puncher:set_wielded_item("")
minetest.set_node(pos, {name="jdukebox:box3"}) minetest.set_node(pos, {name="jdukebox:box3"})
track3 = minetest.sound_play("jukebox_track_3", { if active_tracks[puncher:get_player_name()] ~= nil then
minetest.sound_stop(active_tracks[puncher:get_player_name()])
else
--dont die
end
active_tracks[puncher:get_player_name()] = minetest.sound_play("jukebox_track_3", {
to_player = puncher:get_player_name(), to_player = puncher:get_player_name(),
--max_hear_distance = 16, --max_hear_distance = 16,
gain = 1, gain = 1,
@ -297,8 +314,8 @@ minetest.register_on_punchnode(function(pos, node, puncher)
lz = pos.z lz = pos.z
minetest.add_item({x=lx, y=ly, z=lz}, "jdukebox:disc_3 1") minetest.add_item({x=lx, y=ly, z=lz}, "jdukebox:disc_3 1")
minetest.set_node(pos, {name="jdukebox:box"}) minetest.set_node(pos, {name="jdukebox:box"})
if track3 ~= nil then if active_tracks[puncher:get_player_name()] ~= nil then
minetest.sound_stop(track3) minetest.sound_stop(active_tracks[puncher:get_player_name()])
else else
--dont die --dont die
end end
@ -309,7 +326,12 @@ minetest.register_on_punchnode(function(pos, node, puncher)
if wield == "jdukebox:disc_4" then if wield == "jdukebox:disc_4" then
puncher:set_wielded_item("") puncher:set_wielded_item("")
minetest.set_node(pos, {name="jdukebox:box4"}) minetest.set_node(pos, {name="jdukebox:box4"})
track4 = minetest.sound_play("jukebox_track_4", { if active_tracks[puncher:get_player_name()] ~= nil then
minetest.sound_stop(active_tracks[puncher:get_player_name()])
else
--dont die
end
active_tracks[puncher:get_player_name()] = minetest.sound_play("jukebox_track_4", {
to_player = puncher:get_player_name(), to_player = puncher:get_player_name(),
--max_hear_distance = 16, --max_hear_distance = 16,
gain = 1, gain = 1,
@ -324,8 +346,8 @@ minetest.register_on_punchnode(function(pos, node, puncher)
lz = pos.z lz = pos.z
minetest.add_item({x=lx, y=ly, z=lz}, "jdukebox:disc_4 1") minetest.add_item({x=lx, y=ly, z=lz}, "jdukebox:disc_4 1")
minetest.set_node(pos, {name="jdukebox:box"}) minetest.set_node(pos, {name="jdukebox:box"})
if track4 ~= nil then if active_tracks[puncher:get_player_name()] ~= nil then
minetest.sound_stop(track4) minetest.sound_stop(active_tracks[puncher:get_player_name()])
else else
--dont die --dont die
end end
@ -336,7 +358,12 @@ minetest.register_on_punchnode(function(pos, node, puncher)
if wield == "jdukebox:disc_5" then if wield == "jdukebox:disc_5" then
puncher:set_wielded_item("") puncher:set_wielded_item("")
minetest.set_node(pos, {name="jdukebox:box5"}) minetest.set_node(pos, {name="jdukebox:box5"})
track5 = minetest.sound_play("jukebox_track_5", { if active_tracks[puncher:get_player_name()] ~= nil then
minetest.sound_stop(active_tracks[puncher:get_player_name()])
else
--dont die
end
active_tracks[puncher:get_player_name()] = minetest.sound_play("jukebox_track_5", {
to_player = puncher:get_player_name(), to_player = puncher:get_player_name(),
--max_hear_distance = 16, --max_hear_distance = 16,
gain = 1, gain = 1,
@ -351,8 +378,8 @@ minetest.register_on_punchnode(function(pos, node, puncher)
lz = pos.z lz = pos.z
minetest.add_item({x=lx, y=ly, z=lz}, "jdukebox:disc_5 1") minetest.add_item({x=lx, y=ly, z=lz}, "jdukebox:disc_5 1")
minetest.set_node(pos, {name="jdukebox:box"}) minetest.set_node(pos, {name="jdukebox:box"})
if track5 ~= nil then if active_tracks[puncher:get_player_name()] ~= nil then
minetest.sound_stop(track5) minetest.sound_stop(active_tracks[puncher:get_player_name()])
else else
--dont die --dont die
end end
@ -363,7 +390,12 @@ minetest.register_on_punchnode(function(pos, node, puncher)
if wield == "jdukebox:disc_6" then if wield == "jdukebox:disc_6" then
puncher:set_wielded_item("") puncher:set_wielded_item("")
minetest.set_node(pos, {name="jdukebox:box6"}) minetest.set_node(pos, {name="jdukebox:box6"})
track6 = minetest.sound_play("jukebox_track_6", { if active_tracks[puncher:get_player_name()] ~= nil then
minetest.sound_stop(active_tracks[puncher:get_player_name()])
else
--dont die
end
active_tracks[puncher:get_player_name()] = minetest.sound_play("jukebox_track_6", {
to_player = puncher:get_player_name(), to_player = puncher:get_player_name(),
--max_hear_distance = 16, --max_hear_distance = 16,
gain = 1, gain = 1,
@ -378,8 +410,8 @@ minetest.register_on_punchnode(function(pos, node, puncher)
lz = pos.z lz = pos.z
minetest.add_item({x=lx, y=ly, z=lz}, "jdukebox:disc_6 1") minetest.add_item({x=lx, y=ly, z=lz}, "jdukebox:disc_6 1")
minetest.set_node(pos, {name="jdukebox:box"}) minetest.set_node(pos, {name="jdukebox:box"})
if track6 ~= nil then if active_tracks[puncher:get_player_name()] ~= nil then
minetest.sound_stop(track6) minetest.sound_stop(active_tracks[puncher:get_player_name()])
else else
--dont die --dont die
end end
@ -390,7 +422,12 @@ minetest.register_on_punchnode(function(pos, node, puncher)
if wield == "jdukebox:disc_7" then if wield == "jdukebox:disc_7" then
puncher:set_wielded_item("") puncher:set_wielded_item("")
minetest.set_node(pos, {name="jdukebox:box7"}) minetest.set_node(pos, {name="jdukebox:box7"})
track7 = minetest.sound_play("jukebox_track_7", { if active_tracks[puncher:get_player_name()] ~= nil then
minetest.sound_stop(active_tracks[puncher:get_player_name()])
else
--dont die
end
active_tracks[puncher:get_player_name()] = minetest.sound_play("jukebox_track_7", {
to_player = puncher:get_player_name(), to_player = puncher:get_player_name(),
--max_hear_distance = 16, --max_hear_distance = 16,
gain = 1, gain = 1,
@ -405,8 +442,8 @@ minetest.register_on_punchnode(function(pos, node, puncher)
lz = pos.z lz = pos.z
minetest.add_item({x=lx, y=ly, z=lz}, "jdukebox:disc_7 1") minetest.add_item({x=lx, y=ly, z=lz}, "jdukebox:disc_7 1")
minetest.set_node(pos, {name="jdukebox:box"}) minetest.set_node(pos, {name="jdukebox:box"})
if track7 ~= nil then if active_tracks[puncher:get_player_name()] ~= nil then
minetest.sound_stop(track7) minetest.sound_stop(active_tracks[puncher:get_player_name()])
else else
--dont die --dont die
end end
@ -417,7 +454,12 @@ minetest.register_on_punchnode(function(pos, node, puncher)
if wield == "jdukebox:disc_8" then if wield == "jdukebox:disc_8" then
puncher:set_wielded_item("") puncher:set_wielded_item("")
minetest.set_node(pos, {name="jdukebox:box8"}) minetest.set_node(pos, {name="jdukebox:box8"})
track8 = minetest.sound_play("jukebox_track_8", { if active_tracks[puncher:get_player_name()] ~= nil then
minetest.sound_stop(active_tracks[puncher:get_player_name()])
else
--dont die
end
active_tracks[puncher:get_player_name()] = minetest.sound_play("jukebox_track_8", {
to_player = puncher:get_player_name(), to_player = puncher:get_player_name(),
--max_hear_distance = 16, --max_hear_distance = 16,
gain = 1, gain = 1,
@ -432,8 +474,8 @@ minetest.register_on_punchnode(function(pos, node, puncher)
lz = pos.z lz = pos.z
minetest.add_item({x=lx, y=ly, z=lz}, "jdukebox:disc_8 1") minetest.add_item({x=lx, y=ly, z=lz}, "jdukebox:disc_8 1")
minetest.set_node(pos, {name="jdukebox:box"}) minetest.set_node(pos, {name="jdukebox:box"})
if track8 ~= nil then if active_tracks[puncher:get_player_name()] ~= nil then
minetest.sound_stop(track8) minetest.sound_stop(active_tracks[puncher:get_player_name()])
else else
--dont die --dont die
end end

View File

@ -146,98 +146,98 @@ register_tank("o", 1)
-- black magic here -- black magic here
minetest.register_on_punchnode(function(pos, node, puncher) -- minetest.register_on_punchnode(function(pos, node, puncher)
if not puncher then return end -- if not puncher then return end
tnodename = minetest.get_node(pos) -- tnodename = minetest.get_node(pos)
bname = puncher:get_wielded_item():get_name() -- bname = puncher:get_wielded_item():get_name()
for level=1,8 do -- for level=1,8 do
if tnodename.name == "tanks:level_0" then -- if tnodename.name == "tanks:level_0" then
if bname == "bucket:oil" then -- if bname == "bucket:oil" then
puncher:set_wielded_item("bucket:bucket_empty 1") -- puncher:set_wielded_item("bucket:bucket_empty 1")
minetest.set_node(pos, {name="tanks:o_level_1"}) -- minetest.set_node(pos, {name="tanks:o_level_1"})
end -- end
end -- end
if tnodename.name == "tanks:o_level_"..level then -- if tnodename.name == "tanks:o_level_"..level then
if bname == "bucket:bucket_empty" then -- if bname == "bucket:bucket_empty" then
puncher:set_wielded_item("bucket:oil 1") -- puncher:set_wielded_item("bucket:oil 1")
if tnodename.name == "tanks:o_level_1" then -- if tnodename.name == "tanks:o_level_1" then
minetest.set_node(pos, {name="tanks:level_0"}) -- minetest.set_node(pos, {name="tanks:level_0"})
else -- else
minetest.set_node(pos, {name="tanks:o_level_"..level-1}) -- minetest.set_node(pos, {name="tanks:o_level_"..level-1})
end -- end
end -- end
if bname == "bucket:oil" then -- if bname == "bucket:oil" then
if tnodename.name == "tanks:o_level_8" then -- if tnodename.name == "tanks:o_level_8" then
--nothing -- --nothing
else -- else
minetest.set_node(pos, {name="tanks:o_level_"..level+1}) -- minetest.set_node(pos, {name="tanks:o_level_"..level+1})
puncher:set_wielded_item("bucket:bucket_empty 1") -- puncher:set_wielded_item("bucket:bucket_empty 1")
end -- end
end -- end
--level = level + 1 -- --level = level + 1
end -- end
end -- end
for level=1,8 do -- for level=1,8 do
if tnodename.name == "tanks:level_0" then -- if tnodename.name == "tanks:level_0" then
if bname == "bucket:bucket_water" then -- if bname == "bucket:bucket_water" then
puncher:set_wielded_item("bucket:bucket_empty 1") -- puncher:set_wielded_item("bucket:bucket_empty 1")
minetest.set_node(pos, {name="tanks:w_level_1"}) -- minetest.set_node(pos, {name="tanks:w_level_1"})
end -- end
end -- end
if tnodename.name == "tanks:w_level_"..level then -- if tnodename.name == "tanks:w_level_"..level then
if bname == "bucket:bucket_empty" then -- if bname == "bucket:bucket_empty" then
puncher:set_wielded_item("bucket:bucket_water 1") -- puncher:set_wielded_item("bucket:bucket_water 1")
if tnodename.name == "tanks:w_level_1" then -- if tnodename.name == "tanks:w_level_1" then
minetest.set_node(pos, {name="tanks:level_0"}) -- minetest.set_node(pos, {name="tanks:level_0"})
else -- else
minetest.set_node(pos, {name="tanks:w_level_"..level-1}) -- minetest.set_node(pos, {name="tanks:w_level_"..level-1})
end -- end
end -- end
end -- end
if bname == "bucket:bucket_water" then -- if bname == "bucket:bucket_water" then
if tnodename.name == "tanks:w_level_8" then -- if tnodename.name == "tanks:w_level_8" then
--do nothing -- --do nothing
else -- else
minetest.set_node(pos, {name="tanks:w_level_"..level+1}) -- minetest.set_node(pos, {name="tanks:w_level_"..level+1})
puncher:set_wielded_item("bucket:bucket_empty 1") -- puncher:set_wielded_item("bucket:bucket_empty 1")
end -- end
end -- end
end -- end
end -- end
for level=1,8 do -- for level=1,8 do
if tnodename.name == "tanks:level_0" then -- if tnodename.name == "tanks:level_0" then
if bname == "bucket:bucket_lava" then -- if bname == "bucket:bucket_lava" then
puncher:set_wielded_item("bucket:bucket_empty 1") -- puncher:set_wielded_item("bucket:bucket_empty 1")
minetest.set_node(pos, {name="tanks:l_level_1"}) -- minetest.set_node(pos, {name="tanks:l_level_1"})
end -- end
end -- end
if tnodename.name == "tanks:l_level_"..level then -- if tnodename.name == "tanks:l_level_"..level then
if bname == "bucket:bucket_empty" then -- if bname == "bucket:bucket_empty" then
puncher:set_wielded_item("bucket:bucket_lava 1") -- puncher:set_wielded_item("bucket:bucket_lava 1")
if tnodename.name == "tanks:l_level_1" then -- if tnodename.name == "tanks:l_level_1" then
minetest.set_node(pos, {name="tanks:level_0"}) -- minetest.set_node(pos, {name="tanks:level_0"})
else -- else
minetest.set_node(pos, {name="tanks:l_level_"..level-1}) -- minetest.set_node(pos, {name="tanks:l_level_"..level-1})
end -- end
end -- end
if bname == "bucket:bucket_lava" then -- if bname == "bucket:bucket_lava" then
if tnodename.name == "tanks:l_level_8" then -- if tnodename.name == "tanks:l_level_8" then
--do nothing -- --do nothing
else -- else
minetest.set_node(pos, {name="tanks:l_level_"..level+1}) -- minetest.set_node(pos, {name="tanks:l_level_"..level+1})
puncher:set_wielded_item("bucket:bucket_empty 1") -- puncher:set_wielded_item("bucket:bucket_empty 1")
end -- end
end -- end
end -- end
end -- end
end) -- end)

Binary file not shown.

Binary file not shown.