fix facedir getting reset in detector tubes on state change

This commit is contained in:
Vanessa Ezekowitz 2014-01-01 22:36:52 -05:00
parent 5f393d0545
commit ea32144950

View File

@ -357,15 +357,17 @@ if pipeworks.enable_detector_tube then
mesecons = {receptor = {state = "on", mesecons = {receptor = {state = "on",
rules = pipeworks.mesecons_rules}}, rules = pipeworks.mesecons_rules}},
item_exit = function(pos) item_exit = function(pos)
local meta = minetest.get_meta(pos) local meta = minetest.get_meta(pos)
local nitems = meta:get_int("nitems")-1 local nitems = meta:get_int("nitems")-1
local name = minetest.get_node(pos).name local node = minetest.get_node(pos)
if nitems == 0 then local name = node.name
minetest.set_node(pos,{name = string.gsub(name, "on", "off")}) local fdir = node.param2
if nitems == 0 then
minetest.set_node(pos, {name = string.gsub(name, "on", "off"), param2 = fdir})
mesecon:receptor_off(pos, pipeworks.mesecons_rules) mesecon:receptor_off(pos, pipeworks.mesecons_rules)
else else
meta:set_int("nitems", nitems) meta:set_int("nitems", nitems)
end end
end, end,
on_construct = function(pos) on_construct = function(pos)
local meta = minetest.get_meta(pos) local meta = minetest.get_meta(pos)
@ -376,10 +378,12 @@ if pipeworks.enable_detector_tube then
pipeworks.register_tube("pipeworks:detector_tube_off", "Detector tube segment", detector_plain_textures, noctr_textures, pipeworks.register_tube("pipeworks:detector_tube_off", "Detector tube segment", detector_plain_textures, noctr_textures,
end_textures, short_texture, detector_inv_texture, end_textures, short_texture, detector_inv_texture,
{tube = {can_go = function(pos, node, velocity, stack) {tube = {can_go = function(pos, node, velocity, stack)
local name = minetest.get_node(pos).name local node = minetest.get_node(pos)
minetest.set_node(pos,{name = string.gsub(name, "off", "on")}) local name = node.name
mesecon:receptor_on(pos, pipeworks.mesecons_rules) local fdir = node.param2
return pipeworks.notvel(pipeworks.meseadjlist, velocity) minetest.set_node(pos,{name = string.gsub(name, "off", "on"), param2 = fdir})
mesecon:receptor_on(pos, pipeworks.mesecons_rules)
return pipeworks.notvel(pipeworks.meseadjlist, velocity)
end}, end},
groups = {mesecon = 2}, groups = {mesecon = 2},
mesecons = {receptor = {state = "off", mesecons = {receptor = {state = "off",