Make is_node_loaded() checks also for mesecon interactions and digiline_send(), move on_updated_from_nodedb to advtrains table
This commit is contained in:
parent
8ae405f00f
commit
e935136d58
|
@ -294,11 +294,12 @@ ndb.run_lbm = function(pos, node)
|
|||
ndb.update(pos, node)
|
||||
else
|
||||
if (nodeid~=node.name or param2~=node.param2) then
|
||||
atprint("nodedb: lbm replaced", pos, "with nodeid", nodeid, "param2", param2, "cid is", cid)
|
||||
minetest.swap_node(pos, {name=nodeid, param2 = param2})
|
||||
--atprint("nodedb: lbm replaced", pos, "with nodeid", nodeid, "param2", param2, "cid is", cid)
|
||||
local newnode = {name=nodeid, param2 = param2}
|
||||
minetest.swap_node(pos, newnode)
|
||||
local ndef=minetest.registered_nodes[nodeid]
|
||||
if ndef and ndef.on_updated_from_nodedb then
|
||||
ndef.on_updated_from_nodedb(pos, node)
|
||||
if ndef and ndef.advtrains and ndef.advtrains.on_updated_from_nodedb then
|
||||
ndef.advtrains.on_updated_from_nodedb(pos, newnode)
|
||||
end
|
||||
return true
|
||||
end
|
||||
|
|
|
@ -13,16 +13,18 @@ minetest.override_item("mesecons_switch:mesecon_switch_off", {
|
|||
mesecon.receptor_on(pos)
|
||||
minetest.sound_play("mesecons_switch", {pos=pos})
|
||||
end,
|
||||
on_updated_from_nodedb = function(pos, node)
|
||||
mesecon.receptor_off(pos)
|
||||
end,
|
||||
advtrains = {
|
||||
getstate = "off",
|
||||
setstate = function(pos, node, newstate)
|
||||
if newstate=="on" then
|
||||
advtrains.ndb.swap_node(pos, {name="mesecons_switch:mesecon_switch_on", param2=node.param2})
|
||||
if advtrains.is_node_loaded(pos) then
|
||||
mesecon.receptor_on(pos)
|
||||
end
|
||||
end
|
||||
end,
|
||||
on_updated_from_nodedb = function(pos, node)
|
||||
mesecon.receptor_off(pos)
|
||||
end,
|
||||
},
|
||||
})
|
||||
|
@ -38,17 +40,19 @@ minetest.override_item("mesecons_switch:mesecon_switch_on", {
|
|||
mesecon.receptor_off(pos)
|
||||
minetest.sound_play("mesecons_switch", {pos=pos})
|
||||
end,
|
||||
on_updated_from_nodedb = function(pos, node)
|
||||
mesecon.receptor_on(pos)
|
||||
end,
|
||||
advtrains = {
|
||||
getstate = "on",
|
||||
setstate = function(pos, node, newstate)
|
||||
if newstate=="off" then
|
||||
advtrains.ndb.swap_node(pos, {name="mesecons_switch:mesecon_switch_off", param2=node.param2})
|
||||
if advtrains.is_node_loaded(pos) then
|
||||
mesecon.receptor_off(pos)
|
||||
end
|
||||
end
|
||||
end,
|
||||
fallback_state = "off",
|
||||
on_updated_from_nodedb = function(pos, node)
|
||||
mesecon.receptor_on(pos)
|
||||
end,
|
||||
},
|
||||
})
|
||||
|
|
|
@ -125,9 +125,11 @@ function ac.run_in_env(pos, evtdata, customfct_p)
|
|||
if minetest.global_exists("digiline") then
|
||||
customfct.digiline_send=function(channel, msg)
|
||||
assertt(channel, "string")
|
||||
if advtrains.is_node_loaded(pos) then
|
||||
digiline:receptor_send(pos, digiline.rules.default, channel, msg)
|
||||
end
|
||||
end
|
||||
end
|
||||
-- add lines scheduler if enabled
|
||||
if advtrains.lines and advtrains.lines.sched then
|
||||
customfct.schedule = function(rwtime, msg)
|
||||
|
|
|
@ -318,10 +318,15 @@ if mesecon then
|
|||
}
|
||||
},
|
||||
advtrains = {
|
||||
on_updated_from_nodedb = function(pos, node)
|
||||
mesecon.receptor_off(pos, advtrains.meseconrules)
|
||||
end,
|
||||
on_train_enter=function(pos, train_id)
|
||||
advtrains.ndb.swap_node(pos, {name="advtrains:dtrack_detector_on".."_"..suffix..rotation, param2=advtrains.ndb.get_node(pos).param2})
|
||||
if advtrains.is_node_loaded(pos) then
|
||||
mesecon.receptor_on(pos, advtrains.meseconrules)
|
||||
end
|
||||
end
|
||||
}
|
||||
}
|
||||
end
|
||||
|
@ -343,10 +348,15 @@ if mesecon then
|
|||
}
|
||||
},
|
||||
advtrains = {
|
||||
on_updated_from_nodedb = function(pos, node)
|
||||
mesecon.receptor_on(pos, advtrains.meseconrules)
|
||||
end,
|
||||
on_train_leave=function(pos, train_id)
|
||||
advtrains.ndb.swap_node(pos, {name="advtrains:dtrack_detector_off".."_"..suffix..rotation, param2=advtrains.ndb.get_node(pos).param2})
|
||||
if advtrains.is_node_loaded(pos) then
|
||||
mesecon.receptor_off(pos, advtrains.meseconrules)
|
||||
end
|
||||
end
|
||||
}
|
||||
}
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue