ofs | hex dump | ascii |
---|
0000 | 42 42 33 44 4e a1 00 00 01 00 00 00 42 52 55 53 2e 00 00 00 01 00 00 00 42 72 75 73 68 2e 30 30 | BB3DN.......BRUS........Brush.00 |
0020 | 31 00 00 00 80 3f 00 00 80 3f 00 00 80 3f 00 00 80 3f 00 00 00 00 01 00 00 00 00 00 00 00 ff ff | 1....?...?...?...?.............. |
0040 | ff ff 4e 4f 44 45 0c a1 00 00 64 74 72 61 63 6b 5f 73 77 6c 73 74 5f 34 35 00 00 00 00 00 00 00 | ..NODE....dtrack_swlst_45....... |
0060 | 00 bf 00 00 00 00 9c fa b4 3f 00 00 80 3f 9c fa b4 3f 5e 83 6c 3f 00 00 00 00 19 ef c3 be 00 00 | .........?...?...?^.l?.......... |
0080 | 00 00 4d 45 53 48 cc a0 00 00 ff ff ff ff 56 52 54 53 0c 88 00 00 01 00 00 00 01 00 00 00 02 00 | ..MESH........VRTS.............. |
00a0 | 00 00 39 bf 85 be 29 5c 0f 3e 1e 3a db bd 66 dd 32 bf 66 cb 32 3f 3d 91 1e 3e a5 ff 00 3e 24 e4 | ..9...)\.>.:..f.2.f.2?=..>...>$. |
00c0 | 04 3f a1 72 8c be 29 5c 0f 3e 49 9e 37 be 6d 6f 36 bf 64 11 32 3f 75 81 ba 3d a4 ff 00 3e 2e 13 | .?.r..)\.>I.7.mo6.d.2?u..=...>.. |
00e0 | dd 3e 6e 84 6f be 29 5c 0f 3e c0 2a 25 be 64 25 32 3f 70 d1 37 3f 4f 81 27 bc 4c 1f 37 3e 34 13 | .>n.o.)\.>.*%.d%2?p.7?O.'.L.7>4. |
0100 | dd 3e b8 5a 6b be 29 5c 0f 3e 2a a4 c5 bd 65 43 32 3f 6e ed 36 3f 11 b1 88 bd 4b 1f 37 3e 27 e4 | .>.Zk.)\.>*...eC2?n.6?....K.7>'. |
0120 | 04 3f b8 5a 6b be 29 5c 0f 3e 2a a4 c5 bd 65 43 32 3f 6e ed 36 3f 11 b1 88 bd 4b 1f 37 3e 27 e4 | .?.Zk.)\.>*...eC2?n.6?....K.7>'. |
0140 | 04 3f 88 40 62 be 29 5c 0f 3e 1a c7 e2 bc 68 cf 33 3f 6a cf 34 3f 69 91 b4 bd 4a 1f 37 3e b3 3e | .?.@b.)\.>....h.3?j.4?i...J.7>.> |
0160 | 1b 3f ea ac 76 be 29 5c 0f 3e 22 5c f3 bc 5e 33 2f bf 68 fb 33 3f 8c c9 45 3e a7 ff 00 3e b1 3e | .?..v.)\.>"\..^3/.h.3?..E>...>.> |
0180 | 1b 3f 39 bf 85 be 29 5c 0f 3e 1e 3a db bd 66 dd 32 bf 66 cb 32 3f 3d 91 1e 3e a5 ff 00 3e 24 e4 | .?9...)\.>.:..f.2.f.2?=..>...>$. |
01a0 | 04 3f 9a 05 5a be c8 ba 22 3d 84 0c 81 3d c3 b9 e1 be 2c 2d 16 bf 5c e7 2d 3f ca 00 96 3e 3c 99 | .?..Z..."=...=....,-..\.-?...><. |
01c0 | 31 3f 72 fa 56 be c8 ba 22 3d 84 46 80 3d 4a e3 24 3f 28 dd 13 bf 01 61 00 3f e0 e1 75 3e 40 99 | 1?r.V..."=.F.=J.$?(....a.?..u>@. |
01e0 | 31 3f 88 40 62 be c8 ba 22 3d 1a c7 e2 bc 68 cf 33 3f 6a cf 34 bf 69 91 b4 bd e4 e1 75 3e b3 3e | 1?.@b..."=....h.3?j.4.i.....u>.> |
0200 | 1b 3f ea ac 76 be c8 ba 22 3d 22 5c f3 bc 5e 33 2f bf 68 fb 33 bf 8c c9 45 3e cb 00 96 3e af 3e | .?..v..."="\..^3/.h.3...E>...>.> |
0220 | 1b 3f 88 40 62 be 29 5c 0f 3e 1a c7 e2 bc 68 cf 33 3f 6a cf 34 3f 69 91 b4 bd 4a 1f 37 3e b3 3e | .?.@b.)\.>....h.3?j.4?i...J.7>.> |
0240 | 1b 3f 72 fa 56 be 29 5c 0f 3e 84 46 80 3d 4a e3 24 3f 28 dd 13 3f 01 61 00 3f 4a 1f 37 3e 40 99 | .?r.V.)\.>.F.=J.$?(..?.a.?J.7>@. |
0260 | 31 3f 9a 05 5a be 29 5c 0f 3e 84 0c 81 3d c3 b9 e1 be 2c 2d 16 3f 5c e7 2d 3f a9 ff 00 3e 3e 99 | 1?..Z.)\.>...=....,-.?\.-?...>>. |
0280 | 31 3f ea ac 76 be 29 5c 0f 3e 22 5c f3 bc 5e 33 2f bf 68 fb 33 3f 8c c9 45 3e a7 ff 00 3e b1 3e | 1?..v.)\.>"\..^3/.h.3?..E>...>.> |
02a0 | 1b 3f ac c8 8d be c8 ba 22 3d 0e 3d a0 be 70 eb 37 bf 62 f7 30 bf 3b a1 9d bd ce 00 96 3e fe a8 | .?......"=.=..p.7.b.0.;......>.. |
02c0 | 83 3e 34 33 64 be c8 ba 22 3d 01 9b 98 be 5e 1d 2f 3f 70 09 38 bf f9 b1 fc 3d f5 e1 75 3e 02 a9 | .>43d..."=....^./?p.8....=..u>.. |
02e0 | 83 3e 86 34 4f be c8 ba 22 3d 58 6b c5 be 57 49 2b 3f 70 d7 37 bf 88 d1 43 3e f9 e1 75 3e d0 e7 | .>.4O..."=Xk..WI+?p.7...C>..u>.. |
0300 | 2d 3e 40 42 85 be c8 ba 22 3d 9b 78 cf be 66 37 33 bf 62 d7 30 bf 72 19 39 be cf 00 96 3e cc e7 | ->@B...."=.x..f73.b.0.r.9....>.. |
0320 | 2d 3e ea fd 8e be c8 ba 22 3d 78 43 7b be 70 09 38 bf 64 e7 31 bf d9 81 6c 3c ce 00 96 3e 16 5e | ->......"=xC{.p.8.d.1...l<...>.^ |
0340 | b0 3e 24 36 6d be c8 ba 22 3d 63 88 6a be 63 ab 31 3f 6f bf 37 bf c8 e1 63 3d f1 e1 75 3e 1c 5e | .>$6m..."=c.j.c.1?o.7...c=..u>.^ |
0360 | b0 3e 34 33 64 be c8 ba 22 3d 01 9b 98 be 5e 1d 2f 3f 70 09 38 bf f9 b1 fc 3d f5 e1 75 3e 02 a9 | .>43d..."=....^./?p.8....=..u>.. |
0380 | 83 3e ac c8 8d be c8 ba 22 3d 0e 3d a0 be 70 eb 37 bf 62 f7 30 bf 3b a1 9d bd ce 00 96 3e fe a8 | .>......"=.=..p.7.b.0.;......>.. |
03a0 | 83 3e a1 72 8c be c8 ba 22 3d 49 9e 37 be 6d 6f 36 bf 64 11 32 bf 75 81 ba 3d cd 00 96 3e 2e 13 | .>.r...."=I.7.mo6.d.2.u..=...>.. |
03c0 | dd 3e 6e 84 6f be c8 ba 22 3d c0 2a 25 be 64 25 32 3f 70 d1 37 bf 4f 81 27 bc ed e1 75 3e 34 13 | .>n.o..."=.*%.d%2?p.7.O.'...u>4. |
03e0 | dd 3e 24 36 6d be c8 ba 22 3d 63 88 6a be 63 ab 31 3f 6f bf 37 bf c8 e1 63 3d f1 e1 75 3e 1c 5e | .>$6m..."=c.j.c.1?o.7...c=..u>.^ |
0400 | b0 3e ea fd 8e be c8 ba 22 3d 78 43 7b be 70 09 38 bf 64 e7 31 bf d9 81 6c 3c ce 00 96 3e 16 5e | .>......"=xC{.p.8.d.1...l<...>.^ |
0420 | b0 3e 39 bf 85 be c8 ba 22 3d 1e 3a db bd 66 dd 32 bf 66 cb 32 bf 3d 91 1e 3e cc 00 96 3e 23 e4 | .>9....."=.:..f.2.f.2.=..>...>#. |
0440 | 04 3f b8 5a 6b be c8 ba 22 3d 2a a4 c5 bd 65 43 32 3f 6e ed 36 bf 11 b1 88 bd e8 e1 75 3e 27 e4 | .?.Zk..."=*...eC2?n.6.......u>'. |
0460 | 04 3f 6e 84 6f be c8 ba 22 3d c0 2a 25 be 64 25 32 3f 70 d1 37 bf 4f 81 27 bc ed e1 75 3e 34 13 | .?n.o..."=.*%.d%2?p.7.O.'...u>4. |
0480 | dd 3e a1 72 8c be c8 ba 22 3d 49 9e 37 be 6d 6f 36 bf 64 11 32 bf 75 81 ba 3d cd 00 96 3e 2e 13 | .>.r...."=I.7.mo6.d.2.u..=...>.. |
04a0 | dd 3e ea ac 76 be c8 ba 22 3d 22 5c f3 bc 5e 33 2f bf 68 fb 33 bf 8c c9 45 3e cb 00 96 3e af 3e | .>..v..."="\..^3/.h.3...E>...>.> |
04c0 | 1b 3f 88 40 62 be c8 ba 22 3d 1a c7 e2 bc 68 cf 33 3f 6a cf 34 bf 69 91 b4 bd e4 e1 75 3e b3 3e | .?.@b..."=....h.3?j.4.i.....u>.> |
04e0 | 1b 3f b8 5a 6b be c8 ba 22 3d 2a a4 c5 bd 65 43 32 3f 6e ed 36 bfdetbl.code or ""
err=nodetbl.err or ""
env=nodetbl.env or ""
end
local sel = 1
for n,_ in pairs(atlatc.envs) do
envs_asvalues[#envs_asvalues+1]=n
if n==env then
sel=#envs_asvalues
end
end
local form = "size[10,10]dropdown[0,0;3;env;"..table.concat(envs_asvalues, ",")..";"..sel.."]"
.."button[4,0;2,1;save;Save]button[7,0;2,1;cle;Clear local env] textarea[0.2,1;10,10;code;Code;"..minetest.formspec_escape(code).."]"
.."label[0,9.8;"..err.."]"
return form
end
function ac.after_dig_node(pos, node, player)
advtrains.invalidate_all_paths(pos)
advtrains.ndb.clear(pos)
local ph=minetest.pos_to_string(pos)
ac.nodes[ph]=nil
end
function ac.on_receive_fields(pos, formname, fields, player)
if not minetest.check_player_privs(player:get_player_name(), {atlatc=true}) then
minetest.chat_send_player(player:get_player_name(), "Missing privilege: atlatc - Operation cancelled!")
return
end
local meta=minetest.get_meta(pos)
local ph=minetest.pos_to_string(pos)
local nodetbl = ac.nodes[ph] or {}
--if fields.quit then return end
if fields.env then
nodetbl.env=fields.env
end
if fields.code then
nodetbl.code=fields.code
end
if fields.save then
nodetbl.err=nil
end
if fields.cle then
nodetbl.data={}
end
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
meta:set_string("infotext", "LuaAutomation component, invalid enviroment set!")
end
end
function ac.run_in_env(pos, evtdata, customfct_p)
local ph=minetest.pos_to_string(pos)
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_or_nil(pos) then
meta=minetest.get_meta(pos)
end
if not nodetbl.env or not atlatc.envs[nodetbl.env] then
atwarn("LuaAutomation component at",ph,": Not an existing environment: "..(nodetbl.env or "<nil>"))
return false
end
if not nodetbl.code or nodetbl.code=="" then
atwarn("LuaAutomation component at",ph,": No code to run! (insert -- to suppress warning)")
return false
end
local customfct=customfct_p or {}
-- add interrupt function
customfct.interrupt=function(t, imesg)
assertt(t, "number")
assert(t >= 0)
atlatc.interrupt.add(t, pos, {type="int", int=true, message=imesg, msg=imesg}) --Compatiblity "message" field.
end
-- add digiline_send function, if digiline is loaded
if minetest.global_exists("digiline") then
customfct.digiline_send=function(channel, msg)
assertt(channel, "string")
digiline:receptor_send(pos, digiline.rules.default, channel, msg)
end
end
local datain=nodetbl.data or {}
local succ, dataout = atlatc.envs[nodetbl.env]:execute_code(datain, nodetbl.code, evtdata, customfct)
if succ then
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
end
if meta then
meta:set_string("formspec", ac.getform(pos, meta))
end
end
function ac.on_digiline_receive(pos, node, channel, msg)
atlatc.interrupt.add(0, pos, {type="digiline", digiline=true, channel = channel, msg = msg})
end
atlatc.active=ac
|