Use minetest.swap_node instead of hacky_swap_node

This commit is contained in:
Novatux 2013-12-08 18:12:44 +01:00
parent ba4c80644e
commit 47a49eccf4
3 changed files with 8 additions and 21 deletions

View File

@ -960,18 +960,13 @@ minetest.register_node("default:furnace_active", {
end, end,
}) })
function hacky_swap_node(pos,name) local function swap_node(pos,name)
local node = minetest.get_node(pos) local node = minetest.get_node(pos)
local meta = minetest.get_meta(pos)
local meta0 = meta:to_table()
if node.name == name then if node.name == name then
return return
end end
node.name = name node.name = name
local meta0 = meta:to_table() minetest.swap_node(pos,node)
minetest.set_node(pos,node)
meta = minetest.get_meta(pos)
meta:from_table(meta0)
end end
minetest.register_abm({ minetest.register_abm({
@ -1025,7 +1020,7 @@ minetest.register_abm({
local percent = math.floor(meta:get_float("fuel_time") / local percent = math.floor(meta:get_float("fuel_time") /
meta:get_float("fuel_totaltime") * 100) meta:get_float("fuel_totaltime") * 100)
meta:set_string("infotext","Furnace active: "..percent.."%") meta:set_string("infotext","Furnace active: "..percent.."%")
hacky_swap_node(pos,"default:furnace_active") swap_node(pos,"default:furnace_active")
meta:set_string("formspec",default.get_furnace_active_formspec(pos, percent)) meta:set_string("formspec",default.get_furnace_active_formspec(pos, percent))
return return
end end
@ -1045,7 +1040,7 @@ minetest.register_abm({
if fuel.time <= 0 then if fuel.time <= 0 then
meta:set_string("infotext","Furnace out of fuel") meta:set_string("infotext","Furnace out of fuel")
hacky_swap_node(pos,"default:furnace") swap_node(pos,"default:furnace")
meta:set_string("formspec", default.furnace_inactive_formspec) meta:set_string("formspec", default.furnace_inactive_formspec)
return return
end end
@ -1053,7 +1048,7 @@ minetest.register_abm({
if cooked.item:is_empty() then if cooked.item:is_empty() then
if was_active then if was_active then
meta:set_string("infotext","Furnace is empty") meta:set_string("infotext","Furnace is empty")
hacky_swap_node(pos,"default:furnace") swap_node(pos,"default:furnace")
meta:set_string("formspec", default.furnace_inactive_formspec) meta:set_string("formspec", default.furnace_inactive_formspec)
end end
return return

View File

@ -113,14 +113,10 @@ function doors:register_door(name, def)
local p2 = minetest.get_node(pos).param2 local p2 = minetest.get_node(pos).param2
p2 = params[p2+1] p2 = params[p2+1]
local meta = minetest.get_meta(pos):to_table() minetest.swap_node(pos, {name=replace_dir, param2=p2})
minetest.set_node(pos, {name=replace_dir, param2=p2})
minetest.get_meta(pos):from_table(meta)
pos.y = pos.y-dir pos.y = pos.y-dir
meta = minetest.get_meta(pos):to_table() minetest.swap_node(pos, {name=replace, param2=p2})
minetest.set_node(pos, {name=replace, param2=p2})
minetest.get_meta(pos):from_table(meta)
end end
local function check_player_priv(pos, player) local function check_player_priv(pos, player)

View File

@ -113,12 +113,8 @@ function screwdriver_handler (itemstack,user,pointed_thing)
end end
end end
--print (dump(axisdir..", "..rotation)) --print (dump(axisdir..", "..rotation))
local meta = minetest.get_meta(pos)
local meta0 = meta:to_table()
node.param2 = n node.param2 = n
minetest.set_node(pos,node) minetest.swap_node(pos,node)
meta = minetest.get_meta(pos)
meta:from_table(meta0)
local item=itemstack:to_table() local item=itemstack:to_table()
local item_wear=tonumber((item["wear"])) local item_wear=tonumber((item["wear"]))
item_wear=item_wear+327 item_wear=item_wear+327