diff options
author | rubenwardy <rubenwardy@gmail.com> | 2017-09-20 17:05:04 +0100 |
---|---|---|
committer | orwell96 <mono96.mml@gmail.com> | 2017-09-20 18:05:04 +0200 |
commit | d65c4916ceaeed6eec5fe3f344d4e71b3c96a80b (patch) | |
tree | ae2a4a1ca5bdbcb0a2a867287d4556f92478405a /advtrains_luaautomation/passive.lua | |
parent | b75c83ea43bb9f6e3bee2b4db955e2a9e7be885e (diff) | |
download | advtrains-d65c4916ceaeed6eec5fe3f344d4e71b3c96a80b.tar.gz advtrains-d65c4916ceaeed6eec5fe3f344d4e71b3c96a80b.tar.bz2 advtrains-d65c4916ceaeed6eec5fe3f344d4e71b3c96a80b.zip |
Remove zip release files, move mod to root, exclude assets from Makefile (#92)
Diffstat (limited to 'advtrains_luaautomation/passive.lua')
-rw-r--r-- | advtrains_luaautomation/passive.lua | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/advtrains_luaautomation/passive.lua b/advtrains_luaautomation/passive.lua new file mode 100644 index 0000000..774df8a --- /dev/null +++ b/advtrains_luaautomation/passive.lua @@ -0,0 +1,39 @@ +-- passive.lua +-- API to passive components, as described in passive_api.txt + +local function getstate(parpos) + local pos=atlatc.pcnaming.resolve_pos(parpos) + if type(pos)~="table" or (not pos.x or not pos.y or not pos.z) then + debug.sethook() + error("Invalid position supplied to getstate") + end + local node=advtrains.ndb.get_node(pos) + local ndef=minetest.registered_nodes[node.name] + if ndef and ndef.luaautomation and ndef.luaautomation.getstate then + local st=ndef.luaautomation.getstate + if type(st)=="function" then + return st(pos, node) + else + return st + end + end + return nil +end + +local function setstate(parpos, newstate) + local pos=atlatc.pcnaming.resolve_pos(parpos) + if type(pos)~="table" or (not pos.x or not pos.y or not pos.z) then + debug.sethook() + error("Invalid position supplied to setstate") + end + local node=advtrains.ndb.get_node(pos) + local ndef=minetest.registered_nodes[node.name] + if ndef and ndef.luaautomation and ndef.luaautomation.setstate then + local st=ndef.luaautomation.setstate + st(pos, node, newstate) + end +end + +-- gets called from environment.lua +-- return the values here to keep them local +return getstate, setstate |