diff options
author | orwell96 <mono96.mml@gmail.com> | 2017-02-04 18:35:34 +0100 |
---|---|---|
committer | orwell96 <mono96.mml@gmail.com> | 2017-02-04 18:35:34 +0100 |
commit | 61e48fff280075ec52bfaa31644c22b08814d680 (patch) | |
tree | c7cac2a799bfe4bf6f180617f96c1035e04b26df /advtrains/advtrains_luaautomation/active_common.lua | |
parent | 1e3bd3a5fd5d448fa123ba02012f935fbc29880a (diff) | |
download | advtrains-61e48fff280075ec52bfaa31644c22b08814d680.tar.gz advtrains-61e48fff280075ec52bfaa31644c22b08814d680.tar.bz2 advtrains-61e48fff280075ec52bfaa31644c22b08814d680.zip |
Commit 1.6.2
- Add some more stuff to API for LuaATC rails
- Warn on strange events even if debug info is disabled
- save atlatc on shutdown too
- fix detector rails in unloaded chunks
- do not fail silently in simple ATC rails
Diffstat (limited to 'advtrains/advtrains_luaautomation/active_common.lua')
-rw-r--r-- | advtrains/advtrains_luaautomation/active_common.lua | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/advtrains/advtrains_luaautomation/active_common.lua b/advtrains/advtrains_luaautomation/active_common.lua index 50a5051..0351c85 100644 --- a/advtrains/advtrains_luaautomation/active_common.lua +++ b/advtrains/advtrains_luaautomation/active_common.lua @@ -76,9 +76,10 @@ function ac.on_receive_fields(pos, formname, fields, player) if fields.cle then nodetbl.data={} end - meta:set_string("formspec", ac.getform(pos, meta)) ac.nodes[ph]=nodetbl + + meta:set_string("formspec", ac.getform(pos, meta)) if nodetbl.env then meta:set_string("infotext", "LuaAutomation component, assigned to environment '"..nodetbl.env.."'") else @@ -88,7 +89,11 @@ end function ac.run_in_env(pos, evtdata, customfct_p) local ph=minetest.pos_to_string(pos) - local nodetbl = ac.nodes[ph] or {} + local nodetbl = ac.nodes[ph] + if not nodetbl then + atwarn("LuaAutomation component at",ph,": Data not in memory! Please visit component and click 'Save'!") + return + end local meta if minetest.get_node(pos) then @@ -96,10 +101,12 @@ function ac.run_in_env(pos, evtdata, customfct_p) end if not nodetbl.env or not atlatc.envs[nodetbl.env] then - return false, "Not an existing environment: "..(nodetbl.env or "<nil>") + atwarn("LuaAutomation component at",ph,": Not an existing environment: "..(nodetbl.env or "<nil>")) + return false end if not nodetbl.code or nodetbl.code=="" then - return false, "No code to run!" + atwarn("LuaAutomation component at",ph,": No code to run! (insert -- to suppress warning)") + return false end local customfct=customfct_p or {} @@ -113,6 +120,7 @@ function ac.run_in_env(pos, evtdata, customfct_p) atlatc.active.nodes[ph].data=atlatc.remove_invalid_data(dataout) else atlatc.active.nodes[ph].err=dataout + atwarn("LuaAutomation ATC interface rail at",ph,": LUA Error:",dataout) if meta then meta:set_string("infotext", "LuaAutomation ATC interface rail, ERROR:"..dataout) end |